В настоящее время я пытаюсь развернуть приложение node.js в докер-контейнерах. Мне нужно развернуть 30 из них, но в какой-то момент они начинают вести себя странно, некоторые из них замирают.
В настоящее время я использую Версия Docker для Windows 18.03.0-ce, сборка 0520e24302 , характеристики моего компьютера (процессор и память):
Распределение ресурсов машины по умолчанию для моего докера следующее:
- выделенная оперативная память: 10 Гб
- Выделенные виртуальные ЦП: 4
Приложение моего узла работает на apline3.8 и node.js 11.4 и в основном выполняет http-запросы каждые 2-3 секунды.
Когда я пытаюсь развернуть 20 контейнеров, все работает как чудо, мое приложение выполняет свою работу, и я вижу, что в каждом из моих контейнеров есть активность по журналам и статистике активности.
Проблема возникает, когда я пытаюсь развернуть больше контейнеров, более 20, я могу заметить, что некоторые из ранее развернутых контейнеров начинают останавливать свою деятельность (использование 0% ЦП, зависание журналов). Когда все развернуто (30 контейнеров), Docker начинает блокировать активность некоторых из них и разблокировать их в какой-то момент, чтобы заблокировать некоторые другие (блокировка / разблокировка является случайной). Это кажется последовательным. Я попытался подождать и посмотреть, что произошло, и в результате некоторые контейнеры могут выполнять свои действия, а некоторые застряли навсегда (все еще работают, но больше не работают).
Важно, чтобы заметил, что я использовал следующие ограничения ресурсов для каждого из моих контейнеров:
- Память Резервирование: 160 МБ
- Мягкий предел памяти: 160 МБ
- NanoCPU: 250000000 (0,25 процессора)
Мне пришлось увеличить выделение ресурсов машины моего докера по умолчанию и уменьшить распределение ресурсов контейнера, потому что он использовал почти 100% моего процессора, возможно, я допустил ошибку в своей конфигурации. Я пытался настроить эти значения, но безуспешно, но некоторые контейнеры зависли.
Я вроде как потерял право знать.
Любая помощь будет признательна даже маленькой, спасибо заранее!