我发现很难理解 ps 和 top 产生的输出?
这是 top 的输出:
PID PSID USERNAME TID PRI NICE SIZE RES STATE TIME CPU COMMAND
26439 23712 soumyau 26439 15 0 7512M 5234M sleep 286:25 16.67% or_lse2 (18)
26523 23712 soumyau 26439 -2 0 7512M 5234M cpu9 143:10 8.33% or_lse2
26522 23712 soumyau 26439 -2 0 7512M 5234M cpu3 143:10 8.33% or_lse2
Run Code Online (Sandbox Code Playgroud)
这是由 ps ( ps -L -p 26439 -o pcpu,psr,pid,user,tid
):
%CPU PSR PID USER TID
99.9 3 26439 soumyau 26522
99.9 9 26439 soumyau 26523
0.0 8 26439 soumyau 26439
Run Code Online (Sandbox Code Playgroud)
为什么两个结果有差异?
你能简单解释一下这两个 CPU% 的意义吗?
小智 6
ps
基于累积 CPU 使用率(自进程启动以来),其中 %CPU 是平均值(总/时间)。
top
报告自上次采样以来的(平均)CPU 使用率。
作为参考,请参阅此片段 man ps
CPU 使用率目前表示为在进程的整个生命周期内运行所花费的时间百分比。这并不理想,也不符合 ps 在其他方面符合的标准。CPU 使用率加起来不太可能正好是 100%。
并从 man top
自上次屏幕更新以来,任务在 CPU 时间中所占的份额,以总 CPU 时间的百分比表示。在真正的 SMP 环境中,如果“Irix 模式”关闭,top 将在“Solaris 模式”下运行,其中任务的 CPU 使用率将除以 CPU 总数。您可以使用“I”交互命令切换“Irix/Solaris”模式。
归档时间: |
|
查看次数: |
12521 次 |
最近记录: |