选择linux负载计算的权重如何?

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

如果我们将cpuload(1)定义为cpu负载1min的第一次计算,并且将()作为返回系统状态“运行”或“可运行”中的进程数的函数,则内核使用的公式计算第n个cpu负载1min是:

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

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

如果我发布cpuload(n)的显式公式,除了上面的递归定义(右键单击以查看它的全尺寸)也是有帮助的:

解决方法

考虑特定的负载样本活动(K),以及多少该样本对cpuload(K d)贡献,以增加d的值.有几个关键的观察:

>活动(K)乘以一些权重W(d)以确定其对cpuload(K d)的贡献.
> W(d)总是小于1.
> W(d)随d增加而呈指数下降.
>计算机算术具有有限的精度.

这些点意味着有一些dmin使得对于d> dmin,活动(K)W(d)= 0并且因此活动(K)对cpu负载(K d)没有影响.简而言之,cpuload(n)仅受前面样本dmin的影响.

另一种看待这种情况的方法是,cpuload(n)在一段时间定义之后忘记数据

>衰减指数,定义dmin,和
>采样频率.

这个最终解释给出了1分钟,5分钟和15分钟负载平均值的含义.选择衰减和采样间隔,使得这些负载平均值分别在1,5和15分钟之后忘记过去.

相关文章

在Linux上编写运行C语言程序,经常会遇到程序崩溃、卡死等异...
git使用小结很多人可能和我一样,起初对git是一无所知的。我...
1. 操作系统环境、安装包准备 宿主机:Max OSX 10.10.5 虚拟...
因为业务系统需求,需要对web服务作nginx代理,在不断的尝试...
Linux模块机制浅析 Linux允许用户通过插入模块,实现干预内核...
一、Hadoop HA的Web页面访问 Hadoop开启HA后,会同时存在两个...