2017-10-07 14 views
0

docker --cpuset-cpusオプションを使用してコンテナのCPUを制限しようとしています。しかし、私は何らかの理由で望ましい結果を得ていません。たとえば、次のコマンドでは1を出力するだけです:dockerコンテナのCPUコアを制限する

docker run -it --cpuset-cpus=0 ubuntu:latest grep processor /proc/cpuinfo | wc -l 

しかし、結果は4(4はホストに表示されるCPUの数)になります。これはどんなOSでもそうです。

docker run -it --cpuset-cpus=0 centos grep processor /proc/cpuinfo | wc -l 
docker run -it --cpuset-cpus=0 alpine grep processor /proc/cpuinfo | wc -l 

Client: 
Version:  17.09.0-ce 
API version: 1.32 
Go version: go1.8.3 
Git commit: afdb6d4 
Built:  Tue Sep 26 22:42:45 2017 
OS/Arch:  linux/amd64 

Server: 
Version:  17.09.0-ce 
API version: 1.32 (minimum version 1.12) 
Go version: go1.8.3 
Git commit: afdb6d4 
Built:  Tue Sep 26 22:41:24 2017 
OS/Arch:  linux/amd64 
Experimental: false 

アムのcpuset-CPUのオプションの私の理解では、私が間違っていますか?もしそうなら、期待している動作を得るために渡す必要のある正確なパラメータは何ですか? (grep processor /proc/cpuinfo | wc -lは1を出力する必要があります)

答えて

0

あなたはパーセントまたは数値でより少ないCPUを使用することを意味します。あなたはあなたのCPUの50%、または2つのCPUを使いたいのですか?

$ docker run -it --cpuset-cpus="0-2" ubuntu:14.04 /bin/bash 

これは--cpu-quotaフラグはコンテナのCPU使用率を制限するCPU1と、CPU2

、容器内のプロセスがCPU 0で実行できることを意味します。デフォルトの0の値は、コンテナが100%のCPUリソース(1つのCPU)を取ることを可能にします。そのhttps://github.com/moby/moby/issues/20770

について問題があると思われ

docker run --rm --cpuset-cpus=0,1 ubuntu sh -c "cat /sys/fs/cgroup/cpuset/cpuset.cpus" 

に似たものを使用し、それが動作するかどうかをチェックしてみてください。

希望します。

0

私が知る限り、カーネルのCPUセットはprocファイルには何ら影響しません。

関連する問題