У меня есть следующие настройки:
- Служба Perl работает в контейнере и записывает выход в
STDERR
- logspout для отправки этих журналов на удаленный сервер для архивации
в машине с оперативной памятью 600 МБ.
Я также периодически усекаю логи по адресу:
/var/lib/docker/containers/CID/CID-json.log
как предложено здесь, чтобы избежать 100% дисковых сценариев.
Проблема
Демон Docker запускается с низким использованием памяти, изначально 1%, и медленно увеличивается до 40% после 2 дней работы контейнера.
Ссылка
Утечка памяти демона Docker обсуждалась в этой проблеме и этой проблеме. Но оба они теперь закрыты, говоря, что они слились в коммите. Я использую последнюю основную версию Docker (Docker версии 1.4.0, сборка 4595d4f), но все еще сталкиваюсь с монотонно возрастающей проблемой использования памяти.
ОБНОВЛЕНИЕ: я сделал этот эксперимент: просто запустите процесс bash в контейнере, распечатайте много строк в STDERR, использование памяти процесса демона docker очень быстро ускоряется
Docker выполняет некоторую буферизацию журнала и не освобождает память, даже если основной файл журнала (/var/lib/docker/containers/CID/CID-json.log
) очищен?
Там, видимо, нет способа очистить журналы. Будет ли этот коммит решить эту проблему для длительных задач?
Я не знаю, почему использование памяти docker daemon продолжает расти. Как мне отладить эту проблему?