subir iniciar imagen hub ejecutar dockers desde crear contenedor container cero memory docker lxc dockerfile

memory - imagen - iniciar docker



Fuga de memoria del demonio Docker debido a los registros de un proceso de larga ejecuciĆ³n (3)

Tengo la siguiente configuración:

  1. El servicio Perl se ejecuta en un contenedor y la escritura cierra la sesión en STDERR
  2. logspout para enviar esos registros a un servidor remoto para archivar

en una máquina RAM de 600 MB.

También truncamos los registros periódicamente en:

/var/lib/docker/containers/CID/CID-json.log

como se sugiere here para evitar escenarios de disco al 100%.

Problema

El demonio Docker comienza con poco uso de memoria, inicialmente un 1% y aumenta lentamente al 40% después de 2 días de ejecutar el contenedor.

Referencia

Se ha hablado de la pérdida de memoria del demonio Docker en este problema y en este problema . Pero ambos están cerrados ahora diciendo que se fusionaron en un compromiso. Estoy ejecutando la versión principal más reciente de la ventana acoplable (versión Docker 1.4.0, compilación 4595d4f), pero todavía tengo un problema monótonamente creciente de uso de memoria.

EDITAR: Hice este experimento: simplemente ejecute un proceso de bash en el contenedor, imprima muchas líneas a STDERR, el uso de memoria del proceso de demonio docker se acelera muy rápidamente

¿La ventana acoplable realiza algunos búferes de registro y no libera memoria incluso si se borra el archivo de registro subyacente (/var/lib/docker/containers/CID/CID-json.log)?

Aparentemente no hay manera de borrar los registros. ¿ Este compromiso resolverá este problema para tareas de larga ejecución?

No sé por qué el uso de la memoria del demonio docker sigue aumentando. ¿Cómo depuro este problema?


Puede que esto no sea lo que está buscando, pero generalmente ejecuto un trabajo cron para reiniciar mis contenedores después de un cierto tiempo todos los días. Esto garantiza que el contenedor tenga suficiente RAM todo el tiempo y, por lo general, también restringo el uso máximo de memoria RAM por parte del contenedor al crearlos.

Los contenedores tardan solo unos segundos en reiniciar y servir los datos, y si no está ejecutando un servicio de Alta disponibilidad y puede permitirse unos segundos de inactividad, considere reiniciar el contenedor (suponiendo que no tenga volúmenes persistentes).

Sin embargo, si encuentra una solución a su problema, háganoslo saber.



  • docker rm $ (docker ps -a -q)

  • docker rmi --force $ (imágenes de docker -q)

  • podadora del sistema docker --fuerza

Necesito ser usuario root.

  • systemctl stop docker

  • rm -rf / var / lib / docker / aufs

  • apt-get autoclean

  • apt-get autoremove

  • systemctl start docker