linux - 如何计算 nice cpu 百分比,例如在顶部?

标签 linux cpu nice

我的研究小组正在 CentOS 服务器上共享时间,我们一直在使用 renice +15 来尝试降低长时间运行的后台任务的优先级。当运行 top 时,这些进程确实显示为 nice 值为 15,但是 nice cpu 负载的“%ni”度量总是非常低(小于 1%),即使这些进程在 30 个内核上运行(如在 %CPU 列中报告)。这让我们认为我们实际上并没有正确使用 renice(尽管 nice 进程似乎确实会屈服于更高优先级的任务)。 top 中 nice cpu percentage 到底是怎么计算的?

最佳答案

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

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

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

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

关于linux - 如何计算 nice cpu 百分比,例如在顶部?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19869913/

相关文章:

multithreading - OpenCL-如何有效地将工作项分配到不同的设备

c - 哪个代码消耗的电量更少?

assembly - 如何编写汇编语言使 DMA 工作

linux - Git:删除后使用本地更改恢复文件

windows - Windows 切换焦点时击键会发生什么

linux - 需要帮助配置 Jboss 6.4 的日志格式

c - 在 C 中重新启动程序

linux - Nice 和 Renice 命令

python - 控制python线程的调度优先级?