如何计算每个 CPU 负载

如何计算每个 CPU 负载

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

如何获取每个CPU的负载?

答案1

不存在“每个 CPU 负载”这样的东西。

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

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

相关内容