75

If I run uptime, I get something like this:

10:50:30 up 366 days, 23:27,  1 user,  load average: 1.27, 2.06, 1.54

What do those numbers on the end mean? The man page tells me it's "the load average of the system over the last 1, 5, and 15 minutes.". But what is the scale? Is 1.27 high? Low? Does it depend on my system?

3
  • 2
    I wonder how the load average should be interpreted on a multi-core CPU system.
    – user4358
    Commented Aug 16, 2009 at 23:23
  • 3
    As a general rule of thumb, you should divide the load average by the number of CPUs for multi core systems. So a load of 2.0 on a dual core system is roughly equivalent to a 1.0 on a single core system. This isn't totally true, because of things like disk I/O and network traiffic, but load is kind of a rought estimate anyways. Commented Jun 19, 2012 at 2:54
  • 1
    I found this blog really useful: Understanding Linux CPU Load
    – atmaish
    Commented Sep 13, 2014 at 14:48

4 Answers 4

63

Load average is a gauge of how many processes are on average, concurrently demanding CPU attention.

Generally, if you have one process running at 100%, and it just sits like that for all eternity, you can expect all values to approach '1'.

Generally, this is as efficient computing as you can get, no losses due to context-switches.

However, on modern multitasking OS's, there is more than one thing that needs CPU attention, so under a moderate amount of load from a single process, load average should float between 0.8 and 2.

If you decide to do something insane, like build a kernel with make -j 60, despite only having one logical processor, then load average would rush towards 60, and your computer would be incredibly useless to you (death by context switch).

Also to note, this metric is irrespective of how many cores/CPUs there are. For a two-cored system, running one process that consumes a whole core (leaving the other idle) results in a load average of 1.0. In order to decide how loaded a system is, you'll need to know the number of cores and do the division yourself.

7
  • 1
    So a load average of less than 1 means "Processes generally never have to wait"? Can I interpret a load average of 2 as "Each process is taking roughly twice as long as it would in ideal conditions"? (I know that there's I/O to worry about as well)
    – John Fouhy
    Commented Aug 16, 2009 at 23:50
  • 1
    Yes, That makes sense, ignoring IO that is ;) Commented Aug 22, 2009 at 11:35
  • @KentFredric "Generally, this is as efficient computing as you can get, no losses due to context-switches."...is 1 process running at 100% all the time efficient at all? Surely I am missing something fundamental here. Could you please explain what you meant? I am confused as how can one process hogging all the cpu resources be described as efficient?
    – Geek
    Commented Sep 21, 2013 at 7:18
  • 2
    I know a process running at 100% doesn't sound very "efficient", but if the process arbitrarily limited itself to use only 20%, it would take 5 times as long. So here efficiency means "optimal resource utilization". Commented Nov 10, 2013 at 13:48
  • 1
    So for an n-cored system, a load average of n means that each core is/was handling a process 100% of the time and is therefore most efficient? Commented Sep 19, 2014 at 17:38
10

man 5 proc:

/proc/loadavg The first three fields in this file are load average figures giving the number of jobs in the run queue (state R) or waiting for disk I/O (state D) aver‐ aged over 1, 5, and 15 minutes. They are the same as the load average numbers given by uptime(1) and other programs.

4

I cite from a reference of a course:

Load average is the average of the load number for a given period of time. It takes into account processes that are:

  • Actively running on a CPU.
  • Considered runnable, but waiting for a CPU to become available.
  • Sleeping: i.e., waiting for some kind of resource (typically, I/O) to become available.

I cite further about interpreting load average:

The load average is displayed using three different sets of numbers, as shown in the following example:

The last piece of information is the average load of the system. Assuming our system is a single-CPU system, the 0.25 means that for the past minute, on average, the system has been 25% utilized. 0.12 in the next position means that over the past 5 minutes, on average, the system has been 12% utilized; and 0.15 in the final position means that over the past 15 minutes, on average, the system has been 15% utilized. If we saw a value of 1.00 in the second position, that would imply that the single-CPU system was 100% utilized, on average, over the past 5 minutes; this is good if we want to fully use a system. A value over 1.00 for a single-CPU system implies that the system was over-utilized: there were more processes needing CPU than CPU was available.

If we had more than one CPU, say a quad-CPU system, we would divide the load average numbers by the number of CPUs. In this case, for example, seeing a 1 minute load average of 4.00 implies that the system as a whole was 100% (4.00/4) utilized during the last minute.

Short term increases are usually not a problem. A high peak you see is likely a burst of activity, not a new level. For example, at start up, many processes start and then activity settles down. If a high peak is seen in the 5 and 15 minute load averages, it would may be cause for concern.

2
  • It'd be handy to add a link to your reference.
    – Pierz
    Commented Jan 26, 2017 at 10:42
  • That's difficult. It's an online course from the Linux Foundation to prepare for the LFCS exam.
    – Ely
    Commented Jan 26, 2017 at 11:44
3

In general it measures the number of active processes at a given time, but the metrics used to calculate it differ on some systems. The only article I've found that explains it fairly well is this one.

3
  • 2
    That link is dated '03. Linux 2.6 came out since then. ( You'll note they're using 2.0 , Ouch.) The metrics appear to be now somewhat different in practice than the ones stated on that page. Commented Aug 16, 2009 at 23:27
  • Here's one from end of '06, which isn't that different from the linked article: linuxjournal.com/article/9001
    – user4358
    Commented Aug 17, 2009 at 7:01
  • Your link still works and their terminal output is from 2001 😂 How awesome
    – MS Berends
    Commented May 28, 2019 at 17:50

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .