如何计算每个 CPU 负载

dia*_*ago 2 linux cpu

是否有任何 C API 来计算每个 CPU 负载?/proc/loadavg给出了所有可用 CPU 的 CPU 平均负载,并且/proc/stat没有提及每个 CPU 的活动进程。

如何获取每个 CPU 的负载?

phe*_*mer 5

没有每 CPU 负载这样的东西。

平均负载定义为等待系统资源的进程数。这不一定是 CPU。此外,由于进程可能正在等待 CPU 时间,并且没有在 CPU 上主动运行,因此您不能将其归因于任何特定的 CPU,因为该进程最终可能会在任何 CPU 上运行(除非已固定)。

但是,您可以获得每个 CPU 的利用率百分比。使用/proc/stat,并使用每个 CPU 的第 4 个字段来确定该 CPU 的空闲程度(请参阅man 5 proc/proc/stat部分)。
基本上读值,休眠1秒,再读值,将差值除以USER_HZ。