多线程进程的 CPU 利用率

多线程进程的 CPU 利用率

背景:几年前,我安装 Fedora Core 2 时,有一大堆运行 2.6.20 和 2.6.22 内核的系统。据报告,这些系统有 8 个 CPU cat /proc/cpuinfo

我的问题是,当运行使用多线程的进程时,报告的 99.99% CPU 使用率是指top每个 CPU 的 99.99% 还是将每个 CPU 的使用率加在一起,总共 99.99%?换句话说,最大百分比应该是 800% 还是 100%?

似乎当其中一个进程达到 99.99% 时,如果单独查看每个 CPU,它们会显示利用率为 25%(而不是 100%)。

任何帮助都非常感谢。如果我的解释不清楚或令人困惑,请告诉我,我会尽力澄清。

更新 看来,我们发现利用率低下是因为程序员使用的线程模型存在问题。他们使用的是用户线程,而不是内核线程,而且用户线程的功能也存在限制。

答案1

99% 的 CPU 使用率意味着单核几乎完全利用。

如果你的系统完全加载 [ 几个线程每个占用一个 CPU ] - 你会看到四核处理器的使用率为 400% 或两个四核处理器的使用率为 800%。

进程/线程在 CPU 之间重新分配 - 这就是为什么你看到每个核心的利用率为 25%。但你可以设置亲和性对于他们来说..那么他们会坚持使用选定的处理器/核心。

答案2

它显示每个核心的负载。别忘了还有一款很棒的“top”替代品,叫做 htop。它会显示单个 CPU/核心的负载。

相关内容