我看过一些与此类似的帖子,最引人注目的是这里,但对答案并不十分满意。我比较top
并ps
在一个特定的处理结果,并看到在CPU使用率巨大的差异。 top
从区间到区间的变化在 <1% 到 100% 之间,包括持续高点的时期(3-4 个区间 >50%),而ps
稳定在 2.2%。我正在观看的过程没有任何孩子或任何东西,所以我不太确定该怎么做。由于 中存在持续高位top
,我觉得可以排除采样间隔。
正如我上面链接的问题所建议的那样,这真的只是这两个工具如何处理 I/O 等待时间的差异吗?
编辑:
我已经看到它在 中波动到 2.1% ps
,但到目前为止就是这样。输出top -p 4522
:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
4522 root 16 0 340m 316m 4732 R 54.7 1.3 508:57.46 maui
Run Code Online (Sandbox Code Playgroud)
输出ps u -p 4522
:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 4522 2.2 1.3 348764 324456 ? Ss Aug25 509:25 /usr/local/maui/sbin/maui
Run Code Online (Sandbox Code Playgroud)
小智 10
这个问题很老,但在我看来答案是不正确的。ps 和 top 使用不同的方法计算 CPU 使用率。
从人顶部:
- %CPU -- CPU 使用率自上次屏幕更新以来,任务在CPU 时间中所占的份额,以总 CPU 时间的百分比表示。
来自人 ps:
CPU 使用率目前表示为在进程的整个生命周期内运行所花费的时间百分比。
因此,假设您有一个在一周前启动的进程,在此期间它平均使用了 2.2% 的 CPU 时间。如果它突然变得 CPU 密集型(持续消耗 100%) - 查看 ps 您会在前几个小时观察到相同的 2.2%。
归档时间: |
|
查看次数: |
9478 次 |
最近记录: |