linux加载包含当前正在运行的线程还是只包含等待运行的线程数?
以下是Darren Hoch的 Linux系统和性能监控的片段: “系统负载是当前正在执行的进程线程数量与CPU运行队列中的线程数量的组合。”我觉得这是对的。
但最近,我看到很多人说“负载只是等待在运行队列上安排的线程号”
那么,哪种解释更准确?
当我试图弄清楚上述困惑时,我遇到了一个新的:
我找到了一条规则:“'现在修复此''经验法则:1.00。如果您的平均负载保持在1.00以上,请找出问题并立即修复。”来自article。
在阅读本文之前,我认为当负载平均值低于4 * cpu核心时,它仍然是安全的。我错了吗?
答案 0 :(得分:3)
第一个定义不准确:当前运行(执行)线程不会在大多数系统上添加负载。
第二个定义也不太准确,因为它会省略因为等待I / O而无法运行的进程。
以下是来自Debian系统的upime(1)
手册页的有用说明:
系统负载平均值是平均进程数 要么处于可运行状态,要么处于不间断状态。一个过程 runnable state是使用CPU还是等待使用CPU。 处于不间断状态的进程正在等待某些I / O. 访问,例如等待磁盘。
有关更详细的介绍,请参阅维基百科上的article。