我的研究小组在 CentOS 服务器上共享时间,我们一直在使用 renice +15 来尝试降低长时间运行的后台任务的优先级。运行 top 时,这些进程确实显示为具有 15 的不错值,但是即使这些进程在 30 个内核上运行(如在 %CPU 列中报告)。这让我们认为我们实际上并没有正确使用 renice(尽管 nice 进程似乎确实让步给了更高优先级的任务)。顶部的nice cpu百分比究竟是如何计算的?
问问题
973 次
1 回答
0
顶部的数字来自读取文件 /proc/stat。第一行包含所有 CPU 组合的摘要。第一列是 usr time,第二列是 nice time。这些时间以时钟滴答为单位,通常为每秒 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,则它从 /进程/[pid]/stat.
比较 /proc/[pid]/stat 中的 usr 和 sys 中使用的 CPU 时间,然后比较 /proc/stat 中的 usr、nice 和 sys,您可以很好地了解时间的去向。也许系统上只有大量的 CPU。
于 2014-01-29T00:14:46.837 回答