Como o daemon Docker sabe sobre os recursos de hardware disponíveis?

Como o daemon Docker sabe sobre os recursos de hardware disponíveis?

Estamos executando o Docker em uma VM RedHat em um hipervisor VMWare. Quando adicionamos mais núcleos virtuais (vCPUs) à VM, o RedHat vê os recursos adicionais e pode abordá-los, mas não os contêineres em execução ou iniciados pelo Docker. Eles só podem usarCPU0 a CPU7e CPU8 a CPU15 sãocompletamente intocável por qualquer recipiente. Docker inspecionar não retorna nenhuma limitação de CPUs. Uma reinicialização da VM não ajudou a resolver isso. Um contêiner cadvisor também informa apenas 8 núcleos disponíveis. Alguém sabe como consertar isso? O Docker salva o número original de CPUs em algum lugar? Como o daemon do Docker sabe o número de núcleos disponíveis?

Responder1

Nós resolvemos isso. Existe um truque para alertar o docker sobre CPUs hotplugadas. Não sabemos por que a configuração antiga sobreviveu às reinicializações. O seguinte comando foi a solução:

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

informação relacionada