Hoy estuve intentando crear un contenedor con OpenLDAP para un proyecto. Escogí como imágen de partida la de Alpine 3.20 e instalé todos los paquetes necesarios.
Tras pasarme la tarde arreglando oportunamente la configuración, me di cuenta con docker stats
de que estaba consumiendo 680MB de memoria, lo cual me parece una exageración irracional. ¿En qué cabeza cabe que un servicio tan sencillo consuma tantos recursos?
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS 84de487d7154 pura-fiesta-ldap 0.00% 682.7MiB / 62.57GiB 1.07% 29.7kB / 5.24kB 0B / 2.02MB 3
Estuve un buen rato revisando la configuración y los módulos que había instalado hasta que dí con esta cuestión abierta en 2014 en un proyecto de Docker que trata de difundir aquello de la contenerización.
En la conversación se da alguna que otra vuelta sin llegar a ninguna parte, hasta que alguien menciona que, antes de levantar OpenLDAP con slapd
, se limite el número de archivos que se puedan abrir simultáneamente a 1024:
ulimit -n 1024 slapd ...
Y efectivamente, con este remedo el consumo de memoria baja dos órdenes de magnitud hasta alrededor de 6MB:
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS a52d94b64a69 pura-fiesta-ldap 0.00% 5.637MiB / 62.57GiB 0.01% 2.58kB / 168B 0B / 0B 3