本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon ECS 受管執行個體自動擴展與任務置放
Amazon ECS 受管執行個體使用智慧型演算法自動擴展叢集容量,並在整個基礎結構中有效率地置放任務。了解這些演算法的運作方式可協助您最佳化服務組態,並對置放行為進行疑難排解。
任務置放演算法
Amazon ECS 受管執行個體使用複雜的置放演算法,在排程任務時平衡可用性、資源使用率與網路需求。
可用區域分佈
依預設,Amazon ECS 受管執行個體會將任務分佈到多個可用區域,以便優先考慮可用性:
-
對於具有多項任務的服務,Amazon ECS 受管執行個體會盡可能確保分佈在不同可用區域中的至少 3 個執行個體
-
此行為提供了容錯能力,但可能導致每個執行個體的資源使用率降低
-
優先考慮可用區域分佈,而非裝箱最佳化
裝箱行為
雖然 Amazon ECS 受管執行個體可以執行裝箱以最大化資源使用率,但此行為會受到網路組態影響:
-
若要實現裝箱,請將服務設定為使用單一子網路
-
多子網路組態會優先考慮可用區域分佈,而非資源密度
-
裝箱更可能發生在初始服務啟動期間,而非事件擴展期間
ENI 密度考量
對於使用 awsvpc 網路模式的服務,Amazon ECS 受管執行個體在作出置放決策時會考慮彈性網路介面 (ENI) 密度:
-
awsvpc模式中的每項任務都需要專用的 ENI -
執行個體類型具有影響任務密度的不同 ENI 限制
-
選取目標執行個體時,Amazon ECS 受管執行個體會考量 ENI 可用性
注意
為最佳化置放決策,我們正在持續改進 ENI 密度計算。
容量提供者決策邏輯
Amazon ECS 受管執行個體容量提供者會基於多種因素作出擴展與置放決策:
- 資源需求
-
待定任務的 CPU、記憶體與網路需求
- 執行個體可用性
-
現有執行個體的目前容量與使用率
- 網路限制條件
-
子網路組態與 ENI 可用性
- 可用區域分佈
-
跨多個可用區域維持容錯能力
組態選項
子網路選取策略
子網路組態會顯著影響任務置放行為:
- 多個子網路 (預設)
-
優先考慮可用區域分佈以實現高可用性
可能會導致每個執行個體的資源使用率降低
建議用於需要容錯能力的生產工作負載
- 單一子網路
-
啟用裝箱以提高資源使用率
將任務集中在一個可用區域,以降低容錯能力
適用於開發或成本最佳化工作負載
網路模式考量
您選擇的網路模式會影響置放決策:
-
awsvpc模式 – 每項任務都需要專用 ENI,用於限制每個執行個體的任務密度 -
host模式 – 任務會直接使用主機的網路,置放主要由資源可用性驅動
CPU 架構考量事項
cpuArchitecture 您在任務定義中指定的 用於在特定架構上放置任務。如果您未指定 cpuArchitecture,Amazon ECS 會根據容量提供者組態,嘗試在任何可用的 CPU 架構上放置任務。您可指定為 X86_64 或 ARM64。
對任務置放進行疑難排解
常見置放模式
了解預期的置放模式有助於區分正常行為與潛在問題:
- 分散式分佈
-
在部分利用的多個執行個體上分佈任務
使用多個子網路時的正常行為
表示優先考慮可用性而非資源效率
- 集中式置放
-
在使用率較高的較少執行個體上置放多項任務
使用單一子網路組態時的預期行為
可能在初始服務啟動期間發生
- 不均勻分佈
-
某些執行個體使用率很高,而某些執行個體未得到充分利用
可能表示 ENI 限制或資源限制條件
建議檢閱執行個體類型與網路組態
最佳化置放行為
若要針對特定需求最佳化任務置放:
-
評估可用性需求與成本最佳化需求
-
根據優先順序選擇適當的子網路組態
-
為網路模式選取具有足夠 ENI 容量的執行個體類型
-
監控置放模式並視需要調整組態
最佳實務
-
對於生產工作負載 – 跨不同可用區域使用多個子網路以確保高可用性,接受資源使用率方面的權衡
-
對於開發或測試 – 考慮使用單一子網路組態,最大化資源使用率並降低成本
-
對於
awsvpc模式 – 選擇具有足夠 ENI 容量的執行個體類型,避免出現置放限制條件 -
對於成本最佳化 – 監控使用率模式並調整服務組態,平衡可用性與效率
-
對於疑難排解 – 調查意外置放模式時,請檢閱子網路組態與網路模式