在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 stats
或top
的解释不正确,请告诉我)top
与docker stats
资源使用报告之间存在差异的原因是什么?
1条答案
按热度按时间nx7onnlm1#
在搜索“us vs sy top command”后,我看到“us”是处理与用户相关的任务所花费的时间,而“sy”是处理与内核相关的任务所花费的时间。所以事实上。。。这大概是100%的使用