Page 1 of 1

Load never below 2

Posted: 22 Dec 2017, 19:02
by simplelife2010
Hello,

when starting up, my RevPi's load averages quickly move up to above 2 and never fall below 2 after that. It looks like 2 cores are at 100% all the time. On a Raspberry Pi 3 with a very similar software setup the load averages vary between 0 and 2.

Has anybody experienced this or got an idea what the reason could be?

Kind regards
Bruno

Re: Load never below 2

Posted: 23 Dec 2017, 13:36
by volker
Hi Bruno,
1st of all you should be carefull with the "load" interpretation. If you are talking about the typical top output "load average" measure of a raspi: This is NOT showing the average %tage of CPU usage as often supposed but shows the average number of processes marked as runnable in the queue, thus highly depends on the kind of tasks running on the system (e.g. IO processes waiting most of the time without CPU usage would still be marked as 1 process). If you want to know the %tage of CPU usage you should look for the "Cpu(s)" line, e.g.:
%Cpu(s): 0.2 us, 2.2 sy, 0.0 ni, 97.6 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
is actually the line one of our RevPi3 (which is installed in a wave soldering machine for cloud data collection) is producing although the "load average" is 2. This translates to
0,2% CPU usage in user mode
2,2% CPU usage in kernal mode
97,6% CPU in idle state

For further explanation please inform yourself e.g. here:
https://www.linux.com/learn/uncover-mea ... statistics
There you can read for example the following:
"Load average is the representation of the number of processes marked as runnable in the run queue. From left to right, they represent one-minute, five-minute, and 15-minute load averages. They are the same three numbers you can see in /proc/loadavg. A detailed explanation can be found in this Linux Journal article. Bear in mind that a process in a runnable state doesn't neccessarily mean it's currently executed by the processor. It's a mark stating that "I (the task) am ready to be executed, but it's up to the scheduler to decide when to pick me up."

2nd please note that in delivery state of RevPi there are kernel driver processes active, which do all the IO (even if there are no further modules attched to the PiBridge this process will need some of the CPU's time and does push up the "load average" measurement) and there is also a web server running per default. So yes, you do get a base load of runnable processes but these processes produce a very smallaverage CPU usage - thus leaving lots of CPU power for your applications...