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-cpus
validation--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%。