真实平均 CPU 使用率

真实平均 CPU 使用率

在我的具有 32 个物理核心的系统上,我不断地生成 100 个线程,这些线程运行时间在 0 到 3 秒之间。全部完成后,就会产生下一批。

我想获得正确的平均 cpu 使用率,即这些核心在 1 分钟内的平均使用率是多少。如果它们有 30% 的时间处于空闲状态,则该值应为 0.7

使用 htop 时,我得到的平均负载超过 40,这高于核心数但是,如可以在这个视频,CPU 核心并不总是使用到 100%。这是我所期望的,因为所有 100 个线程都必须在生成新线程之前完成。

如何更准确地测量 CPU 使用率?

答案1

平均负载并不是每个CPU的使用率。这是一个经常被引用的负载平均含义的解释。因此,对于 100 个没有完全使用 100% 核心的线程来说,40 的平均负载似乎相当合理。

为了测量实际的CPU使用率,我会考虑使用性能它可以读取硬件性能计数器。 Perf 是一个非常强大的工具,可以测量很多东西,在你的情况下我可能会尝试:

perf stat -e cycles ./your_executable

相关内容