Take the 2-minute tour ×
Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

Every time I login to my servers via SSH it flashes me a bit of server info. IE IP Address, Swap Usage, Memory Usage, etc. One of the other things it flashes me is System Load. Now most of the time the system load number is < 0.10 but other times it I've seen it go up to 0.89 (usually around boot).

This this brings up the question, how high can system load go? For instance is it possible for it to go up to 2.00 even 100.00?

share|improve this question
    
The fractional part indicates the CPU usage, the decimal part the number of waiting processes. Something like 100.89 would be more likely than 100.00 –  Lekensteyn Jun 28 '11 at 14:56
    
possible duplicate of Acceptable load average –  Caleb Jun 28 '11 at 14:59
    
@Caleb, I disagree that it's a duplicate. It's possible that the OP intended to ask something similar, like "how high can system load go (and still run acceptably)?". But as phrased, it's not the same question. –  Cyclops Jun 28 '11 at 18:10
    
@Cyclops: If the OP did not intend to ask about acceptable levels on servers and was asking a purely theoretical question about how *nix systems worked wouldn't that be off topic here and a candidate for migrating to unix.SE? –  Caleb Jun 28 '11 at 21:28

6 Answers 6

up vote 13 down vote accepted

This this brings up the question, how high can system load go? For instance is it possible for it to go up to 2.00 even 100.00?

Absolutely. Looking at the uptime man page:

   System load averages is the average number of processes that are either
   in a runnable or uninterruptable state.  A process in a runnable  state
   is  either  using the CPU or waiting to use the CPU. A process in unin‐
   terruptable state is waiting for some I/O access, eg waiting for  disk.
   The  averages  are  taken over the three time intervals.  Load averages
   are not normalized for the number of CPUs in a system, so a load  aver‐
   age  of 1 means a single CPU system is loaded all the time while on a 4
   CPU system it means it was idle 75% of the time.

So if you have a lot of processes waiting to run (or a lot of processes blocked waiting for I/O), you're going to have a high load average. This article talks about it in more detail, and has useful links to other resources.

On an unloaded system, the load average will typically be in the range 0 <= load_average <= n, where n is the number of cores on your system.

share|improve this answer
    
Yep, Waiting for I/O is an easy way to create a lot of load: Mount an nfs share, turn of the nfs server, start up 10.000 processes that try to touch something on the nfs share: boom, load of 10.000 –  Jens Timmerman Nov 29 '12 at 8:36

I've seen alive systems hit the thousands. Load Average a relative measure based on waiting processes of how much competition there is for getting the kernels attention and being granted some time on the CPU. If the machine is swamped with jobs or crashing, that can take a long time.

What level is acceptable depends on the machine, the number of cores, the kind of kernel job scheduler in use, and the jobs you expect it to do. I have some machines that are quite happy in the ~10 range but bog down if they hit ~40-50. Others become noticeably laggy at 2 and would be unusable at 10.

It's not unusual for the load to be high durring boot since lots of things are being done at once and the machine is winding up. I would consider ~1 quite a normal load to hit durring boot for a desktop Linux, then settling down to ~0.1 while doing nothing.

share|improve this answer
3  
Minor correction: Load Average is not a measure of time. It's the average number of processes waiting. There's no way to tell the difference between 1) one process hogging a CPU and another one never getting it, and 2) two processes continuously trading off. They'd both be loads of 1.0. –  Plutor Jun 28 '11 at 14:24
    
I've seen 1500+ on a seriously fubared linux box. Then it died. –  Tom O'Connor Jun 28 '11 at 21:32

On Linux, the system load average values are comprised of processes in one of three different states. In general, one could say that the load average is the amount of processes waiting for CPU time or consuming CPU time. The three values in the load average overview are the load average over the past minute, the last 5 minutes and the last 15 minutes.

The three different states of processes counted towards the load average are: (1) processes running on the CPU, (2) processes waiting for CPU time and (3) processes in uninterruptable sleep. The last category, while not generating CPU load, can increase the system load average significantly.

For example, a dozen processes waiting for reads from a disk that is very busy or unavailable will generate a load average of 12 as processes in uninterruptable sleep, but your CPU can be perfectly idle in the meantime.

So, yes, load average can easily go up to double digits. How bad that is is rather dependent on your hardware. If you have 16 cores, having 16 processes waiting for CPU time is not so bad. On a single core machine, having 3 processes waiting for CPU time can be very bad.

share|improve this answer

A few seconds after killing a process that was eating an old 450Mhz cpu:

enter image description here

share|improve this answer

I've seen server still working at +200 of load.

So Stress Test and experiment...

share|improve this answer

When you repeatedly start processes that block immediately, the load will be as high as the number of processes you manage to start. Assuming you have enough RAM that the system is not swapping, the system will even stay responsive as load due to blocking processes is not really harmful.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.