我通过将cpuset指定为1个核心来启动一个docker容器:
.icon {
display: inline-block;
height: 24px;
width: 24px;
margin-right: 1px;
image-rendering: crisp-edges;
background-size: contain;
&.login{ background: url(../img/ico-login.svg) no-repeat center center; }
&.logout{ background: url(../img/ico-logout.svg) no-repeat center center; }
}
第二个将cpuset指定为4个核心:
docker run --cpuset-cpus="0"...
我在每个容器中启动了一个加载过程,我监视了两个容器的CPU消耗。
加载过程如下:
docker run --cpuset-cpus="0-3"...
我观察到两个容器之间的执行时间没有任何改善(没有加速)。
你知道为什么没有改进吗?具有4个核心的容器应该比1个核心容器运行得快吗?
NB: 使用top为1核心容器
ffmpeg input > output
使用top为4核心容器,docker随机选择4个核心中的一个来启动该过程。有时它会影响每个核心30%
CPU0%=100%
CPU1%=0
CPU2%=0
CPU3%=0
答案 0 :(得分:4)
gzip
即使可用,也不会使用多个核心。因此,该程序不适合进行有关CPU内核使用的性能测试。
请改用pzip。见Utilizing multi core for tar+gzip/bzip compression/decompression
另见How can I produce high CPU load on a Linux server?
方便地,Docker Hub上已经提供了stress
工具,因此您可以通过运行验证docker --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%使用率。