Moyennes de charge sur Ubuntu

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.

Ce n'est pas la même chose que pour les autres systèmes d'exploitation :

Sur d'autres systèmes d'exploitation, les moyennes de charge sont "Moyenne de la charge de l'unité centrale"qui mesure le nombre de threads en cours d'exécution sur le CPU + le nombre de threads pouvant être exécutés sur le CPU. Avantage : peut être plus facile à comprendre et à raisonner (pour les CPU uniquement).

Il est donc important de savoir que sous Linux, ce n'est pas seulement le CPU qui fait augmenter les moyennes de charge.

Quelques outils recommandés pour résoudre les problèmes liés aux moyennes de charge élevées :

  • utilisation par CPU: par exemple, l'utilisation de mpstat -P ALL 1
  • l'utilisation de l'unité centrale par processus: ex, sommetpidstat 1, etc.
  • latence de la file d'attente d'exécution par thread (ordonnanceur): par exemple, dans /proc/PID/schedstats, delaystats, perf sched
  • Latence de la file d'attente d'exécution de l'unité centrale: par exemple, dans /proc/schedstat, perf sched, mon runqlat outil Cci.
  • Longueur de la file d'attente de l'unité centrale: par exemple, l'utilisation de vmstat 1 et la colonne "r", ou mon runqlen outil Cci.

Voici le outil Cci mentionnés.

Cette information est tirée de http://www.brendangregg.com/blog/2017-08-08/linux-load-averages.html

Vous pouvez également utiliser cette commande pour déboguer

ps -e v

Qui comporte les états suivants

état L'état est donné par une séquence de caractères, par exemple "RWNA". Le premier caractère indique l'état d'exécution du processus :
D marque un processus en attente sur disque (ou autre attente de courte durée et ininterrompue).
I Marque un processus qui est inactif (qui dort depuis plus de 20 secondes).
L marque un processus qui attend d'acquérir un verrou.
R Marque un processus exécutable.
S Marque un processus qui dort depuis moins de 20 secondes environ.
T marque un processus arrêté.
W marque un thread d'interruption inactif.
Z marque un processus mort (un "zombie").

Vérifier les processus de recherche et de développement.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *