当docker重启速度因大量工作人员和短任务而变慢时,限制因素是什么?

时间:2018-04-25 20:57:17

标签: docker

预期行为:

我们希望Docker容器执行小型作业。假设我们有10个容器,每个容器只能睡5秒钟。我们希望这些能够继续快速重启。如果你有一个码头工具,那么就会定义10个容器,每个容器在这里停留5秒并且会死掉。

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

我们希望这些容器在死后立即重新启动。

观察到的行为:

如果您运行watch docker ps,您会发现重启时间慢慢增加。运行几分钟后,容器只会在一分钟后重新启动。他们将在一分钟后不断重启。

猜测:

我认为docker-engine或其他任何重启容器的策略都有一些重新启动它们的策略。它们开始快速重启,因此可能某些资源变得稀缺,并且docker必须降低重启速度,或者优化会降低重启速度,但会将最大值设置为一分钟。

1 个答案:

答案 0 :(得分:2)

我认为这解释了它:

“在每次重启之前添加一个不断增加的延迟(前一个延迟的两倍,从100毫秒开始)以防止服务器泛滥。这意味着守护进程将等待100毫秒,然后200毫秒,400,800,1600,依此类推,直到命中故障限制,或者当您停靠或停靠rm -f容器时。

如果容器成功重启(容器启动并运行至少10秒),延迟将重置为默认值100 ms。“

[https://docs.docker.com/engine/reference/run/#detached-vs-foreground]