Understanding load average on Linux
Run uptime on a Linux machine and you get three numbers at the end of the line: the load average over the last one, five and fifteen minutes. They are often quoted as a measure of how busy a system is, but they are easy to misread.
On Linux, load average counts the tasks that are running or ready to run, plus those in uninterruptible sleep, which usually means they are waiting for a disk or network storage. A value of 1.0 on a single-core machine means the processor was occupied all the time; on an eight-core machine the same figure means it was mostly idle. As a rule of thumb, compare the number with the count of logical cores, which the nproc command prints.
The three figures tell a story together. If the one-minute value is higher than the fifteen-minute one, the machine is getting busier; if it is lower, a spike is fading away. A high load with low CPU usage is a classic sign that processes are stuck waiting for storage, so check disk activity with tools such as iostat or iotop before blaming the processor.
Short peaks are normal, for example during an update or a backup. Worry when the fifteen-minute average stays above the core count for hours, or when the system feels slow even though the numbers look fine. In that case look at memory pressure and swap usage as well, because a machine that swaps heavily can feel stuck while the CPU graph stays calm.