

# PERF01-BP06 使用基準測試來推動架構決策
<a name="perf_architecture_use_benchmarking"></a>

 對現有工作負載的效能進行基準化分析，以了解工作負載在雲端的效能，並根據該資料推動架構決策。

 **常見的反模式：**
+  您倚賴不代表工作負載特性的常見基準。
+  您將客戶的意見回饋和看法作為唯一基準。

 **建立此最佳實務的優勢：**對目前的實作進行基準測試可讓您衡量效能改進。

 **未建立此最佳實務時的曝險等級：**中 

## 實作指引
<a name="implementation-guidance"></a>

 使用基準化分析搭配綜合測試，以評估工作負載元件的效能。與負載測試相比，基準化分析通常速度更快；要評估特定元件的技術時，會使用基準化分析。當您缺少執行負載測試的完整解決方案時，通常可在新專案開始時使用基準化分析。

 您可以建置自己的自訂基準化分析測試，也可以使用產業標準測試，例如 [TPC-DS](http://www.tpc.org/tpcds/)，對工作負載進行基準化分析。比較環境時，產業基準化分析很有幫助。對於確定您希望在架構中進行的特定營運類型，自訂基準化分析非常實用。

 基準化分析時，務必要預熱測試環境，以獲得有效結果。多次執行相同的基準化分析，以確認您已擷取到隨時間推移出現的任何變化。

 由於基準化分析的速度通常比負載測試要快，因此可以在部署管道中盡早使用基準化分析，以便能更快提供有關效能偏差的回饋。當您評估元件或服務中的重大變更時，藉助基準化分析，您可以更快速地查看所做的變更是否合理。請務必使用基準化分析搭配負載測試，因為負載測試將告訴您工作負載在生產中的效能。

### 實作步驟
<a name="implementation-steps"></a>
+  規劃和定義：
  +  為基準化分析定義目標、基準、測試案例、指標 (例如 CPU 使用率、延遲或輸送量) 以及 KPI。
  +  關注使用者體驗方面的使用者需求，以及回應時間和可存取性等因素。
  +  找出工作負載適用的基準化分析工具。可以使用 AWS 服務 (例如 [Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html))，或與工作負載相容的第三方工具。
+  配置並檢測：
  +  設定環境並配置資源。
  +  實作監控和日誌記錄以擷取測試結果。
+  基準化分析和監控：
  +  在測試期間執行基準化分析並監控指標。
+  分析並記錄：
  +  記錄基準化分析過程和調查結果。
  +  分析結果以找出瓶頸、趨勢和需要改善的領域。
  +  使用測試結果做出架構決策並調整工作負載。這可能包括變更服務或採用新功能。
+  最佳化並重複：
  +  根據您的基準化分析來調整資源配置和分配。
  +  調整後重新測試您的工作負載，以驗證改進。
  +  記錄您的學習，並重複此過程以確定其他有待改進的領域。

## 資源
<a name="resources"></a>

 **相關文件：**
+  [AWS 架構中心](https://aws.amazon.com/architecture/) 
+  [AWS Partner Network](https://aws.amazon.com/partners/) 
+  [AWS 解決方案程式庫](https://aws.amazon.com/solutions/) 
+  [AWS 知識中心](https://aws.amazon.com/premiumsupport/knowledge-center/) 
+  [Amazon CloudWatch RUM](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-RUM.html) 
+  [Amazon CloudWatch Synthetics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries.html) 
+  [基因體工作流程，第 5 部分：自動化基準測試](https://aws.amazon.com/blogs/architecture/genomics-workflows-part-5-automated-benchmarking/) 
+  [對 Amazon SageMaker AI JumpStart 中的端點部署進行基準測試和最佳化](https://aws.amazon.com/blogs/machine-learning/benchmark-and-optimize-endpoint-deployment-in-amazon-sagemaker-jumpstart/) 

 **相關影片：**
+  [AWS re:Invent 2023 - 對 AWS Lambda 冷啟動進行基準測試](https://www.youtube.com/watch?v=bGMEPI-va-Q&ab_channel=AWSEvents) 
+  [在雲端中對有狀態服務進行基準測試](https://www.youtube.com/watch?v=rtW4a4DvcWU&ab_channel=AWSEvents) 
+  [This is my Architecture](https://aws.amazon.com/architecture/this-is-my-architecture/) 
+  [透過 Amazon CloudWatch RUM 優化應用程式](https://www.youtube.com/watch?v=NMaeujY9A9Y) 
+  [Amazon CloudWatch Synthetics 的示範](https://www.youtube.com/watch?v=hF3NM9j-u7I) 

 **相關範例：**
+  [AWS 範例](https://github.com/aws-samples) 
+  [AWS SDK 範例](https://github.com/awsdocs/aws-doc-sdk-examples) 
+  [分散式負載測試](https://aws.amazon.com/solutions/implementations/distributed-load-testing-on-aws/) 
+  [使用 Amazon CloudWatch Synthetics 測量頁面載入時間](https://github.com/aws-samples/amazon-cloudwatch-synthetics-page-performance) 
+  [Amazon CloudWatch RUM Web 用戶端](https://github.com/aws-observability/aws-rum-web) 