元々そういわれていた様な気もするのでなにを今更という感じもしますが備忘として。
HostOSにprocessorひとつ
- HostOSのprocessor数の確認
# cat /proc/cpuinfo | grep processor
processor : 0
CPUはひとつだけ。
- コンテナに割り当てられたprocessorの確認
# cat /sys/fs/cgroup/cpuset/system.slice/docker-046da3a950705f500154c13fd0cc4ded2e01145e26aed3797b5231c6cafebe5d.scope/cpuset.cpus
0
もちろんコンテナに割り当てられているのもひとつだけ。
processor増設(1→4)
VMのCPU割り当てを追加しました。
- HostOSのprocessor数の確認
# cat /proc/cpuinfo | grep processor
processor : 0
processor : 1
processor : 2
processor : 3
CPUプロセッサは4つ見える。
- コンテナに割り当てられたprocessorの確認
# cat /sys/fs/cgroup/cpuset/system.slice/docker-046da3a950705f500154c13fd0cc4ded2e01145e26aed3797b5231c6cafebe5d.scope/cpuset.cpus
0-3
勝手に4つ全部使ってる!
要するに
--cpuset-cpus
オプションを利用しないで立ち上げたコンテナについてはHostOS側のprocessorを増設すると自動で割り当て数も増える。
CPUを計画的に使いたいのであれば各コンテナに必要なprocessorを割り当てた方が良いよということ。