【问题标题】:What does linux load actually mean?linux加载实际上是什么意思?
【发布时间】:2013-12-26 07:22:42
【问题描述】:

linux 负载是否包含当前正在运行的线程或仅包含等待运行的线程数?

这是 Darren Hoch 的 Linux System and Performance Monitoring 中的一个 sn-p: “系统负载是当前执行的进程线程数量与 CPU 运行队列中的线程数量的组合。”我认为这是正确的。

但是最近看到很多人说“负载就是run-queue上等待调度的线程数”

那么,哪种解释更准确?

当我试图弄清楚上述困惑时,我遇到了一个新问题:

我发现了一条规则:“‘立即修复’经验法则:1.00。如果您的平均负载保持在 1.00 以上,请立即找出问题并修复它。”来自这个article

在阅读本文之前,我认为当平均负载保持在 4*cpu 核心以下时,它仍然是安全的。我错了吗?

【问题讨论】:

    标签: linux multithreading system


    【解决方案1】:

    第一个定义不准确:当前运行(执行)的线程不会增加大多数系统的负载。

    第二个定义也不太准确,因为它忽略了因等待 I/O 而无法运行的进程。

    这是来自upime(1) 手册页的有用解释,取自 Debian 系统:

    系统负载平均值是平均进程数 处于可运行或不可中断状态。一个过程中 可运行状态要么正在使用 CPU,要么正在等待使用 CPU。 处于不可中断状态的进程正在等待一些 I/O 访问,例如等待磁盘。

    更详细的介绍请参考维基百科上的这个article

    【讨论】:

    • 啊,等待I/O的进程也会被计入负载吗?以前从未听说过,我需要了解更多。
    猜你喜欢
    • 2012-01-22
    • 2018-08-08
    • 1970-01-01
    • 1970-01-01
    • 2012-05-11
    • 2020-02-15
    • 2021-09-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多