跳至內容

取代容器執行個體後,如何對 Amazon ECS 任務 CPU 使用率過高的問題進行疑難排解?

2 分的閱讀內容
0

我用 Amazon Elastic Container Service (Amazon ECS) 上的加密磁碟區取代了容器執行個體。現在,我任務的 CPU 使用率很高。

解決方法

**注意:**如果您在 AWS Fargate 上遇到 CPU 使用率過高的問題,請參閱如何對 Fargate 上 Amazon ECS 任務 CPU 使用率過高問題進行疑難排解?

查看 Amazon ECS 服務事件日誌

檢查 Amazon ECS 服務事件日誌和與 CPU 相關的指標訊息。

查看容器執行個體的 CPU 使用率

請完成下列步驟:

  1. 開啟 Amazon ECS console (Amazon ECS 主控台)。
  2. 在導覽窗格中,選擇 Clusters (叢集),然後選取您的叢集。
  3. 選擇 Infrastructure (基礎結構) 索引標籤。
  4. 在搜尋列中輸入 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體 ID,然後選取您的執行個體。
    **注意:**此操作將開啟 Amazon EC2 主控台。
  5. 選擇 Monitoring (監控) 索引標籤,然後查看 CPU 使用率 (%) 卡片,已取得容器執行個體的 CPU 使用率指標。

查看 Amazon ECS 服務的 CPU 使用率

使用 Amazon ECS 主控台檢查 Amazon ECS 的服務指標,以及 Amazon ECS 的平均 CPU 和最大 CPU 使用率。

**注意:**若要查看 Amazon ECS 任務的 CPU 指標,您必須為現有的 Amazon ECS 叢集啟動 Container Insights。有關可用指標的資訊,請參閱 Amazon ECS Container Insights 指標。

查看負載平衡器指標

檢查負載平衡器請求指標,以確定傳入使用者流量激增時是否會出現高 CPU 使用率。對於 Network Load Balancer,選取 Metrics (指標) 下的 NetworkELB 命名空間,然後選擇 Per LB (每個負載平衡器),即可查看 ActiveFlowCount 和 NewFlowCount 指標。若您使用的是 Application Load Balancer,請查看 ActiveConnectionCount 指標。

檢查加密負荷

如果您為 Amazon Elastic Block Store (Amazon EBS) 磁碟區啟動加密,則加密和解密過程可能會導致高 CPU 使用率。

若要檢查高 CPU 使用率是否因加密負荷所致,請比較 EBS 磁碟區加密變更前後的 CPU 和應用程式指標。

請確認您的 Amazon ECS 任務具有正確的資源分配

檢查您的應用程式日誌,以確定您的任務是否正在執行 CPU 密集型作業。若要將應用程式日誌傳送至 CloudWatch,請參閱範例 Amazon ECS 任務定義: 將日誌路由到 CloudWatch。

確保為您的 Amazon ECS 任務分配了正確的 CPU 和記憶體資源。如果 CPU 使用率持續偏高,請對 Amazon ECS 服務的任務進行水平擴展。

如果水平擴展無法解決問題,則增加任務定義中分配的 CPU 單元數,以垂直擴展 Amazon ECS 服務的任務。

最佳化應用程式程式碼

若要分析和偵錯分散式應用程式,可以使用像是 AWS X-Ray 等工具。追蹤請求在應用程式中的服務、功能和資源中傳播的路徑。如需詳細資訊,請參閱針對 AWS X-Ray 偵測您的應用程式。

AWS 官方已更新 2 年前