概要
Dockerには使えるCPUのコア(スレッド)数を制限する機能があります。
0.1コア分だけ使用する
docker update --cpus 0.1 container
docker create -it --cpus 4.5 --storage-opt size=120G fedora /bin/bash
最小単位が0.01から、最大で搭載しているコアの数まで上げられます。
これと言って特定のコアにやらせるわけではないので、OSが勝手に実際に使うコアを指定します。
docker updateの場合には即座に制限が有効になるようです。
仕組み
例えば、
docker update --cpus 0.1 container
とした場合、
docker inspect container
・・・
"HostConfig": {
"NanoCpus": 100000000,
・・・
とされます。
NanoCPU つまり
100000000 NanoCPU = 0.1 CPUコア
という等式が成り立ちます。
NanoCPUというのは
CPU quota in units of 10-9 CPUs.
1CPUを109区切りにした値のようです。
ところが、なぜこのような奇妙な分け方をするのは明らかではありません。
小数点を入れないようにするためでしょうか。
関連記事
- Dockerコンテナで利用できるリソースや権限を制限する(Dockerの最新機能を使ってみよう:第3回)
- https://qiita.com/hoto17296/items/43d8c2d695c8724b99aa