優化 Amazon ECS 任務啟動時間 - Amazon Elastic Container Service

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

優化 Amazon ECS 任務啟動時間

為了加快任務啟動速度,請考慮以下建議。

  • 快取容器映像檔和 binpack 執行個體

    如果您使用EC2啟動類型,則可以將 Amazon ECS 容器代理程式提取行為設定為ECS_IMAGE_PULL_BEHAVIORprefer-cached。如果沒有快取的影像,則會從遠端拉取影像。否則,將使用執行個體上的快取映像,關閉容器的自動影像清理功能,以確保不會移除快取的影像。如此可減少後續啟動的影像擷取時間。當您的容器執行個體具有較高的工作密度時,快取的效果甚至會更大,您可以使用binpack放置策略進行設定。快取容器映像對於通常具有大 (數十GBs) 容器映像大小的基於 Windows 的工作負載尤其有用。使用binpack放置策略時,您也可以考慮使用彈性網路介面 (ENI) 中繼,在每個容器執行個體上放置更多具有awsvpc網路模式的工作。ENI中繼會增加您可以在awsvpc模式下運行的任務數量。例如,一個可能只支援同時執行 2 個工作的 c5.large 執行個體,最多可以透過主幹執行 10 個工作。ENI

  • 選擇最佳網路模式

    雖然有許多awsvpc網路模式最理想的執行個體,但此網路模式本質上會增加任務啟動延遲,因為對於awsvpc模式中的每個任務,Amazon ECS 工作流程都需要ENI透過叫用 Amazon 來佈建和連接,EC2APIs這會為您的任務啟動增加數秒的開銷。相比之下,使用awsvpc網路模式的主要優點是每個工作都有一個安全群組來允許或拒絕流量。這意味著您可以更靈活地控制任務和服務之間的通信,以更細微的級別。如果部署速度是您的優先考量,您可以考慮使用bridge模式加快工作啟動速度。如需詳細資訊,請參閱為 Amazon ECS 任務分配網絡界面

  • 追蹤您的任務啟動生命週期,以尋找最佳化

    通常很難知道應用程式啟動所需的時間。在應用程式啟動期間啟動容器映像、執行啟動指令碼和其他設定可能需要大量的時間。您可以使用 Task 中繼資料端點來張貼指標,以追蹤應用程式啟動時間,從ContainerStartTime應用程式準備好為流量提供服務。有了這些資料,您就可以瞭解應用程式如何促成總啟動時間,並找出可以減少不必要的應用程式特定額外負荷並最佳化容器映像的區域。如需詳細資訊,請參閱優化 Amazon ECS 容量和可用性

  • 選擇最佳執行個體類型 (針對EC2啟動類型)

    根據您在工作上設定的資源保留區 (例如記憶體)CPU,選擇正確的執行個體類型。因此,調整例證大小時,您可以計算單一例證上可以放置多少任務。在 m5.large 執行個體 (支援 2 v 和 8 GB 記憶體) 中託管 4 個需要 0.5 v CPU 和 2GB 記憶體保留的工作的簡單範例。CPU此任務定義的保留項目會充分利用執行個體的資源。