use*_*507 12 linux algorithm history load kernel
在Linux中,平均负载是1分钟/ 5分钟/ 15分钟.内核使用的公式实际上是指数移动平均线.
如果我们定义cpuload(1)为cpu load 1min的第一次计算,并且active()作为在系统上返回状态"running"或"runnable"的进程数的函数,那么内核用来计算第n个 cpu load 1min 的公式是:

cpuload(0)是0; 它是在第一次执行之前存储在内存中的值cpuload().
我的问题是,如何选择加权2 -5.log2(e)/ 60?在我看来,2 -5/60会更好,因为1分钟是过程数的半衰期(因为(2 -5/60)12 = 1/2).
如果我发布cpuload(n)除上面的递归定义之外的显式公式(右键单击以查看完整大小),它可能会有所帮助:
