¿Cómo sabe el demonio Docker acerca de los recursos de hardware disponibles?

¿Cómo sabe el demonio Docker acerca de los recursos de hardware disponibles?

Estamos ejecutando Docker en una máquina virtual RedHat en un hipervisor VMWare. Cuando agregamos más núcleos virtuales (vCPU) a la VM, RedHat ve los recursos adicionales y puede abordarlos, pero no los contenedores que ejecuta o inicia Docker. Sólo pueden usarCPU0 a CPU7y CPU8 a CPU15 soncompletamente intocable por cualquier contenedor. Docker Inspect no devuelve ninguna limitación en las CPU. Un reinicio de la máquina virtual no ayudó a solucionar este problema. Un contenedor cadvisor también informa que solo hay 8 núcleos disponibles. ¿Alguien sabe cómo solucionarlo? ¿Docker guarda la cantidad original de CPU en algún lugar? ¿Cómo sabe el demonio Docker la cantidad de núcleos disponibles?

Respuesta1

Lo solucionamos. Hay un truco para que Docker sea consciente de las CPU conectadas en caliente. No sabemos por qué la configuración anterior sobrevivió a los reinicios. El siguiente comando fue la solución:

for c in $(compgen -G '/sys/fs/cgroup/cpuset/system.slice/docker-*'); do echo 0-15 > ${c}/cpuset.cpus ; done

información relacionada