【问题标题】:How were the weightings in the linux load computation chosen?linux负载计算中的权重是如何选择的?
【发布时间】:2011-03-13 18:06:53
【问题描述】:

在 Linux 中,平均负载为 1min/5min/15min。内核使用的公式实际上是指数移动平均线。

如果我们定义cpuload(1)为1min的cpu负载的第一次计算,active()为返回系统上处于“running”或“runnable”状态的进程数的函数,那么使用的公式计算 nth cpu load 1min 的内核是:

cpuload(0) 为 0;它是第一次执行cpuload()之前存储在内存中的值。

我的问题是,权重 2-5.log2(e)/60 是如何选择的?在我看来,2-5/60 会更好,因为 1 分钟将是进程数的半衰期(因为 (2-5/60) 12 = 1/2)。


除了上面的递归定义之外,如果我发布cpuload(n) 的显式公式可能会有所帮助(右键单击以查看完整大小):

【问题讨论】:

    标签: linux kernel history load algorithm


    【解决方案1】:

    考虑一个特定的负载样本 active(K),以及该样本对 cpuload(K+d) 的贡献程度,以增加 d。有几个关键的观察结果:

    • active(K) 乘以某个权重 W(d) 以确定其对 cpuload(K+d) 的贡献。
    • W(d) 总是小于一。
    • W(d) 随着d 的增加呈指数下降。
    • 计算机算术具有有限精度。

    这些点一起意味着存在一些 dmin 使得对于 d>dminactive(K)W(d)=0 em>,所以 active(K)cpuload(K+d) 没有影响。简而言之,cpuload(n) 只受 dmin 之前的样本影响。

    另一种看待这个问题的方式是,cpuload(n) 在由

    定义的时间后忘记了数据
    • 衰减指数,它定义了 dmin
    • 采样频率。

    此最终解释给出了 1 分钟、5 分钟和 15 分钟平均负载的含义。选择衰减和采样间隔,以便这些负载平均值分别在 1、5 和 15 分钟后忘记过去。

    【讨论】:

      【解决方案2】:

      我猜他们希望正在运行的进程的贡献的平均生命周期为一分钟。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-08-15
        • 2020-04-13
        • 2013-06-28
        • 2010-11-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多