LinuxPerformanceInfrastructure

Diagnostiquer un serveur Linux lent : la méthode USE

7 janvier 2026 · Sphinx-Digital

Quand un serveur est « lent », les causes possibles sont nombreuses : CPU, mémoire, I/O disque, réseau, ou goulot applicatif. La méthode USE de Brendan Gregg donne une approche systématique qui couvre toutes les ressources.

La méthode USE

Pour chaque ressource du système, évaluez :

  • Utilization : quel pourcentage de la capacité est utilisé ?
  • Saturation : est-ce que des requêtes font la queue en attendant la ressource ?
  • Errors : est-ce que des erreurs sont survenues ?

CPU : utilization et saturation

# Utilization : %idle bas = CPU chargé
top -bn1 | grep "Cpu(s)"
# ou mpstat -P ALL 1 5

# Saturation : load average > nombre de cores = saturation CPU
uptime
# load average: 12.45, 11.32, 10.18
# 12 processus en attente CPU en moyenne

# Quel processus consomme ?
pidstat -u 1 5 | sort -k8 -rn | head -10

Interprétation : %sy (system) élevé peut indiquer trop de syscalls ou de context switches. %wa (iowait) élevé pointe vers un problème I/O.

Mémoire : attention au swap

# Utilization
free -h
# Saturation : si swap utilisé, système en swap storm
vmstat 1 5
# si si > 0 ou so > 0 régulièrement → problème mémoire

# Errors
dmesg | grep -i "out of memory"
# Si présent → OOM killer actif

Un OOM kill silencieux peut tuer votre processus sans log applicatif. dmesg est indispensable.

I/O disque : le goulot le plus fréquent

# Utilization + saturation en un coup
iostat -xz 1 5
# %util proche de 100% = disque saturé
# await élevé (> 10-20ms) = latence d'accès élevée
# avgqu-sz élevé = files d'attente importantes

# Quel processus fait des I/O ?
iotop -ao
# Si NVMe : les valeurs de référence changent
# %util sur NVMe peut être trompeur (parallélisme interne)
# Regardez await et avgqu-sz plutôt que %util

Réseau

# Saturation : drops et errors
ip -s link show eth0
netstat -s | grep -i error

# Utilization : sar pour l'historique
sar -n DEV 1 5

Flame graphs : voir d’un coup d’œil où le CPU est dépensé

# Avec perf
perf record -F 99 -g -- sleep 30
perf script | ~/FlameGraph/stackcollapse-perf.pl | ~/FlameGraph/flamegraph.pl > flame.svg

Un flame graph montre visuellement la proportion de temps CPU passée dans chaque fonction. Ce qui est large en haut est ce qui mérite d’être optimisé.

Notre formation Linux inclut un module sur le diagnostic de performance système.