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
-
That's very helpful but right after reboot should it be running that hot considering we haven't seen this before? It's running AMD Athlon(tm) 64 X2 Dual Core Processor 4200+ and does not run any graphics or extra processes.– Sean GOct 6, 2014 at 15:51
-
-
"That means, over the last minute, on an average, 0.05 process have been waiting for CPU." actually this is incomplete, the resource can be any hardware, not just CPU. It could be disk, network, GPU, etc.– BraiamOct 6, 2014 at 17:23
-
-
Right after reboot, the load average may indeed be high as the system has just went through the intensive init sequence. As explained in the answer, it takes a couple of minutes for the numbers to drop down to normal. Overdue anacron jobs can prolong the period. Oct 6, 2014 at 17:41
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.
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%.
-
This doesn't explain what is load average, and is wrong about the relationship between cpu % time and load average.– BraiamOct 6, 2014 at 17:14
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.
-
This doesn't explain what is load average, and is wrong about the relationship between cpu % time and load average.– BraiamOct 6, 2014 at 17:13
-
1Yes it does. From uptime manual: load average 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.– EdiDOct 6, 2014 at 19:37
-
There's no relationship between CPU load and load average. Check again.– BraiamOct 6, 2014 at 19:41
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.