当工人数量多、任务短的情况下,Docker重启速度变慢时,限制因素是什么?

xwbd5t1u  于 2022-12-11  发布在  Docker
关注(0)|答案(1)|浏览(107)

预期行为:
我们想让docker container执行小任务。假设我们有10个container,每个只休眠5秒。我们想让这些container继续快速重新启动。如果你有一个docker,由10个container组成,每个container休眠5秒,然后死亡。

some-worker1:
  image: some-worker
  build: ./some-worker
  restart: always

我们希望这些容器在死亡后立即重新启动。
观察到的行为:
如果运行watch docker ps,您会注意到重新启动时间缓慢增加。运行几分钟后,容器将仅在一分钟后重新启动。并且它们将始终在一分钟后重新启动。
猜测:
我想docker-engine或者任何重启container的东西都有一些策略来控制重启的速度。它们开始快速重启,所以可能一些资源变得稀缺,docker不得不减慢重启速度,或者作为一种优化减慢重启速度,但是设置最大值为一分钟。

nc1teljy

nc1teljy1#

我想这就解释了它:
“在每次重新启动之前添加一个不断增加的延迟(是以前延迟的两倍,从100毫秒开始),以防止淹没服务器。这意味着守护程序将等待100毫秒,然后是200毫秒、400、800、1600,依此类推,直到达到故障时限制,或者当您对容器执行docker stop或docker rm -f操作时。
如果容器成功重新启动(容器启动并运行至少10秒),延迟将重置为其默认值100毫秒。”
https://docs.docker.com/engine/reference/run/#restart-policies---restart

相关问题