linux ‘top’ 获取用户 CPU 使用率总计 > 100%,关闭 IRIX 模式

linux ‘top’ 获取用户 CPU 使用率总计 > 100%,关闭 IRIX 模式

我用了 'top -bn 1 -u 我的账户' 来监控我的账户的所有 CPU 使用情况的摘要。

但有时我的日志显示汇总总计超过 160%。我很困惑,有人知道为什么吗?

我的最高版本是 3.2.3

这是我的 toprc 的顶部:

RCfile 中的“顶部带窗户”# 厚颜无耻的吹牛

Id:a,Mode_altscr=0,Mode_irixps=0,Delay_time=3.000,Curwin=0

========

Irix 模式开启:

PID %CPU
18119 4.3 162:36.22 java

Irix 模式关闭:

PID %CPU (8 核机器)
18119 0.6 162:36.22 java

我的意思是在第二种情况下,我所有进程的 CPU 使用率有时可能会加起来达到 160%

答案1

jørgensen 解释了 CPU 使用率高于 100% 的原因。基本上,CPU 使用率在充分利用一个核心时缩放到 100%。top 的 IRIX 模式只是改变了 CPU 使用率的计算方式。

IRIX 模式的解释见手册页,其中写道:

k:%CPU——CPU 使用率 自上次屏幕更新以来,任务所占的 CPU 时间份额,以占总 CPU 时间的百分比表示。在真正的 SMP 环境中,如果“Irix 模式”关闭,top 将以“Solaris 模式”运行,其中任务的 CPU 使用率将除以 CPU 总数。您可以使用“I”交互命令切换“Irix/Solaris”模式。

'I' :Irix/Solaris_Mode_toggle 在“Solaris 模式”(“I”切换为关闭)下操作时,任务的 CPU 使用率将除以 CPU 总数。发出此命令后,您将被告知此切换的新状态。

以下是一些附加信息:分析 Linux 上的线程 CPU 使用率

答案2

这就是答案。每个线程都可以被调度并最大化不同的 CPU,而且由于 top 显示的是进程,所以很容易累加。

相关内容