linux负载计算中的权重是如何选择的?
在Linux中,平均负载为1min/5min/15min。内核使用的公式实际上是一个指数移动平均值 如果我们将linux负载计算中的权重是如何选择的?,linux,kernel,history,load,algorithm,Linux,Kernel,History,Load,Algorithm,在Linux中,平均负载为1min/5min/15min。内核使用的公式实际上是一个指数移动平均值 如果我们将cpuload(1)定义为cpu负载1min的第一次计算,将active()定义为返回系统上处于“正在运行”或“可运行”状态的进程数的函数,那么内核用于计算第n次cpu负载1min的公式为: cpuload(0)为0;它是第一次执行cpuload()之前存储在内存中的值 我的问题是,权重2-5.log2(e)/60是如何选择的?在我看来,2-5/60会更好,因为1min是进程数的半衰期
cpuload(1)
定义为cpu负载1min的第一次计算,将active()
定义为返回系统上处于“正在运行”或“可运行”状态的进程数的函数,那么内核用于计算第n次cpu负载1min的公式为:
cpuload(0)
为0;它是第一次执行cpuload()
之前存储在内存中的值
我的问题是,权重2-5.log2(e)/60是如何选择的?在我看来,2-5/60会更好,因为1min是进程数的半衰期(因为(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的衰减指数,以及
- 采样频率