Что является сдерживающим фактором, когда перезапуск докера замедляется из-за большого количества рабочих и короткой задачи? - PullRequest
0 голосов
/ 25 апреля 2018

Ожидаемое поведение:

Мы хотим, чтобы Docker-контейнеры выполняли небольшие задания.Скажем, у нас есть десять контейнеров, и каждый просто спит в течение 5 секунд.Мы хотим, чтобы они продолжали быстро перезагружаться.Если у вас есть докер с 10 контейнерами, определенными таким образом, где каждый контейнер спит в течение 5 секунд и умирает.

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

Мы ожидаем, что эти контейнеры будут перезапущены сразу после смерти.

Наблюдаемое поведение:

Если вы запустите watch docker ps, вы заметите, что время перезапуска медленно увеличивается.После запуска в течение нескольких минут контейнеры будут перезапущены только через минуту.И они будут последовательно перезагружаться через минуту.

Предположения:

Я полагаю, что механизм Docker или что-то еще, перезапускающее контейнеры, имеет некоторую политику относительно того, как быстро их перезапустить.Они начинают перезапускаться быстро, поэтому, возможно, какого-то ресурса становится мало, и докер должен замедлить скорость перезапуска или, как оптимизация замедляет скорость перезапуска, но устанавливает максимальное значение в минуту.

1 Ответ

0 голосов
/ 26 апреля 2018

Я думаю, это объясняет это:

"Постоянно увеличивающаяся задержка (удваивается по сравнению с предыдущей задержкой, начиная с 100 миллисекунд) добавляется перед каждым перезапуском, чтобы предотвратить переполнение сервера. Это означает, что демон будет ждать 100мс, затем 200 мс, 400, 800, 1600 и т. д. до тех пор, пока не будет достигнут предел допустимого сбоя, или когда вы остановите Docker или docker rm -f контейнер.

Если контейнер успешно перезапущен(контейнер запускается и работает не менее 10 секунд), для задержки устанавливается значение по умолчанию, равное 100 мс. "

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...