本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon ECS 的 Fargate 容器映像上 Linux 容器的提取行為
每個 Fargate 任務均執行於專屬的一次性、單租用戶執行個體上。在 Fargate 上執行 Linux 容器時,系統不會快取執行個體上的容器映像或容器映像層。因此,對於任務中定義的每個容器映像,每個 Fargate 任務皆需從容器映像登錄檔中完整提取整個映像。提取映像所需的時間與啟動 Fargate 任務所需的時間直接相關。
請考量下列事項,以最佳化映像提取時間。
- 容器映像就近存取
-
若要縮短下載容器映像所需的時間,應將資料存放位置盡可能靠近運算資源。透過網際網路或跨 提取容器映像 AWS 區域 可能會影響下載時間。建議將容器映像存放在將執行任務的同一區域中。如果將容器映像儲存於 Amazon ECR 中,可使用 VPC 介面端點進一步縮短映像提取時間。如需詳細資訊,請參閱 Amazon ECR User Guide 中的 Amazon ECR interface VPC endpoints (AWS PrivateLink)。
- 容器映像大小縮減
-
容器映像的大小會直接影響下載時間。縮減容器映像的大小或容器映像層的數量,可以縮短下載映像所需的時間。輕量型基礎映像 (例如,精簡版 Amazon Linux 2023 容器映像) 的體積,可能遠小於基於傳統作業系統的基礎映像。如需有關精簡映像的詳細資訊,請參閱 Amazon Linux 2023 User Guide 中的 AL2023 Minimal container image。
- 替代壓縮演算法
-
容器映像層在推送至容器映像登錄檔時,通常會經過壓縮處理。壓縮容器映像層可減少需透過網路傳輸的資料量,以及儲存在容器映像檔登錄中的資料量。當容器映像層經由容器執行時期下載至執行個體後,該層會進行解壓縮。所使用的壓縮演算法以及執行時期可用的 vCPU 數量,皆會影響容器映像解壓縮所需的時間。在 Fargate 上,您可以透過增加任務大小或採用效能更佳的 zstd 壓縮演算法來縮短解壓縮時間。如需詳細資訊,請參閱 GitHub 上的 zstd
。如需如何實作 Fargate 映像的資訊,請參閱使用 zstd 壓縮容器映像縮短 AWS Fargate 啟動時間 。 - 延遲載入容器映像
-
對於大型容器映像 (> 250 MB),最好是延遲載入容器映像,而不是下載所有容器映像。在 Fargate 上,您可以使用 Seekable OCI (SOCI) 從容器映像登錄檔延遲載入容器映像。如需詳細資訊,請參閱 GitHub 上的 soci-snapshotter
,以及使用 Seekable OCI (SOCI) 延遲載入容器映像。