cpu数据相差大
在使用top和ps命令查看进程相关数据时,发现一些数据相差太大,给排查问题造成了困扰。如下图,top命令显示systemd进程%CPU数据是54.1,而ps命令显示systemd进程%CPU数据是37.7。
统计维度不一样
为了弄清楚指标的含义,我查看了top和ps的帮助文档,发现了问题所在,这两个命令统计的维度不一样导致了数据差异性。以下是两个命令的各个指标含义。
top命令
VIRT | 进程使用的虚拟内存总量(KB),包含了被swap out的代码、数据、共享库 |
RES | 进程使用的常驻物理内存总量(KB),不包含swap out |
SHR | 进程可用的共享内存(KB) |
S | 进程状态:D(不可中断睡眠)、R(运行)、S(睡眠)、Z(僵尸) |
%CPU | 进程当前的cpu使用率 |
%MEM | 进程当前物理内存使用率。 |
ps命令
%CPU | 进程自启动以来的cpu平均使用率 |
%MEM | 进程当前物理内存使用率,RSS/物理总内存 |
VSZ | 进程使用的虚拟内存总量(KB),包含了被swap out的代码、数据、共享库 |
RSS | 进程使用的常驻物理内存总量(KB),不包含swap out |