Blue Flower

Meaning Of Load Numbers On Linux Servers

If you are using a Linux (Unix derived/based OS), like CentOS, Red Hat Linux, Ubuntu, or any other, and using any program like Top, and Uptime and similar load monitoring softwares then you may be wondering exactly what do those Load numbers mean.

Note, I do not get paid to write these articles.

You would see something like,
"load average: 0.75, 0.34, 0.12".

  1. The first number on the left (.75 in this case) is an approximate 1 minute average.
    The 2nd from left is a 5 minute approximate average.
    The last on the right (.12 in this case) is a 15 minute approximate average.
    I won't get into why I say approximate, but in this article, I will be referring to them as averages.

  2. These numbers are not CPU percentages.

  3. Think of Load as Capacity.

  4. A load value of 1 is the capacity utilization and reservation that is equivalent to one CPU core. Notice I said processor core and not just processor.  Also, notice I said equivalent, and did not say equal.

  5. A load value of 1 does NOT = 100% usage of one specific CPU core unless there is only one processor with a single CPU core and in which case then 1 = 100% usage of the CPU.

  6. A load value can be higher than 1 because it includes the count of what is waiting to be processed in the situation when the processor is either full or unavailable to handle a request, and so requests can get backlogged.

 

What Gets People Confused?

At least a couple of things gets people confused about the load numbers. 

  • One, if 1 = 100%, then how can I be getting average load values of 2, 3, 4, etc.? 
  • Two, is the average done separately for each CPU or each CPU core or it is an average for the system as a whole? 

Depending on the computer, there is a predetermined number for the quantity of processes (load quantity/number) that would indicate the equivalence of a single cpu core pipeline or capacity as full.  The count of processes is for the whole system.  Regardless if the computer has multiple processors, or a processor with multiple cores, or multiple processors with each having multiple cores, or just one single core CPU, the count would be for the system as a whole.  For illustrations purposes, suppose 100 processes each second would mean a processor is running at 100% and if this was sustained for 1 minute, then the 1 minute load average would be 1 for simplification (the math actually involves decay consideration). 

For the following visual illustration, the ---- around the numbers represents a pipeline, or capacity of a computer's CPU processing ability.

CPU Processing Capacity Pipeline
And Requests Que (Que)
(Que = Requests Waiting To Be Processed)

|<-------1 second ------>|
------------------------------
             100
------------------------------
|<-Processed Requests->|

------------------------------
               0
------------------------------
|Requests Waiting (Que) |


Another illustration:

1Sec    1Sec
-----     -----
100  +   0
-----     -----

100 processed Requests And Zero in Que = 100 processes.
1 Minute Average Load = 1 if sustained for 1 minute and beyond; meaning if exactly 100 processes done with zero in Que for every second of 60 seconds, then 1 minute load average would be 1.

Now, if the computer had 4 CPU cores, regardless if in multiple separate processor chips or in a single processor chip, and each core sustained 25% usage for a full minute, then the 1 minute load average would still be a 1.  The reason is because the count would be 25 processes running on each core and the sum of the four 25 is 100, and program math sees 100 as a load of 1.

4 CPU Processing Capacity Pipelines
And Requests Que (RQ)
(RQ = Requests Waiting To Be Processed)

|<-------1 second ------>|
------------------------------
               25
               25
               25
               25
------------------------------
|<-Processed Requests->|

------------------------------
                0
------------------------------
|Requests Waiting (Que) |

25x4 processes And Zero In Que = 100 processes spread across 4 CPU Cores.
1 Minute Average Load = 1 if sustained for 1 minute and beyond; meaning if exactly 100 processes done with zero in Que for every second of 60 seconds, then 1 minute load average would be 1.

Now, lets say more requests come in beyond 100 process requests per second on a one chip single core CPU.  Well, in this case, a backlog would occur. There would be Requested processes waiting in Que.  If there are consistently 120 process requests every second for 1 minute or beyond, then the 1 minute load average would show a 1.2 (again simplified).  This would be reflected in the performance of the computer. 

CPU Processing Capacity Pipeline
And Requests Que (RQ)
(RQ = Requests Waiting To Be Processed)

|<-------1 second ------>|
------------------------------
             100
------------------------------
|<-Processed Requests->|

------------------------------
               20
------------------------------
|Requests Waiting (Que) |

100 processed And 20 in Que = 120 processes.
1 Minute Average Load = 1.2 if sustained for 1 minute and beyond; meaning if exactly 100 processes done along with 20 in Que every second for 60 seconds, then 1 minute load average would be 1.2.


However on a 4 core CPU computer, no noticeable impact may exist since the 4 cores can handle 400 processes per second.  Depending on the computer design, software, and type of request to the processor the request could get evenly distributed among the CPU cores, or one or more CPU cores many handle a larger quantity of processes at any time.  Also, as you may have guessed, a load number of 4 would indicate that the average for that period has been at maximum usage.

The same thing explained above would apply to the 5 minute and 15 minute load average numbers. The only difference is that the average is taken over a 5 minute period and a 15 minute period instead of a 1 minute period as shown by the 1 minute load average.

I may be adding more this this article later.

 

Feel Free To Leave A Good Comment. :)

Look around, and you may find other useful articles. Add this site to your Bookmarks/Favorites for easy return for new articles. Consider submitting technical articles for publication, including your embedded links. I will even create a new category if needed.