Amazon ECS 服務使用率指標 - Amazon Elastic Container Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

Amazon ECS 服務使用率指標

服務使用率指標適用於 CPU、記憶體,以及當 EBS 磁碟區連接至您的任務時,EBS 檔案系統使用率。服務層級指標支援在 Amazon EC2 執行個體和 Fargate 上託管任務的服務。

服務層級 CPU 和記憶體使用率

與服務任務定義中指定的 CPU 和記憶體相比,CPU 和記憶體使用率是以叢集上屬於服務的 Amazon ECS 任務所使用的 CPU 和記憶體百分比來衡量。

(Total CPU units used by tasks in service) x 100 Service CPU utilization = ---------------------------------------------------------------------------- (Total CPU units specified in task definition) x (number of tasks in service)
(Total MiB of memory used by tasks in service) x 100 Service memory utilization = -------------------------------------------------------------------------------- (Total MiB of memory specified in task definition) x (number of tasks in service)

Amazon ECS 容器代理程式每分鐘會計算目前用於服務所擁有之每個任務的 CPU 單位和記憶體 MiB 數量,並將此資訊回報給 Amazon ECS。叢集上執行中的服務擁有之所有任務使用的 CPU 和記憶體總量皆會計算,這些數字會以在服務的任務定義中,為服務指定的總資源中所佔的百分比,回報給 CloudWatch。如果您指定軟性限制 (memoryReservation),則會用以計算保留的記憶體數量。否則,會使用硬性限制 (memory)。如需硬性與軟性限制的詳細資訊,請參閱任務大小

例如,服務的任務定義為其所有容器指定總共 512 個 CPU 單位和 1,024 MiB 記憶體 (使用硬性限制 memory 參數)。服務的所需計數為 1 項執行中的任務,此服務正使用 1 個 c4.large 容器執行個體 (總共 2,048 個 CPU 單位和 3,768 MiB 記憶體) 在叢集上執行,且叢集上目前未執行其他任務。雖然任務指定的是 512 CPU 單位,因為其是在具有 2,048 CPU 單位的容器執行個體上唯一的執行中任務,該任務可以使用指定數量 (2,048/512) 多達四次。然而,指定記憶體 1,024 MiB 是硬性限制且不得被超過,因此在此情況下,服務記憶體使用率不得超過 100%。

如果之前的範例使用軟性限制 memoryReservation 而非硬性限制 memory 參數,則服務的任務如有需要,可以使用超過所指定的 1,024 MiB 記憶體。在這種情況下,服務的記憶體使用率可能超過 100%。

如果您的應用程式短時間記憶體使用率驟升,由於 Amazon ECS 每分鐘會收集多個資料點,然後將這些資料點匯集至傳送到 CloudWatch 的單一資料點,因此您會發現服務記憶體使用率並未增加。

如果此任務在某期間內執行 CPU 密集型工作,並使用所有 2,048 個可用的 CPU 單位和 512 MiB 的記憶體,則服務會報告 400% 的 CPU 使用率和 50% 的記憶體使用率。如果任務閒置並使用 128 個 CPU 單位和 128 MiB 記憶體,則服務會回報 25% 的 CPU 使用率和 12.5% 的記憶體使用率。

注意

在此範例中,只有當 CPU 單位在容器層級定義時,CPU 使用率會超過 100%。若您在任務層級定義 CPU 單位,使用率將不會高於定義的任務層級限制。

服務層級 EBS 檔案系統使用率

服務層級 EBS 檔案系統使用率是以屬於服務的任務所使用的 EBS 檔案系統總量,除以分配給屬於服務之所有任務的 EBS 檔案系統儲存總量。

(Total GB of EBS filesystem used by tasks in the service x 100) Service EBS filesystem utilization = ----------------------------------------------------------------- (Total GB of EBS filesystem allocated to tasks in the service)

服務 RUNNING 任務計數

您可以使用 CloudWatch 指標來檢視您服務中 RUNNING 狀態的任務數量。例如,您可以為此指標設定 CloudWatch 警示,在服務的執行中之任務數量低於指定值時提醒您。

Amazon ECS CloudWatch Container Insights 中的服務 RUNNING 任務計數

當您使用 Amazon ECS CloudWatch Container Insights 時,每個叢集和每個服務都有一個「正在執行的任務數」(RunningTaskCount) 指標。您可以選擇加入 containerInsights 帳戶設定可對所有建立的新叢集啟用容器洞見、在個別叢集上可於建立叢集期間開啟叢集設定,或可在現有叢集上使用 UpdateClusterSettings API。CloudWatch Container Insights 收集的指標會以自訂指標的方式計費。如需了解有關 CloudWatch 定價的詳細資訊,請參閱 CloudWatch 定價

如要查看此指標,請參閱《Amazon CloudWatch 使用者指南》中的 Amazon ECS Container Insights 指標