Surveillance et diagnostic d’un serveur Linux avec vmstat, iotop et htop

27 juin 2025 — par admin_libra

Introduction

Sur un serveur Linux, la performance et la stabilité sont essentielles. Lorsqu’un système devient lent ou instable, les administrateurs doivent rapidement identifier la cause du problème. Pour cela, plusieurs outils existent en ligne de commande. Parmi les plus efficaces, on retrouve :

  • vmstat : surveillance de la mémoire virtuelle, du CPU et des processus.

  • iotop : surveillance des entrées/sorties disque en temps réel.

  • htop : gestion interactive des processus et de l’utilisation du CPU/mémoire.

Ces outils, souvent préinstallés ou disponibles via les dépôts standards, sont essentiels dans la boîte à outils du sysadmin.

1. vmstat – Virtual Memory Statistics

Description

vmstat donne un aperçu global des ressources système : mémoire, CPU, swap, E/S, processus. Il permet de surveiller la santé globale du système.

Syntaxe de base 

vmstat [intervalle] [nombre_de_repetitions]

Exemple : 

vmstat 1 5

Cela affiche 5 lignes de statistiques, une toutes les secondes.

Signification des colonnes clés

Colonne Description
r Nombre de processus en attente de CPU. Si > 1, surcharge probable.
b Nombre de processus bloqués en attente d’I/O.
swpd Mémoire utilisée par le swap.
free Mémoire libre.
buff/cache Mémoire utilisée par les buffers et le cache.
si/so Swap-in / swap-out par seconde. Une activité swap régulière indique un manque de RAM.
us/sy/wa Temps CPU en utilisateur, système, et attente d’I/O.

Cas d’usage

Cas 1 : Le serveur rame 

vmstat 1 10
  • Si wa (I/O wait) est élevé (> 20), cela indique que le CPU attend les disques : problème de disque lent ou surcharge d’accès.
  • Si si et so sont non nuls de manière persistante, cela signifie un usage excessif de la swap, synonyme de manque de RAM.

 

2. iotop – Surveillance des I/O disque

Description

iotop permet de voir en temps réel quels processus effectuent des lectures/écritures disque, et dans quelle proportion.

Installation 

# Installer les dépendances requises
sudo apt install iotop      # Debian/Ubuntu

Utilisation basique

sudo iotop

Colonnes principales :

Colonne Description
DISK READ/WRITE Quantité de données lues/écrites par processus
PID ID du processus
PRIO Priorité du processus
COMMAND Commande lancée

Options utiles

sudo iotop -o     # Affiche uniquement les processus qui font des I/O actuellement
sudo iotop -a     # Affiche l’I/O cumulée depuis le début

Cas d’usage

Cas 2 : Charge disque élevée

Un service web devient lent. Vous soupçonnez un accès disque massif. Lancez : 

sudo iotop -o

Vous observez que mysqld monopolise le disque avec des écritures importantes. Vous suspectez une requête mal optimisée ou un pic d’utilisation.

 

3. htop – Gestion interactive des processus

Description

htop est une alternative à top, plus lisible et interactive. Il permet de :

  • Trier les processus selon divers critères.

  • Visualiser la charge CPU par cœur.

  • Rechercher et tuer des processus.

  • Voir l’usage mémoire détaillé.

Installation

# Installer les dépendances requises
sudo apt install htop      # Debian/Ubuntu

Lancer htop

htop

Navigation

  • F3 : rechercher un processus

  • F6 : trier par colonne

  • F9 : tuer un processus

  • Flèches : navigation

  • F2 : configurer l’affichage

Cas d’usage

Cas 3 : CPU anormalement haut

Le CPU est à 100%. Lancez : 

htop

Triez par %CPU. Vous remarquez un processus Python qui consomme 300% (3 cœurs). Il s’agit peut-être d’un script mal optimisé ou d’un calcul massif. Vous pouvez alors décider de le renicer ou de le killer temporairement pour diagnostiquer plus en profondeur.

 

Combinaison des outils

Exemple concret : serveur web lent

  1. vmstat montre un I/O wait élevé → suspicion de disque lent.

  2. iotop confirme qu’un processus apache2 ou nginx écrit massivement (log, cache).

  3. htop permet d’identifier si ce processus utilise beaucoup de CPU ou mémoire → surcharge.

Pour approfondir la surveillance et le diagnostic de performance d’un serveur Linux, voici d’autres commandes complémentaires à vmstat, iotop, et htop, classées par catégorie, avec leur utilité, usage concret, et exemples pratiques.

 

🧩 Autres commandes essentielles pour l’analyse de performance Linux

1. top – Affichage temps réel des processus (classique mais complet)

top

2. free – Statistiques mémoire

free -h

3. sar – Statistiques système historiques (via sysstat)

Installation :

# Installer les dépendances requises
sudo apt install sysstat     # Debian/Ubuntu

Exemple :

sar -u 5 5          # Charge CPU toutes les 5 sec (5 fois)
sar -r -f /var/log/sa/sa10 # Stat mémoire pour le 10 du mois

 

4. iostat – Statistiques entrées/sorties disque

Installation :

Inclus avec sysstat :

# Installer les dépendances requises
sudo apt install sysstat

Usage :

iostat -xz 1 3

📌 À surveiller :

5. dstat – Outil combiné multi-ressources

# Installer les dépendances requises
sudo apt install dstat
dstat -cdngy --top-cpu

 

6. netstat / ss – Surveillance réseau

ss -tuln          # Remplace `netstat` (plus rapide)

Pour voir les connexions par processus : 

ss -tp

 

7. strace – Traçage des appels systèmes

strace -p

 

8. lsof – Liste des fichiers ouverts

lsof -i            # Connexions réseau
lsof -u www-data # Fichiers ouverts par un utilisateur

 

9. iftop / nethogs – Analyse trafic réseau

Installation : 

# Installer les dépendances requises
sudo apt install iftop nethogs

Exemples :

sudo iftop -i eth0
sudo nethogs

10. perf – Analyse fine des performances système

perf top

Astuce Bonus : Création d’un mini tableau de bord avec watch

Vous pouvez combiner watch avec vos commandes préférées : 

watch -n 1 vmstat
watch -n 2 "iostat -xz 1 1"
watch -n 1 'ps -eo pid,comm,%cpu,%mem --sort=-%cpu | head'
 
📋 Tableau récapitulatif
Commande Objectif principal Idéal pour analyser
vmstat Mémoire, swap, CPU Saturation RAM, I/O wait
htop CPU/Mémoire interactif Processus gourmands
iotop I/O disque par processus Accès disque excessif
iostat Débit disque Saturation disques
sar Historique Rétrospective des incidents
dstat Vue combinée Vue globale temps réel
ss Réseau Ports ouverts, connexions
iftop Trafic réseau Débit sur interfaces
nethogs Réseau par processus Processus bavards en bande passante
strace Debug processus Blocages, appels système
lsof Fichiers ouverts Fichiers/Sockets en cours
perf Profilage Analyse fine CPU

 

Conclusion

Les commandes vmstat, iotop et htop sont des outils simples mais puissants pour la surveillance et le diagnostic de serveurs Linux. En les combinant, vous pouvez :

Elles sont indispensables à tout administrateur système, ingénieur DevOps ou développeur en charge de la fiabilité des services.

Index complet

Tous les articles (46)

Date Article Tags
17/06/2026 APT : Guide complet de la gestion des paquets sous Debian et Ubuntu administration apt debian 17/06/2026 SHELL : Guide des commandes les plus usuelles et commandes couteau suisse awk bash commandes 17/06/2026 SUDO : implémentation et sécurisation des accès sur Debian/Ubuntu administration audit authentification 17/06/2026 ProFTPd : authentification MySQL centralisée, FTPs (SSL) et SFTP sur Debian/Ubuntu authentification debian ftp 09/06/2026 Fail2ban — configuration avancée et filtres personnalisés bruteforce debian fail2ban 07/06/2026 Docker : comment récupérer de l'espace disque cache conteneurs debian 07/06/2026 Graylog 7 — Centralisation et analyse de logs : l'alternative à ELK sur Debian/Ubuntu centralisation debian elk 07/06/2026 OpenZFS : tiering avec L2ARC et SLOG pour les workloads mixtes cache l2arc nvme 07/06/2026 Scripting Bash avancé — pièges, bonnes pratiques et optimisation automatisation bash bonnes-pratiques 07/06/2026 AppArmor sur Debian/Ubuntu : profils, modes et confinement applicatif apparmor audit confinement 07/06/2026 Durcissement SSH — au-delà des clés publiques 2fa authentification cryptographie 27/05/2026 LXD 6.x : orchestration de conteneurs Linux avec profils et clustering administration clustering conteneurs 27/05/2026 Keepalived — VIP flottante et load balancing sans matériel dédié debian failover haute-disponibilité 27/05/2026 Btrfs sur Linux — snapshots, sous-volumes et compression en pratique administration btrfs compression 21/05/2026 CVE-2026-42945 (NGINX Rift) : analyse et remédiation sur Debian/Ubuntu cve debian heap-overflow 21/05/2026 Tuning kernel Linux — paramètres sysctl essentiels pour la production debian kernel mémoire 21/05/2026 DRBD : réplication de blocs entre deux serveurs en temps réel cluster debian drbd 15/05/2026 CVE-2026-23918 — vulnérabilité Apache 2.4.66 : analyse et correctifs sur Debian/Ubuntu (hors Debian 11) apache cve debian 15/05/2026 CVE-2026-31431 (Copy Fail) — Analyse et remédiation sur Debian/Ubuntu algif_aead copy-fail cve 12/05/2026 Pacemaker et Corosync — cluster haute disponibilité Linux cluster corosync debian 12/05/2026 WireGuard : monter un VPN mesh entre plusieurs serveurs Linux chiffrement linux mesh 12/05/2026 Netdata — monitoring temps réel sans configuration complexe alertes dashboard linux 12/05/2026 nftables en pratique — remplacer iptables sur Debian/Ubuntu debian firewall iptables 12/05/2026 Podman : alternative rootless à Docker — installation et migration conteneurs docker kubernetes 02/05/2026 Prometheus et Grafana sur Debian — installation, configuration et dashboards pratiques alertmanager dashboard debian 02/05/2026 Ansible : automatiser la gestion de serveurs Linux avec des playbooks administration ansible automation 28/04/2026 ZFS sur Linux : snapshots, clones et RAID-Z en pratique administration compression filesystem 28/04/2026 eBPF sur Linux : observabilité et traçage kernel avec bpftrace et BCC bcc bpftrace diagnostic 23/04/2026 Analyse de la mémoire sur Linux — vmstat, free, smem diagnostic mémoire monitoring 23/04/2026 Sécurité Linux — Firewall iptables et nftables firewall iptables nftables 23/04/2026 ZFS sur Linux — Installation et gestion avancée administration filesystem stockage 23/04/2026 Gestion des services avec systemd sur Debian et Ubuntu administration debian services 23/04/2026 Gestion des ressources cgroups v1/v2 avec LXC cgroups conteneurs lxc 23/04/2026 Centralisation logs avec ELK Stack — Elasticsearch, Kibana, Filebeat elasticsearch elk filebeat 23/04/2026 Supervision avec Zabbix 7.0 LTS sur Debian/Ubuntu debian monitoring supervision 23/04/2026 Plusieurs versions PHP-FPM sur Apache Debian/Ubuntu apache debian php-fpm 23/04/2026 Sécurisation avancée PHP-FPM — Multi-VirtualHosts Apache/Nginx apache nginx php-fpm 23/04/2026 Optimisation PHP-FPM — Guide de tuning d'un pool optimisation performance php-fpm 29/07/2025 Docker sur Debian/Ubuntu : Installation, Configuration et Utilisation conteneurs debian docker 03/07/2025 Serveur VPN WireGuard sous linux réseau sécurité vpn 03/07/2025 Authentification par clé publique sur un serveur SSH authentification cryptographie sécurité 27/06/2025 Surveillance et diagnostic d’un serveur Linux avec vmstat, iotop et htop diagnostic htop monitoring 27/06/2025 Mémoire : Utilisation des Huge Pages et implémentation hugepages mémoire noyau 27/06/2025 Mémoire Swap et paramétrage swappiness mémoire noyau performance 18/06/2025 Installation et Configuration des Conteneurs LXC sur Linux administration conteneurs lxc 18/06/2025 Gestion des journaux avec syslog et journalctl administration journalctl logs