# Why isn't a straightforward 1/5/15 minute moving average used in Linux load calculation?

Until recently I thought the load average (as shown for example in top) was a moving average on the n last values of the number of process in state "runnable" or "running". And n would have been defined by the "length" of the moving average: since the algorithm to compute load average seems to trigger every 5 sec, n would have been 12 for the 1min load average, 12x5 for the 5 min load average and 12x15 for the 15 min load average.

But then I read this article: http://www.linuxjournal.com/article/9001. The article is quite old but the same algorithm is implemented today in the Linux kernel. The load average is not a moving average but an algorithm for which I don't know a name. Anyway I made a comparison between the Linux kernel algorithm and a moving average for an imaginary periodic load:

.

There is a huge difference.

Finally my questions are:

• Why this implementation have been choosen compared to a true moving average, that has a real meaning to anyone ?
• Why everybody speaks about "1min load average" since much more than the last minute is taken into account by the algorithm. (mathematically, all the measure since the boot; in practice, taking into account the round-off error -- still a lot of measures)
• It's an exponential moving average (EMA), also used for example in finance (technical analysis). The advantages are presumably the same - the EMA can be calculated from just the previous and current value, and recent values are given more weight than older values. In a standard MA the oldest value contribute just as much to the average as the most recent one, and sometimes we think that the more recent values are more important. Mar 10, 2011 at 3:57

• Because that's what the documentation, and every program that reported them starting with the original BSD `uptime` and `w`, claimed; you had to look at the kernel sources to find out that it wasn't actually true. Mar 9, 2011 at 7:10
• @user5528 The times `1min/5min/15min` do have sense. They determine the time after which the influence of the current load drops by some fixed factor (probably e=2.71.. or maybe 2). Just try it out. Mar 11, 2011 at 9:47