docker运行–cpuset没有任何作用

我通过将cpuset指定为1核心来启动一个docker容器:

docker run --cpuset-cpus="0"... 

第二个方法是将cpuset指定为4个核心:

 docker run --cpuset-cpus="0-3"... 

我在每个容器中启动了一个加载进程,并监视了两个容器的CPU消耗。

加载过程如下所示:

 ffmpeg input > output 

我发现在两个容器之间的执行时间没有提高(没有加速)。

你有什么想法为什么没有改善? 4个容器的容器应该比1个容器的容器运行得快吗?

NB:使用顶部1core容器

 CPU0%=100% CPU1%=0 CPU2%=0 CPU3%=0 

使用顶级的4核容器,docker工随机select4核心之一启动过程。 有时它影响每个核心30%

 CPU0%=0 CPU0%=30% CPU0%=0 CPU1%=100% or CPU0%=30% or CPU0%=0 CPU2%=0 CPU0%=30% CPU0%=0 CPU3%=0 CPU0%=30% CPU0%=100% 

即使gzip可用, gzip也不会使用多个内核。 结果这个程序不太适合做关于使用CPU内核的性能testing。

改用pzip 。 请参阅使用多核心进行tar + gzip / bzip压缩/解压缩

另请参阅如何在Linux服务器上产生高CPU负载?


Docker Hub上已经提供了stress工具,因此您可以通过运行以下--cpuset-cpusvalidation--cpuset-cpus选项是否正常工作:

 docker run --rm -it --cpuset-cpus="0-3" jess/stress --cpu 4 

→你会见证所有4核心使用率达到100%。

然后通过运行:

 docker run --rm -it --cpuset-cpus="0-1" jess/stress --cpu 4 

→你会见证只有2个核心使用率达到100%。