Help us understand the problem. What is going on with this article?

DockerでCPUの使用量制限をする(--cpus)

More than 1 year has passed since last update.

概要

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区切りにした値のようです。
ところが、なぜこのような奇妙な分け方をするのは明らかではありません。
小数点を入れないようにするためでしょうか。

関連記事

参考文献

haniokasai
男子大学生の暇人です。ブログで活動していましたが。VPSオタク。アンチGCPとAWS。国内外のサーバーをたくさん借りてました。JavaとPythonを主に使います。 アイコンはらてちさんから。
https://haniokasai.com
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away