There are several sensors on PRTG which monitor the load under Linux/Unix/MacOS systems. What is the difference between the load under these systems and the CPU load under Windows?
CPU Load on Linux
On Linux three numbers are shown when prompting the load averages:
load average: 0.65, 0.42, 0.36
These numbers represent load averages over periods of time – one, five, and fifteen minute averages. Intuitively, lower numbers are better. Higher numbers might represent a problem or an overloaded machine. But when exactly should you be concerned, and when is it urgent to fix a problem? The point is, what is the threshold?
The Traffic Analogy*
Basically, CPU load can be illustrated with the “traffic analogy”. Imagine a bridge for cars. A single-core CPU corresponds to a single lane of traffic then.
- No traffic on the bridge at all would correspond to the number 0.00.
- Every number between 0.00 and 1.00 means there is no traffic congestion, an arriving car will just go right on.
- 1.00 would indicate when the bridge is exactly at its capacity.
- On the other hand, every number over 1.00 means there is a congestion. 2.00 means that there are two lanes in total – one lane waiting, one on the bridge. 3.00 corresponds to three lanes – one on the bridge, two lanes waiting. The same counts for higher numbers. When we adopt this analogy for CPU load, “cars” are processes using a slice of CPU time – “crossing the bridge”. Waiting cars correspond to queued up processes to use the CPU. The sum of running plus waiting processes is called run-queue length under Unix.
The Ideal CPU Load
Since neither cars nor processes should ever wait in a perfect world, the CPU load ideally stays below 1.00. A load of 1.00 might be okay, but the problem is that you have no more room left. Every additional car/proccess has to be queued. Practically the line is drawn at 0.70. If the average load is staying over 0.70 it is time to investigate. A load of 1.00 indicates that the problem should be found and fixed as soon as possible. A load of more than 1.00 indicates that the problem should be fixed immediately. A load of more than 5.00 indicates that you could be in serious trouble.
On multi-processor systems, the load is relative to the number of processor cores available. The “100% utilization” mark is 1.00 on a single-core system, 2.00 on a dual-core, 4.00 on a quad-core, and so on. This means that, i.e., a quad-processor system is still healthy with a load of 3.00. In the “traffic analogy” this means that on the bridge are four lanes (quad-core) in total, and three lanes are full (3.00 CPU load). One lane still is free to be filled.
Linux Load Versus Windows Load
On Windows the CPU load is prompted in another way. The CPU Usage History graph of the task manager appears split when the computer has multiple CPUs, a single dual-core processor, or both. For every core the load is shown separately, but for the total can never reach 100%. With 100% usage the computer will slow down significantly. When monitoring CPU load with PRTG, using the Windows CPU Load Sensor, the total load is as well shown as a percentage of max 100%.
The difference to Linux systems is that Linux accumulates the load of multiple CPUs. Thus the average load number can exceed 100%/1.00 without any problems when there are multiple CPUs.
* Please see also Understanding Linux CPU Load – when should you be worried? for a more detailed explanation of the “traffic analogy”.