2017-11-29 1 views
0

私は今しばらくの間、ドッカーで働いている、私はドッキングウィンドウをインストールし、私はドッキングウィンドウのコンソールにログインして、それがある3を示しドッカーコンテナが使用するコアの数を確認する方法は?

grep processor /proc/cpuinfo | wc -l 

を実行すると

docker run -it --cpuset-cpus=0 ubuntu 

を使用してコンテナを立ち上げましたホストマシン上にあるコアの数。

リソースをコンテナに制限する方法と制限を確認する方法については何ですか?

答えて

0

Containers aren't complete virtual machines。いくつかのカーネルリソースは、ホスト上でのように表示されます。

この場合、--cpuset-cpus=0は、コンテナが参照できるリソースではなく、コンテナcgroupがアクセスできるリソースを変更します。検証する

一つの方法は、容器にstress-ngツールを実行することです:1つのCPUを使用して

は、あなたが使用しているもののツールに応じて、使用中の1コア(1月3日コア、100%または33%で固定されます):これは、3(3/3コア、300%/ 100%)を使用する

docker run --cpuset-cpus=0,2 deployable/stress -c 3 

docker run --cpuset-cpus=0 deployable/stress -c 3 

これは2つのコア(2/3コア、200%/ 66%)を使用します:

docker run deployable/stress -c 3 

メモリの制限が

$ docker run -m 64M busybox free -m 
      total  used  free  shared buffers  cached 
Mem:   3443  2500  943  173  261  1858 
-/+ buffers/cache:  379  3063 
Swap:   1023   0  1023 

yamaneks answergithub issue含まれるカーネルの統計情報に表示されていない別の領域です。

+0

これはおかげです@Matt – user3398900

-1

二重引用符で囲む必要があります。--cpuset-cpus = ""、--cpuset-cpus = "0"はcpu0を使用することを意味します。

+0

#ドッカー実行-it --cpuset-のCPU = "0" 20c44cd7596f "/ binに/ bashの" ルート@ c44351fd21a7に反映されていない効果を取っている:/#のgrepのプロセッサ/ proc/cpuinfo | wc -l 変更なし – user3398900

+1

引用符は、引数にスペースやその他のシェル特殊文字がある場合にのみ必要です。 – Matt

1

この問題は既に#20770で発生しています。ファイル/sys/fs/cgroup/cpuset/cpuset.cpusには正しい出力が反映されています。

cpuset-cpusしかし/proc/cpuinfo

関連する問題