如何计算不错的 cpu 百分比,例如在顶部



我的研究小组在 CentOS 服务器上共享时间,我们一直在使用 renice +15 来尝试降低长时间运行的后台任务的优先级。当运行 top 时,这些进程确实显示为具有不错的值 15,但即使这些进程在 30 个内核上搅动(如 %CPU 列中报告),良好 CPU 负载的"%ni"度量值始终非常低(小于 1%)。这让我们认为我们实际上并没有正确使用 renice(尽管 nice 进程似乎确实屈服于更高优先级的任务)。顶部的 cpu 百分比究竟是如何计算的?

顶部的数字来自读取文件/proc/stat。第一行包含所有组合 CPU 的摘要。第一列是 usr 时间,第二列是美好时间。这些时间以时钟周期为单位,通常为每秒 100 次,并且是累积的,因此您必须查看并间隔并从结束值中减去起始值。您可以查看文档以获取更多详细信息,我喜欢 http://man7.org/linux/man-pages/man5/proc.5.html

如果 nice 值大于 0,Linux 内核会将 CPU 时间添加到 nice 列中,否则会将其放在 usr 列中。

单个进程的良好值可以通过查看/proc/[pid]/stat 的第 19 列找到。这个数字对你来说应该是 15,第 18 列中的数字应该是 35(内核内部解释为 15。但是,如果 top 在 NI 列中将这些值显示为 15,则它从/proc/[pid]/stat 获取该值。

比较 usr 和/proc/

[pid]/stat 中的 sys 中使用的 CPU 时间,然后比较/proc/stat 中的 usr、nice 和 sys 将使您很好地了解时间的走向。也许系统上只有大量的CPU。

最新更新