Il vous arrive souvent de vérifier votre serveur Ubuntu et de constater des moyennes de charge élevées.
Le premier chiffre correspond à la moyenne sur 1 minute, le deuxième à la moyenne sur 5 minutes et le troisième à la moyenne sur 15 minutes.
~/backup# temps de fonctionnement 11:09:31 up 40 jours, 17:38, 2 utilisateurs, charge moyenne : 1.01, 0.66, 0.47 ~/backup# cat /proc/loadavg 0.40 0.54 0.44 1/255 30135
Quelques interprétations :
- Si les moyennes sont de 0,0, votre système est inactif.
- Si la moyenne sur 1 minute est plus élevée que les moyennes sur 5 ou 15 minutes, la charge augmente.
- Si la moyenne sur 1 minute est inférieure aux moyennes sur 5 ou 15 minutes, la charge diminue.
- S'ils sont plus élevés que le nombre de CPU, il se peut que vous ayez un problème de performance (cela dépend).
Ce que cela signifie sous Linux ou Ubuntu est le suivant :
Sous Linux, les moyennes de charge sont (ou essaient d'être) ".moyenne de la charge du système"pour le système dans son ensemble, mesurant le nombre de threads qui travaillent et attendent de travailler (CPU, disque, verrous ininterrompus). En d'autres termes, il mesure le nombre de threads qui ne sont pas complètement inactifs. Avantage : inclut la demande de différentes ressources.
Not the same as other OSes:
On other OSes, load averages are “CPU load averages“, measuring the number of CPU running + CPU runnable threads. Advantage: can be easier to understand and reason about (for CPUs only).
So it is important to know that on Linux it is not only the CPU that makes the load averages to go up.
Some tools recommended to troubleshoot high load averages:
- per-CPU utilization: eg, using mpstat -P ALL 1
- per-process CPU utilization: eg, top, pidstat 1, etc.
- per-thread run queue (scheduler) latency: eg, in /proc/PID/schedstats, delaystats, perf sched
- CPU run queue latency: eg, in /proc/schedstat, perf sched, my runqlat bcc tool.
- CPU run queue length: eg, using vmstat 1 and the ‘r’ column, or my runqlen bcc tool.
Here is the bcc tool mentioned.
This info was taken from http://www.brendangregg.com/blog/2017-08-08/linux-load-averages.html
You can also use this command to debug
ps -e v
Which has these states
state The state is given by a sequence of characters, for example, "RWNA". The first character indicates the run state of the process: D Marks a process in disk (or other short term, uninterruptible) wait. I Marks a process that is idle (sleeping for longer than about 20 seconds). L Marks a process that is waiting to acquire a lock. R Marks a runnable process. S Marks a process that is sleeping for less than about 20 seconds. T Marks a stopped process. W Marks an idle interrupt thread. Z Marks a dead process (a "zombie").
Check for R and D processes.