1
为什么在Linux负载计算中没有使用简单的1/5/15分钟移动平均值?
直到最近,我还认为负载平均(如顶部所示)是状态“可运行”或“正在运行”的进程数的n个最后值的移动平均值。并且n将由移动平均线的“长度”定义:由于计算平均负载的算法似乎每5秒触发一次,因此对于1分钟的平均负载,n将为12,对于5分钟的平均负载,n将为12x5,而12x15 15分钟的平均负载。 但是后来我读了这篇文章:http : //www.linuxjournal.com/article/9001。这篇文章很老,但是今天在Linux内核中实现了相同的算法。平均负载不是移动平均,而是一种我不知道名称的算法。无论如何,我在一个假想的周期性负载下对Linux内核算法和移动平均值进行了比较: 。 这是个很大的差异。 最后,我的问题是: 为什么选择这种实现方式而不是对任何人都具有真正意义的真实移动平均值? 为什么每个人都说“ 1分钟平均负载”,因为算法考虑了比最后一分钟更多的时间。(从数学上讲,是自启动以来的所有度量;实际上,考虑到舍入误差-仍然是很多度量)