Docker デーモンは利用可能なハードウェア リソースをどのように認識するのでしょうか?

Docker デーモンは利用可能なハードウェア リソースをどのように認識するのでしょうか?

VMWareハイパーバイザー上のRedHat VMでDockerを実行しています。VMに仮想コア(vCPU)を追加すると、RedHatは追加のリソースを認識して対処できますが、Dockerによって実行または起動されたコンテナは処理できません。CPU0からCPU7CPU8からCPU15はいかなる容器にも完全に触れられないDocker の検査では CPU の制限が返されません。VM を再起動しても、この問題が解決しませんでした。cadvisor コンテナも、使用可能なコアが 8 個しか報告しません。修正方法をご存知の方はいませんか? Docker は元の CPU 数をどこかに保存していますか? Docker デーモンは、使用可能なコアの数をどのようにして知るのでしょうか?

答え1

解決しました。docker にホットプラグされた CPU を認識させるコツがあります。古い設定が再起動後も残っている理由はわかりません。次のコマンドが解決策でした。

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

関連情報