Sur Linux, le load average (abrégé en loadavg) est une mesure de la charge de travail du système.
C’est un indicateur important qui permet de vérifier si un serveur est en surcharge.
Il faut donc régulièrement vérifier le load average surtout si le PC ou serveur ralentit ou freez.
Dans ce tutoriel, je vous explique ce qu’est le load average afin de bien comprendre les implications.

Table des matières
Qu’est-ce que Load average : Load average vs charge CPU
Dans les systèmes Unix, Le load average désigne la moyenne de la charge système.
Cela mesure la quantité de travail effectué par le système pendant une période définit.
Elle vise à représenter le système “demande de ressources” comme un seul nombre.
Le noyau Linux le recalcule toutes les 5 secondes.
Le load average n’a rien à voir avec la charge processeur (CPU) qui est une mesure propre.
Il mesure plutôt la file d’attente d’une ressource système.
Cela inclut ainsi les indicateurs matériels suivants (CPU, RAM, Réseau, Disques, Nombre de processus, etc…).
Ci-dessous, un load average important à 100 alors que l’utilisation CPU est 0,7%.
La surcharge de travail n’est donc pas provoqué par une sur-utilisation du processeur mais probablement un autre composant (disque, réseau, ….).
A l’inverse, le CPU est à 100% alors l’uptime ne dépasse pas 0,5.
Lors d’une attaque DoS de type TCP SYN, il est tout à fait possible d’avoir un load average important car la couche réseau sature sans qu’aucun processus ne sature le système.
Cela vient du fait que l’unité de métrique de charge système est “Nombre de processus / threads”. L’état exécutable signifie «non bloqué par rien», prêt à courir sur la CPU. Le thread est soit en cours d’exécution sur la CPU ou en attente dans la CPU RunQueue pour que le planificateur du système d’exploitation soit mis sur la CPU.
Ainsi, la mesure varie aussi selon le nombre de processeurs ou de coeurs puisque l’on peut avoir plusieurs threads en cours d’exécution.
Par exemple, un load average de 1 sur un monoprocesseur signifie que le processeur est pleinement en travail.
Un processus occupe le processeur.
Alors que pour un processeur à 2 coeurs, il est occupé à 50%.
Ainsi pour un load de 2, un monoprocesseur est surchargé mais pas un dual-core qui est à 100%. La charge système sur un processeur à trois coeurs est à ~66%.
Ainsi sur ce serveur quad-core, un seul processus gourmand ne fait pas monter le load average.
Par contre si on lance plusieurs à la fois, la charge de travail augmente et donc le load average aussi.
Comment afficher le load average en ligne de commandes
Plusieurs commandes comme top ou uptime affichent le load average.
Il est aussi possible de l’afficher de cette manière :
cat /proc/loadavg
top affiche le load average en haut à droite.
Ainsi, la plupart des utilitaires de mesures de la charge système (atop, htop, iotop, vmstat, …) affichent le load average et toujours de la même manière.
Comprendre et lire le load average
Voici quelques explications afin de savoir lire le load average.
Trois intervalles sont données :
- En premier le load average sur 1 minute
- Puis le load average sur 5 minutes
- Enfin sur 15 minutes
Cela permet de déterminer si la demande de charge système augmente sur la période ou diminue au fil du temps.
Il est donc important de garder un oeil dessus pour s’assurer de l’état général du système.
Mesurer la surcharge du système
Pour mieux comprendre la surcharge du système, vous pouvez convertir le load average en pourcentage selon le nombre de coeurs.
Cela permet d’assurer si le système est saturé ou non.
Pour convertir le load average sur 1 minute en pourcentage, utilisez la formule suivante :
(Load Average / nombre processeurs) x 100
Par exemple sur un PC monoprocesseur avec un load average de 6, cela signifie que la charge système est à 600%.
(6.00 / 1) x 100
Ainsi, le système est surchargé de 500% supérieur à la capacité qu’elle peut gérer.
Second exemple avec un serveur à 12 processeurs et un load average de 6.
Au final, la charge de travail est ainsi de 50%.
(6.00 / 12) x 100 = 50%
Trouver la source d’un load average élevé
Un load average important ne veut pas forcément dire que votre processeur n’est pas assez rapide.
Cela indique simplement que le système est surchargé.
Cela peut alors ralentir le PC ou serveur et parfois même provoquer des freez.
Pour trouver la source, suivez les conseils de ce tutoriel :
Liens
- Utiliser la commande PS pour lister les processus sur Linux avec des exemples
- VMStat : Mesures de performance Linux
- Top : lister les processus sur Linux
- Commande PS : lister les processus sur Linux
- Utiliser la commande Kill, Killall, pkill pour arrêter un processus sur Linux
- 6 exemples d’utilisation de la commande Kill sur Linux
- Qu’est-ce que le load average sur Linux
- Mesurer le débit et lister les connexions réseaux sur Linux
- La mémoire sur Linux : comment ça marche