“top”和“docker stats”似乎报告了不同的CPU资源利用率数字-为什么?

sy5wg1nm  于 2023-04-29  发布在  Docker
关注(0)|答案(1)|浏览(263)

在Ubuntu上22.04 VM运行PostgreSQL作为Docker服务(在Docker Swarm节点上),查看VM上服务的资源利用率(docker stats)似乎给予VM上通过top直接报告的资源利用率相比。
我理解docker stats中的“CPU %”列,粗略地说是100% = 1 CPU。对吗?如果是这样,那么docker stats命令的输出意味着16个CPU大约以100%的容量使用(这是应该的情况,我指定了--cpus 16

$ docker stats
CONTAINER ID   NAME              CPU %      MEM USAGE / LIMIT   MEM %     NET I/O        BLOCK I/O        PIDS
0d95cd7wef16   postgis_v15....   1595.06%   6.824GiB / 11GiB    62.04%    6GB / 45.6MB   46.7GB / 109GB   42

top命令显示16个CPU的利用率为65%:

$ top
Tasks: 385 total,  32 running, 353 sleeping,   0 stopped,   0 zombie
%Cpu0  : 64.3 us, 35.7 sy,  0.0 ni,  0.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu1  : 69.1 us, 30.2 sy,  0.0 ni,  0.3 id,  0.0 wa,  0.0 hi,  0.3 si,  0.0 st
%Cpu2  : 64.5 us, 35.2 sy,  0.0 ni,  0.0 id,  0.3 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu3  : 66.0 us, 34.0 sy,  0.0 ni,  0.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu4  : 63.8 us, 35.9 sy,  0.0 ni,  0.3 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu5  : 67.0 us, 31.7 sy,  0.0 ni,  1.3 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu6  : 65.9 us, 31.8 sy,  0.0 ni,  1.0 id,  1.0 wa,  0.0 hi,  0.3 si,  0.0 st
%Cpu7  : 67.3 us, 32.3 sy,  0.0 ni,  0.3 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu8  : 61.0 us, 38.7 sy,  0.0 ni,  0.3 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu9  : 66.1 us, 33.9 sy,  0.0 ni,  0.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu10 : 62.2 us, 35.1 sy,  0.0 ni,  2.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu11 : 59.3 us, 40.1 sy,  0.0 ni,  0.3 id,  0.0 wa,  0.0 hi,  0.3 si,  0.0 st
%Cpu12 : 65.1 us, 34.9 sy,  0.0 ni,  0.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu13 : 64.7 us, 35.3 sy,  0.0 ni,  0.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu14 : 61.3 us, 38.7 sy,  0.0 ni,  0.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu15 : 67.7 us, 32.3 sy,  0.0 ni,  0.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
GiB Mem :     11.7 total,      0.4 free,      2.4 used,      8.9 buff/cache
GiB Swap:      1.0 total,      1.0 free,      0.0 used.      4.4 avail Mem

(如果我对docker statstop的解释不正确,请告诉我)
topdocker stats资源使用报告之间存在差异的原因是什么?

nx7onnlm

nx7onnlm1#

在搜索“us vs sy top command”后,我看到“us”是处理与用户相关的任务所花费的时间,而“sy”是处理与内核相关的任务所花费的时间。所以事实上。。。这大概是100%的使用

相关问题