uptime et top affichent trois moyennes : 1, 5 et 15 minutes. Chaque valeur est une moyenne du nombre de tâches qui sont soit runnable (R), soit en attente d’I/O non interruptible (D). Ce n’est pas un pourcentage, ce n’est pas « à quel point le CPU est occupé », et ce n’est pas comparable d’une machine à l’autre sans connaître le nombre de cœurs.
Sur 8 cœurs, un load de 8 veut dire : en moyenne, assez de travail pour occuper toutes les files. Un load de 16 veut dire une file d’attente de la taille du parc. Un load de 1 sur 64 cœurs est du calme. Le dénominateur, c’est nproc, pas 1.
Les trois fenêtres servent à voir la tendance. 12 / 4 / 1 : ça vient de monter, l’incident est jeune. 12 / 11 / 10 : ça dure, ce n’est plus un pic. 2 / 8 / 14 : ça redescend, le pic est derrière.
Deux machines à load 20 n’ont rien en commun.
Saturation CPU. top montre beaucoup de R, %Cpu proche de 100 %, peu de wa. Les processus utiles se marchent dessus. On cherche qui : ps trié par CPU, un régulateur qui a trop de workers, une regex catastrophique.
File d’I/O. Beaucoup de D, %wa élevé, disque saturé (iostat -xz 1). Le load grimpe parce que le noyau compte les tâches qui attendent le stockage. Ajouter des cœurs ne change rien. C’est un disque plein, un RAID dégradé, un NFS qui ne répond plus, un fsync de base trop fréquent.
La confusion classique : une machine idle en CPU avec un load à 40. Le débutant « scale le CPU ». Le bon réflexe est vmstat 1 : colonnes r (run queue) et b (blocked). b élevé + wa = I/O. r élevé + idle bas = CPU.
Vous donnez la définition, puis le protocole de lecture :
top, vmstat, éventuellement iostat).ps, pidstat, le service, le mount).Sans cette tranche, le load average est un thermomètre dont on ignore s’il mesure la fièvre ou l’humidité.
« Un load de 1,000 sur un serveur, c’est grave ? »
Grave par rapport à quoi. 1 000 tâches en D sur un filer mort, oui : plus rien n’avance. 1 000 sur une machine de 128 cœurs qui compile, c’est une file, pas forcément une panne. La gravité se lit dans la latence utilisateur et dans b / wa, pas dans le chiffre seul.
« Le load peut-il être bas et la machine quand même inutilisable ? »
Oui. Un seul processus en D qui tient un verrou global, un réseau saturé que le load ne voit pas, une table de file descriptors saturée. Le load est un signal d’encombrement de l’ordonnanceur, pas un résumé de la santé. C’est pour ça qu’on le lit tôt, et qu’on ne s’arrête jamais là.