每次提交批处理作业时,都会创建一个新的Docker容器,还是会重复使用旧的容器。
如果每次都创建一个新的Docker容器,那么工作完成后容器会发生什么情况。
在AWS ECS中,ECS_ENGINE_TASK_CLEANUP_WAIT_DURATION变量设置从任务停止到移除Docker容器为止的等待时间(默认为3小时)
如果所有这些容器仅在三个小时后才被清理干净,那么如果我提交大量工作,ECS容器实例是否会很快被迅速填充?
获取此错误CannotCreateContainerError:API错误(500):运行批处理作业时出现devmapper。如果我在工作结束时清理Docker容器文件是否有帮助?
答案 0 :(得分:1)
每次提交批处理作业时,都会创建一个新的Docker容器,还是会重复使用旧的容器。
是的。在Batch上运行的每个作业将作为新的ECS任务运行,这意味着每个作业都有一个新的容器。
如果所有这些容器仅在三个小时后才被清理干净,那么如果我提交大量工作,ECS容器实例是否会很快被迅速填充?
这全部取决于您的工作负载,长度,作业长度,磁盘使用情况等。对于大量占用磁盘的短作业,这完全有可能。
CannotCreateContainerError: API error (500): devmapper
Documentation for this error指出了一些可能的解决方案,但是在这种情况下,您已经提到的第一个解决方案可能无济于事。
ECS_ENGINE_TASK_CLEANUP_WAIT_DURATION
在ECS上默认为3h,在批处理群集上默认设置为2m-您可以检查一个批处理实例上的EC2用户数据,以验证是否在您的批处理实例上设置了EC2用户数据集群。根据群集的使用期限,这些设置可能会更改。在不创建整个新集群的情况下,Batch不会自动更新到最新的ECS优化AMI,因此如果它也不更改设置,我也不会感到惊讶。
如果您的清除持续时间设置当前设置为较低,则you might try creating a custom AMI会提供比正常Docker更大的卷。默认情况下,ECS优化的AMI附带8GB的根驱动器和Docker的22GB容量。