sta*_*icx 5 multicore resource-management cpu-usage docker cpuset
我通过将 cpuset 指定为 1 个内核来启动一个 docker 容器:
docker run --cpuset-cpus="0"...
Run Code Online (Sandbox Code Playgroud)
第二个通过将 cpuset 指定为 4 个内核:
docker run --cpuset-cpus="0-3"...
Run Code Online (Sandbox Code Playgroud)
我在每个容器内启动了一个加载进程,并监控了两个容器的 CPU 消耗。
加载过程如下:
ffmpeg input > output
Run Code Online (Sandbox Code Playgroud)
我观察到两个容器之间的执行时间没有改善(没有加速)。
你知道为什么没有改进吗?具有 4 个核心的容器应该比 1 个核心容器运行得更快,对吗?
注意:对 1core 容器使用 top
CPU0%=100%
CPU1%=0
CPU2%=0
CPU3%=0
Run Code Online (Sandbox Code Playgroud)
使用 top 作为 4core 容器,docker 随机选择 4 个内核之一来启动进程。有时它会影响每个核心的 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%
Run Code Online (Sandbox Code Playgroud)
gzip不使用多个内核,即使它们可用。因此,该程序不太适合进行有关 CPU 内核使用的性能测试。
请改用pzip。请参阅使用多核进行 tar+gzip/bzip 压缩/解压缩
方便的stress是,该工具已在 Docker Hub 上可用,因此您可以--cpuset-cpus通过运行以下命令来验证 docker选项是否正常工作:
docker run --rm -it --cpuset-cpus="0-3" jess/stress --cpu 4
Run Code Online (Sandbox Code Playgroud)
? 您将见证所有 4 个内核的使用率均达到 100%。
然后通过运行:
docker run --rm -it --cpuset-cpus="0-1" jess/stress --cpu 4
Run Code Online (Sandbox Code Playgroud)
? 您会看到只有 2 个内核达到 100% 的使用率。
| 归档时间: |
|
| 查看次数: |
4924 次 |
| 最近记录: |