了解 Linux CPU 使用率

了解 Linux CPU 使用率

我被困在对我的一个进程进行分析,该进程名为(见top输出)xspectra-frameb

其内部结构可概括如下:

  • 8 个线程正在recv处理来自套接字连接的突发数据,并将对缓冲区的写入访问互斥
  • 一个线程负责数据同步(程序表现为一种数据馈送聚合器),对缓冲区的读取访问进行互斥

处理器是具有 4 个超线程核心的 Xeon。图表显示在我的 CPU 爆发期间,它们都非常空闲,但top显示的值不同(125.9%)。

我应该更相信哪个值?

Top vs Gnome *系统监视器*

答案1

top将每个核心计为 100%。您有 8 个核心,因此 800% 是满 CPU 负载。

让我们总结一下系统监视器的值:

21.2 + 10.8 + 20.7 + 18.4 + 27.8 + 27.3 + 37.9 + 26.9 = 191%

这大致相当于top分数:

125.9 + 66.4 + 9.0 + 7.3 + 4.0 + 3.7 + 3.0 + 3.0 + 3.0 + 0.3 + 0.3 + 0.3 = 226.2%

为什么会有差异?核心负载不是同时读取的。每个核心都是逐个查询的,而且top系统监视器不会同时执行此操作。这就是结果会有所不同的原因。

您可能希望使用htop不太令人困惑且单独显示核心负载的方法。

相关内容