1. La démarche d’investigation de la charge système : Le Load Average

Lors d’un ralentissement serveur, le premier indicateur consulté est le Load Average (affiché par uptime ou top). Il mesure le nombre moyen de processus en attente d’exécution ou bloqués par des entrées/sorties disque ininterruptibles (état D) sur 1, 5 et 15 minutes :

Sur un serveur à 4 cœurs CPU, un load average durablement supérieur à 4.0 signale une saturation matérielle.

2. La boîte à outils de diagnostic sous Linux

Outil Ressource ciblée Cas d’usage principal
htop / top CPU & Mémoire Vue dynamique par processus, arborescence des threads, consommation par cœur.
vmstat 1 5 Mémoire & Swap Identification du phénomène de thrashing (si et so > 0 : saturation critique de la RAM).
iostat -xz 1 Disques et I/O Surveillance du temps de latence (await) et du pourcentage d’utilisation disque (%util).
iotop -o I/O par processus Identification du processus exact saturant la bande passante du stockage.
ss -tulpn Réseau & Sockets Liste instantanée des ports d’écoute, des connexions établies et des files d’attente réseau.

3. Surveillance avancée de la mémoire et le tueur de processus (OOM Killer)

Lorsque la mémoire physique et le swap sont entièrement consommés, le noyau Linux déclenche l’Out Of Memory (OOM) Killer pour abattre un processus selon un score calculé (oom_score) afin d’éviter le figeage complet de la machine :

# Vérifier si un processus a été abattu par l'OOM Killer
dmesg -T | grep -i "out of memory"

# Protéger un service stratégique (ex: base de données) contre l'OOM Killer
echo -1000 > /proc/$(pgrep postgres)/oom_score_adj

4. Diagnostics sous Windows Server : Performance Monitor et compteurs clés

Sous Windows Server, le Moniteur de performances (perfmon.exe) permet d’analyser les compteurs fondamentaux :

  • % Processor Time (_Total) : Saturation globale du calcul processeur.
  • MemoryPages/sec : Fréquence de pagination disque trahissant un manque de RAM physique.
  • LogicalDisk(*)Avg. Disk sec/Transfer : Temps de réponse disque (doit rester inférieur à 15 ms sous peine de dégradation applicative).

Méthode USE : Pour chaque ressource matérielle (CPU, Mémoire, Disques, Réseau), appliquez méthodiquement le triptyque : Utilisation (pourcentage d’occupation), Saturation (longueur des files d’attente), Erreurs (retransmissions, paquets rejetés).