

# PERF08-BP01 了解效能至關重要的領域
<a name="perf_tradeoffs_performance_critical_areas"></a>

 了解並找出提高工作負載效能將對效率或客戶體驗產生正面影響的地方。例如，具有大量客戶互動的網站可受益於邊緣服務的使用，因為這樣可以將內容交付移至更接近客戶的地方。 

**預期成果：** 透過了解架構、流量模式和資料存取模式，來提高效能效率，並確定延遲和處理時間。找出隨著工作負載的成長，可能會影響客戶體驗的潛在瓶頸。當您已確定這些面向時，請審視自己可以部署哪個解決方案，來消除這些效能疑慮。

 **常見的反模式：** 
+  您假設標準運算指標 (例如， `CPUUtilization` 或記憶體壓力) 足以揪出效能問題。 
+  您只會使用所選監控軟體記錄的預設指標。 
+  您只會在有問題時審查指標。 

 **建立此最佳實務的優勢：** 了解效能的關鍵領域，有助於工作負載擁有者監控 KPI 和優先處理具有高影響力的待改善之處。 

 **若未建立此最佳實務，暴露的風險等級：** 高 

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

設置端到端追蹤，以找出流量模式、延遲和關鍵的效能區域。監控資料存取模式是否有緩慢查詢或分段和分區不佳的資料。使用負載測試或監控來找出工作負載受限面向。

## 實作步驟
<a name="w2aac19c11c11b5b6c17"></a>

1.  設置端到端監控，來擷取所有工作負載組成部分和指標。 
   +  使用 [Amazon CloudWatch 實際使用者監控 (RUM)](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-RUM.html) 來擷取來自實際使用者用戶端和前端工作階段的應用程式效能指標。
   +  設置 [AWS X-Ray](https://aws.amazon.com/xray/) 來透過應用程式層追蹤流量，並找出組成部分和相依性之間的延遲。使用 X-Ray 服務地圖，來查看工作負載組成部分之間的關係和延遲。
   +  使用 [Amazon Relational Database Service 績效詳情](https://aws.amazon.com/rds/performance-insights/) 來檢視資料庫效能指標並找出效能待改善之處。
   +  使用 [Amazon RDS 增強型監控](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.OS.html) 來檢視資料庫 OS 效能指標。
   +  收集 [每個工作負載組成部分和服務的 CloudWatch 指標，](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) 並找出哪些指標會影響效能效率。
   +  設置 [Amazon DevOps Guru](https://aws.amazon.com/devops-guru/) 以取得其他績效詳情和建議 

1.  執行測試，來產生指標、確定流量模式、瓶頸和關鍵效能區域。 
   +  設置 [CloudWatch Synthetic Canaries](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries.html) 使用 cron 任務或速率表達式，以程式設計的方式 `模仿以瀏覽器為基礎的使用者活動，` 以產生長期一致的指標。
   +  使用 [AWS 分散式負載測試](https://aws.amazon.com/solutions/implementations/distributed-load-testing-on-aws/) 解決方案，來產生尖峰流量或以預期成長速率測試工作負載。

1.  評估指標和遙測，來找出關鍵的效能領域。與團隊檢視這些領域，討論監控和解決方案，來避免瓶頸。 

1.  進行效能改善的實驗，並透過資料來衡量這些變更。 
   +  使用 [CloudWatch Evidently](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Evidently.html) 來測試新的改善之處以及對工作負載的效能影響。

 **實作計劃的工作量：** 若要建立此最佳實務，您必須檢視端到端指標，並了解目前工作負載的效能。您需要投入適當的心力，來設置端到端監控並找出關鍵的效能領域。 

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

 **相關文件：** 
+  [Amazon 建置者資料中心](https://aws.amazon.com/builders-library) 
+  [X-Ray 文件](https://docs.aws.amazon.com/xray/latest/devguide/aws-xray.html) 
+  [Amazon CloudWatch RUM](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-RUM.html) 
+  [Amazon DevOps Guru](https://aws.amazon.com/devops-guru/) 
+  [CloudWatch RUM 和 X-Ray](https://docs.aws.amazon.com/xray/latest/devguide/xray-services-RUM.html) 

 **相關影片：** 
+  [Amazon 建置者資料中心簡介 (DOP328)](https://www.youtube.com/watch?v=sKRdemSirDM) 
+  [Amazon CloudWatch Synthetics 的示範](https://www.youtube.com/watch?v=hF3NM9j-u7I) 

 **相關範例：** 
+  [使用 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) 
+  [X-Ray SDK for Node.js](https://github.com/aws/aws-xray-sdk-node) 
+  [X-Ray SDK for Python](https://github.com/aws/aws-xray-sdk-python) 
+  [X-Ray SDK for Java](https://github.com/aws/aws-xray-sdk-java) 
+  [X-Ray SDK for .Net](https://github.com/aws/aws-xray-sdk-dotnet) 
+  [X-Ray SDK for Ruby](https://github.com/aws/aws-xray-sdk-ruby) 
+  [X-Ray 常駐程式](https://github.com/aws/aws-xray-daemon) 
+  [AWS 上的分散式負載測試](https://aws.amazon.com/solutions/implementations/distributed-load-testing-on-aws/) 