优化容器和 AMI - AWS Batch

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

优化容器和 AMI

容器大小和结构对于您运行的第一组作业非常重要。如果容器大于 4GB,则尤其如此。容器映像是分层构建的。Docker 使用三个并发线程并行检索层。您可以使用 max-concurrent-downloads 参数增加并发线程数。有关更多信息,请参阅 Docker 文档

尽管您可以使用更大的容器,但我们建议您优化容器的结构和大小,以缩短启动时间。

  • 较小的容器可以更快地获取 – 较小的容器可以缩短应用程序的启动时间。要减小容器大小,请将不经常更新的库或文件卸载到亚马逊机器映像(AMI)。您也可以使用绑定装载,为容器授予访问权限。有关更多信息,请参阅绑定装载

  • 创建大小均匀的层并分解大型层 – 每个层都由一个线程检索。因此,较大的层可能会显著影响您的作业启动时间。我们建议最大层大小为 2GB,以便在更大的容器大小和更快的启动时间之间进行权衡。您可以运行 docker history your_image_id 命令来检查您的容器映像结构和层大小。有关更多信息,请参阅 Docker 文档

  • 使用 Amazon Elastic Container Registry 作为您的容器存储库 – 当您并行运行数千个作业时,自我管理的存储库可能会失败或限制吞吐量。Amazon ECR 可以大规模运行,可以处理多达一百多万个 vCPU 的工作负载。

    Diagram showing layers of machine images and containers with data types and change frequencies.