如何计算多核系统中应用程序的 CPU 利用率

如何计算多核系统中应用程序的 CPU 利用率

在 8 核服务器上,0-3 配置为 isolcpus,其余核心 (4-7) 可供系统和用户进程运行。我的应用程序有多个进程,它们将在任何一个上述非 isolcpu 核心 (4-7) 上运行。

我需要找到应用程序的总 CPU 利用率(所有进程的组合)来确定系统要配置的正确的 isolcpus 范围。

我对这种计算进程或进程组的 CPU 利用率的方法感到很困惑。有人能用通俗易懂的语言告诉我吗?谢谢!

也经历了相关问题,但都无济于事: CPU 时间和 CPU 使用率有何相同之处?

答案1

如何启动该应用程序?

如果你使用 systemd可以使用CPUAccounting=设置在单元文件中,systemd 将收集一些 CPU 指标。如果你不使用 systemd,你仍然可能手动将您的应用程序放入启用了会计功能的 cgroup 中

最后,我会退一步重新考虑你试图解决的问题的方法。CPU 中有很多细微差别,所以只看 CPU 时间可能没有帮助。如果你还不知道需要多少个专用核心,你可能根本不想使用它们。专用核心通常用于对延迟非常敏感的应用程序,这些应用程序广泛使用自旋锁并严格控制线程数量。想想那些想要避免上下文切换和中断的低延迟用户空间网络驱动程序。

您想要优化什么?工作负载是否对延迟敏感?除了专用核心之外,设置 CPU 限制是否更好?

相关内容