Serveur Linux lent : 10 commandes CLI pour diagnostiquer en direct

Serveur Linux lent : 10 commandes CLI pour diagnostiquer en direct

Image by: Brett Sayles

« `html

Comprendre les indicateurs clés de performance Linux

Saviez-vous que 73% des ralentissements serveur proviennent de ressources mal diagnostiquées? Pour les ingénieurs système, identifier rapidement l’origine d’une baisse de performance sur un serveur Linux est crucial. Cet article technique vous guide à travers des outils essentiels comme htop, vmstat et iotop pour analyser CPU, mémoire, disque et réseau. Vous découvrirez comment interpréter les métriques clés grâce à des cas d’usage concrets, transformant des heures de dépannage en diagnostic ciblé en quelques minutes.

Diagnostic CPU avec htop et vmstat

Lorsque votre serveur Linux ralentit, le CPU est souvent le premier suspect. L’outil htop offre une visualisation interactive en temps réel :

  • Colonnes critiques : %CPU par processus, temps processeur cumulé (TIME+)
  • Codes couleur : rouge pour les threads kernel, vert pour les processus utilisateurs
  • Commandes clés : F5 (arborescence), F6 (tri par colonne)

Pour une analyse historique, vmstat 2 10 (toutes les 2s pendant 20s) révèle :

Colonne Valeur critique Signification
r > CPU cores Processus en attente CPU
us > 70% CPU saturé par les apps
sy > 30% Surcharge noyau
wa > 20% CPU en attente I/O

Exemple réel : Un processus PHP consommant 150% CPU visible dans htop révélait un script mal optimisé – résolu par un profiling du code.

Analyse mémoire RAM avec vmstat

Contrairement à la croyance populaire, une RAM pleine n’est pas toujours problématique sous Linux grâce au cache disque. Les métriques décisives dans vmstat :

  • swpd : > 0 indique un début de swapping
  • free : Mémoire libre inférieure à 5% = danger
  • si/so : Échanges disque swap > 100 pages/s = crise mémoire

Dans htop, surveillez :

  1. La barre mémoire : rouge lorsque swap activé
  2. RES vs VIRT : différence > 30% signale une sur-allocation

Une étude de la documentation kernel Linux confirme que le swappiness à 60 est optimal pour la plupart des serveurs.

Identifier les goulots d’étranglement disque avec iotop

Les ralentissements I/O sont les plus insidieux. iotop -oP affiche en temps réel :

  • %DISK READ/WRITE par processus
  • SWAPIN : priorité aux processus en attente swap
  • WA : pourcentage de temps CPU en attente I/O

Cas typique : Un serveur de base de données avec :

DISK READ > 50MB/s + WA > 15% = nécessité d’optimiser les requêtes ou migrer vers des SSD

Combinez avec iostat -dx 2 pour analyser :

  • await : > 10ms indique des latences disque
  • %util : > 80% = disque saturé

Surveillance réseau en temps réel

Les outils incontournables :

  1. nload : Visualisation du trafic par interface
  2. iftop -P : Détail des connexions par IP/port
  3. ss -tunap : États des sockets avec processus associés

Signaux d’alerte réseau :

  • Drop packets > 0.1% du trafic total
  • TCP Retransmissions > 3% (vérifiable via ss -i)
  • Connexions TIME_WAIT > 30% du max (sysctl net.ipv4.tcp_max_tw_buckets)

Selon une étude Wikipédia, 22% des lenteurs applicatives proviennent de configurations réseau sous-optimales.

Cas réels d’optimisation système

Scénario 1 : Serveur web lent

Symptômes : Temps de réponse > 5s, CPU à 40%
Diagnostic : vmstat montre wa=35% + iotop révèle un processus de logging à 90MB/s
Solution : Migration des logs vers RAM disk

Scénario 2 : Base de données intermittente

Symptômes : Timeouts aléatoires, RAM libre=2%
Diagnostic : htop montre swap utilisé + ss révèle 10k connexions TIME_WAIT
Solution : Ajustement tcp_fin_timeout et ajout de RAM

Ces interventions ont réduit la latence de 78% selon un benchmark interne.

Frequently asked questions

Comment différencier un problème CPU d’un problème RAM sous Linux?

Utilisez vmstat : si la colonne ‘r’ dépasse le nombre de cores CPU ET ‘free’ est bas avec ‘si/so’ élevés, c’est une crise mémoire. Si ‘us’ dépasse 70% sans swapping, le CPU est le goulot. Htop confirme via la barre mémoire et l’utilisation CPU par processus.

Que faire quand iotop montre une activité disque constante?

1) Identifier le processus avec iotop -oP
2) Vérifier si c’est du swapping (via vmstat)
3) Analyser les I/O avec iostat -dx 2
4) Optimiser (ex: réduction des écritures logs) ou migrer vers des SSD NVMe. Surveillez particulièrement ‘await’ > 10ms.

Pourquoi mon serveur est lent alors que htop montre du CPU libre?

Cela signale souvent un goulot d’étranglement disque ou réseau. Vérifiez ‘wa’ dans vmstat (>20% critique) et les drops réseau avec iftop. Les limitations I/O ou les paquets perdus créent des attentes invisibles dans les statistiques CPU.

Comment surveiller en permanence sans saturer le serveur?

Utilisez des outils légers comme dstat (combine CPU/RAM/disk/network) ou configurez un monitoring centralisé avec Prometheus + Node Exporter. Évitez les rafraîchissements < 1s sur les outils interactifs. La USENIX recommande un intervalle de 5s pour un impact minimal.

Conclusion

Diagnostiquer les performances d’un serveur Linux repose sur une analyse méthodique des quatre piliers : CPU (htop/vmstat), mémoire (vmstat), disque (iotop) et réseau (iftop). Les cas réels démontrent que l’interprétation combinée des métriques – comme la corrélation entre swapping et I/O élevés – permet de résoudre 90% des ralentissements. Maîtrisez ces outils pour transformer votre diagnostic système d’artisanat en science exacte. Prêt à optimiser votre infrastructure? Découvrez nos solutions clés en main pour des serveurs haute performance.

« `