0

I'm trying to understand the Load average in my Debian system. I've read some explanations of the displayed values and I came to understand that the number represents how "overloaded" my system is. So, the 0.5 load average means, that my system could compute twice as much without any additional latency. And load average of 2 means, that my system can handle roughly half of the load.

I've read that load average number should be divided by the number of processors in the system. So, load average of 2 on 2-CPU system is equal to load average of 1 on single-CPU system. Right?

But now comes the dilemma. How about multi-core systems? There seems to be a big dispute about this issue. Most of the older information about it indicates that number of cores is not equal to number of processors and thus the load average on 8-core system is not divided by the number of cores. There are also a lot of newer articles that say, that number of cores roughly corresponds to the number of CPUs, so the load average should be divided by number of cores.

What information is right?

I'm going to probably answer my own question with this, because I enclose screenshot of my system, that has 8 cores and only one of them is 100% utilized - and my load average is 1.02. So, this looks like that load average should be divided by the number of cores in order to get the relevant information about system load. Am I right?

Load Average

Get Schwifty
  • 13
  • 1
  • 2
  • shortly said, each processor is 0-100,and eqch one extra can add additional 100 points, so 2 processors can handle a load 2 and etc, its reeeeaaaly simplified – djdomi Feb 25 '21 at 16:54

2 Answers2

0

Generally yes. On Linux systems load average counts similarly for CPUs and/or cores.

A little confusion might come from things like "virtual cores" when you are running inside virtual environment and/or Intel® Hyper-Threading "cores". Basically Linux counts how much ticks active tasks take per set amount of sampling time. Thus as long as you have more "virtual cores" active tasks are paralleled and accounted for. But as these aren't real cores you might experience unbalanced load average values once you have more active tasks that real, physical cores and/or CPUs.

NStorm
  • 1,248
  • 7
  • 18
0

Load average is proportional to the number of tasks running or waiting to run. It does not convey the number of CPU cycles consumed, nor how many CPUs you have. Nor what the actual response time of your applications are.

The simple rule of keep load average below the number of CPUs is useful but does not always apply. Some real systems have load average per CPU ratio above 5 and perform fine, but that is rare.

In practice, measure load average as one of many performance counters. Most importantly, metrics useful to the service provided to the end user. Web server response time. Database query volumes. Get a feel for what the numbers look like when things are good, and when users complain.

John Mahowald
  • 30,009
  • 1
  • 17
  • 32