本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon ECS 任務大小的最佳實務
容器與任務大小對於擴展與容量規劃都至關重要。在 Amazon ECS 中,CPU 與記憶體是用於容量的兩個資源指標。CPU 以完整 vCPU 的 1/1024 為單位進行計量 (其中 1024 個單位等於 1 個完整 vCPU)。記憶體以 MiB 為單位進行計量。在任務定義中,您可以設定資源保留量與限制。
設定保留量時,您要設定任務所需的資源數量下限。任務至少會收到請求的資源量。應用程式實際使用的 CPU 或記憶體,可能會超出設定的保留量。但這受您同時設定的所有限制的約束。使用超過保留數量稱為爆量。在 Amazon ECS 中,保留量會得到保證。例如,若使用 Amazon EC2 執行個體提供容量,當無法滿足保留需求時,Amazon ECS 不會將該任務置放於該執行個體上。
限制是容器或任務所能使用的 CPU 單位或記憶體的最大數量。任何嘗試使用超過此限制之 CPU 的行為,都會導致限流。任何嘗試使用更多記憶體的行為,都會導致容器停止。
精準選擇這些值可能具有挑戰性。這是因為最適合應用程式的值,在很大程度上取決於應用程式的資源需求。對應用程式進行負載測試,是成功規劃資源需求以及更清楚地了解應用程式需求的關鍵。
無狀態應用程式
對於可水平擴展的無狀態應用程式 (如負載平衡器後端的應用程式),建議先決定應用程式在處理請求時所耗用的記憶體量。若要做到這一點,您可以使用 ps 或 top 等傳統工具,也可以使用 CloudWatch Container Insights 這類監控解決方案。
在決定 CPU 保留量時,需考量如何擴展應用程式來滿足業務需求。您可以使用較小的 CPU 保留量,例如 256 個 CPU 單位 (或 1/4 vCPU),以將成本降至最低的精細方式橫向擴充。但它們的擴展速度可能不足以應對需求的大幅激增。您可以使用較大的 CPU 保留量,更快速地進行縮減與橫向擴充,從而更快匹配需求激增。但較大的 CPU 保留量會帶來更高的成本。
其他應用程式
對於無法水平擴展的應用程式 (例如單例工作線程或資料庫伺服器),可用容量與成本是最重要的考量因素。您應根據負載測試的結果選擇記憶體與 CPU 的配置量,確保能應對流量並達成服務水準目標。Amazon ECS 可確保應用程式置放在具有足夠容量的主機上。