繁体   English   中英

AWS Batch:如何提高 Fargate 作业的并发性

[英]AWS Batch: how to increase concurrency for Fargate jobs

我正在尝试通过 Docker 容器将 Batch 用于大规模并行作业执行。 我想同时处理数千个任务。

我已经启动并运行了一切。 我的计算环境配置的最大 vCPU 为 2048。每个任务都配置为使用单个 vCPU 和 2GB RAM。 我正在使用一个包含 1,000 个数组元素的数组作业(目前)。

问题是:当我创建一个新工作时,并发性似乎非常有限。 当我查看EC中的群集时,“等待任务”似乎不断地ze0542f579df8e8138e8138ade69f8f5310bf2z大约50左右(它可能从未有Z34D1FB2E51FB2E514B8576FAB1A7575A6BES MOSTHINS MOSS MOSTHINS MOSTHIND YOSS MOVER IND MOVER MASTIN MONGY MAND MONGY MAND MOND MYNYM MANDY.1ENF MANDY MANDY MANDY MANDY MANDY MANDY MAST。 10 秒完成,整个批次大约需要 20 分钟。

这不是我所期望的。 通过上述设置,我认为 Batch 会同时处理所有 1000 个任务。

我最初认为问题可能是由于我使用了公共子网(所有 Fargate 容器都有公共 IP)引起的。 我改为使用私有子网(带有 NAT 网关),但没有帮助。

有谁知道我做错了什么?

谢谢!

答案在上面的评论中,但为了后代:

具有 Fargate 资源的 AWS Batch 计算环境的扩展速度不足以满足您的需求,因为每个作业都在其自己的 Fargate 资源中启动。 将 EC2 用于计算环境将启动一个大型实例,该实例将在其上同时运行多个作业,因此扩展正在运行的作业会更快。

至于为什么您看到最大值(等待 50 运行 30),这可能是因为您的请求达到了启动/完成的平衡。 如果您的作业运行时间超过 10 秒(分钟),您会看到正在运行的任务总数 go 比您看到的要高。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM