What is system load?

At my job we have a data repository running Ubuntu 12.04.03 CLI and as I was checking them this morning when I logged in instead of giving me the normal information it said the information couldn't be displayed because the system load is above 2 and I was wondering what this meant? I had just restarted it because it was unresponive does it have something to do with the process of starting up and getting everything going?

5 Answers

Run the top or uptime commands:

$ uptime 19:36:03 up 5 days, 9:12, 8 users, load average: 0.05, 0.16, 0.21
$ top -bn1 | head -1
top - 19:36:07 up 5 days, 9:13, 8 users, load average: 0.05, 0.16, 0.21

The load averages stated here are:

/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) averaged over 1, 5, and 15 minutes. They are the same as the load average numbers given by uptime(1) and other programs. 

Consider my load averages: 0.05, 0.16, 0.21
That means, over the last minute, on an average, 0.05 processes have been waiting for resources.

Should you be worried that the load average is 2? In general, if the load average is greater than the number of CPUs available, then some process had to idle around waiting for a CPU slot.

If the load average is less than the output of nproc, you don't need to worry.

Also see: What does load average mean in unix/linux?As Braiam notes, the processes need not be waiting only for CPU: Understanding load average vs. cpu usage

5

System Load or System Load Average

It is run-queue i.e a queue of processes waiting for a resource(cpu, i/o etc.) to become available .

Consider a single-core cpu as a single lane of traffic with bridge and process as cars.

Now in this situation System load is

  • 0.0 - If there is no traffic on the road.
  • 1.0 -If the traffic on the road is exactly the capacity of bridge.
  • More than 1 - If the traffic on road is higher than the capacity of bridge and cars have to wait to pass trough the bridge.

This number is not normalized according to your cpu. In Multiprocessor system, load 2 mean 100 % utilization of we are using dual-core processor, load 4 means 100% utilization if we are using quad-core.

You can get your system load using

  • uptime
  • cat /proc/loadavg
  • top

    $uptime 22:49:47 up 11:47, 4 users, load average: 2.20, 1.03, 0.82

Here the last three number representing the system load average for 1, 5 and 15 minutes respectively.

The example above indicates that on average there were 2.20 processes waiting to be scheduled on the run-queue measured over the last minute.

2

The system load is relevent to the number of the CPU cores, for exampleif you have a Quad Cores CPU (4 Cores) the value 1 means that the system load is on 25%, and 4 means 100%.

1

If you type in terminal uptime you will see something like : load average and a three columns of digits which are loads from one, five and fifteen minutes. If you have dual core procesor 2 means 100% utilizing, 1 means 50% etc.

3

A system load of 2.0 is not very high. On a multi-core system your CPU may still even be partially idle.

A load average is a measure of how overloaded a CPU core is in terms of number of processes wanting to use it at once.

The following assume a single core (single thread) CPU:

  • 0.0

    The CPU is not doing anything at all. If a process were to start using the CPU then it would be the only one using it.

  • 1.0

    The CPU is at maximum usage, but there is zero contention between processes for use of the CPU. That is, only a single process is running so it's able to claim 100% of the CPU time for itself. Alternatively, multiple processes are running but none are claiming 100% CPU, and their combined CPU usage adds up to 100%. They are all still running as fast as they would run even if they had the CPU entirely to themselves.

  • Greater than 1.0

    The CPU is at maximum usage, and there are multiple processes wanting to use it concurrently so they are running more slowly than they would otherwise be able to run if they had exclusive use of the CPU. For example, a load average of 3.0 indicates processes are running at one third the speed they want to run. A load average of 50.0 indicates processes are running at 1/50 the speed they want to run, due to all the other processes running. That is, figures higher than 1.0 indicate that the available CPU is being divided up between more and more active processes.

Having a multiple core CPU does not change what the figures mean but changes how they should be interpreted. For example, if you have a 4 core CPU, then a load of 1.0 is still equivalent to one process using 100% CPU on one core, but there are three other cores. So on a 4 core CPU, the point of maximum efficiency is 4.0, not 1.0 - and the point at which everything is running at 1/3 efficiency is 12.0, not 3.0. To add to the complexity, a single process may have more than one thread each claiming CPU of its own. So a single process can use 100% of all 4 cores if it's multi-threaded.

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

You Might Also Like