繁体   English   中英

AWS ECS无法运行超过10个任务

[英]AWS ECS unable to run more than 10 number of tasks

我有一个ECS集群,其中有20个注册实例。

我有3个任务定义来解决大数据问题。

任务1:拆分任务-这将启动docker容器,并且该容器定义具有一个入口点,用于运行名为HPC-Split的脚本。 该脚本在已安装的EFS中将大数据分为5个部分。 此任务的任务数(计数)为1。

任务2:运行任务:这将启动另一个docker容器,并且该docker容器具有一个入口点,用于运行名为HPC-script的脚本,该脚本处理每个拆分部分。 为此选择的任务数为5,因此可以并行处理。

任务3:合并任务:这将启动第三个docker容器,该容器具有一个入口点来运行名为HPC-Merge的脚本,并将所有部分的不同输出合并。 同样,为此需要运行的任务数(计数)为1。

现在,AWS服务限制可以说: https : //docs.aws.amazon.com/AmazonECS/latest/developerguide/service_limits.html我们可以运行的最大任务数(数量)为10。因此,目前我们只能运行10个任务并行处理。 意思是,拆分文件(1个任务在一个实例上运行),运行进程(任务在10个实例上运行),合并文件(任务在1个实例上运行)。

极限10限制了我们可以并行处理的级别,我不知道该如何解决。 我对此限制感到惊讶,因为肯定需要在集群中的10个以上实例上运行长时间运行的进程。

你们能否给我一些有关如何绕过此限制或如何最佳地使用ECS并行运行20个任务的建议。 我使用的扩展位置是“每台主机一个任务”,因为该过程使用一台主机中的所有内核。

如何使用ECS更好地设计它?

每个运行任务已启动的任务数(计数)

这是每次调用运行任务API可以启动的最大任务数。 要启动更多任务,请再次调用运行任务API。

如果将执行拆分工作的任务设计为等待某种方式可用(使用某种队列系统或类似队列系统),则可以将它们作为服务启动,只需将“所需任务”的编号从零更改为20如所须。

当您需要工作人员时,最多可将服务扩展到20个所需任务。 然后启动您的任务以拆分工作,并启动等待工作完成的任务。 工作人员完成工作后,可以将其缩小到零。

除非您有极高的内存或磁盘大小需求,否则这似乎更适合Fargate。 否则,您可能需要将其与按需扩展基于EC2的群集配对,而在不需要时将其缩减。

暂无
暂无

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

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