Accueil

Sysstat : Surveillance des performances système

Monitoring
Difficulte: Intermediate
4 min de lecture

Tutoriel détaillé pour installer et configurer sysstat pour surveiller les performances d'un système Linux en utilisant des outils comme sar, mpstat, et iostat.

Retour aux tutoriels

L'essentiel

  • Sysstat sert à l'analyse historique : top et htop ne montrent que l'instant présent, alors que sar permet de revenir sur ce qui s'est passé à 3 h du matin. La collecte en arrière-plan a un impact négligeable sur les performances.
  • Sur Debian/Ubuntu, rien n'est enregistré tant que ENABLED="false" n'est pas passé à ENABLED="true" dans /etc/default/sysstat, suivi d'un sudo systemctl restart sysstat. Sur CentOS/RHEL, la collecte est généralement active par défaut.
  • La collecte tourne toutes les 10 minutes via /etc/cron.d/sysstat et écrit des fichiers binaires saXX dans /var/log/sysstat/, où XX est le jour du mois. On les relit avec l'option -f de sar.
  • Les vues de sar à connaître : -u pour le CPU, -r pour la mémoire, -S pour le swap, -b pour les disques et -n DEV pour le réseau.
  • Pour le diagnostic, un %iowait élevé signale que le CPU attend le stockage. On le confirme avec iostat -x -m en lisant %util et await, et mpstat -P ALL montre si la charge est répartie ou concentrée sur un seul cœur.
Qu'est-ce que sysstat ?
Sysstat est une suite d'outils de surveillance de performance pour Linux. Ses utilitaires les plus connus sont sar (System Activity Reporter), iostat (pour les I/O des disques), et mpstat (pour les statistiques par processeur). C'est l'outil de base pour collecter et analyser l'historique de performance de votre système.

Pourquoi utiliser sysstat ?

  • Analyse historique : Contrairement à top ou htop qui ne montrent que l'état actuel, sar permet de voir ce qu'il s'est passé à un moment précis dans le passé.
  • Diagnostic de problèmes : Indispensable pour comprendre l'origine d'un ralentissement (CPU, mémoire, disque, réseau ?).
  • Rapports complets : Fournit des données détaillées sur quasiment tous les sous-systèmes de la machine.
  • Léger : La collecte de données en arrière-plan a un impact négligeable sur les performances.

Prérequis

  • Un serveur Linux (Ubuntu/Debian, CentOS/RHEL, etc.).
  • Accès root ou privilèges sudo.

Installation et activation

Étape 1 : Installation du paquet

# Sur Debian / Ubuntu
sudo apt-get update
sudo apt-get install -y sysstat

# Sur CentOS / RHEL
sudo yum install -y sysstat

Étape 2 : Activer la collecte de données

Pour que sar puisse enregistrer des données historiques, il faut activer la collecte via cron. Sur Debian/Ubuntu, cela se fait en modifiant un fichier :

sudo nano /etc/default/sysstat

Changez la ligne ENABLED="false" en :

ENABLED="true"

Sur CentOS/RHEL, le service est généralement activé par défaut. Redémarrez le service pour qu'il prenne en compte le changement :

sudo systemctl restart sysstat

La collecte se fait maintenant toutes les 10 minutes via une tâche dans /etc/cron.d/sysstat.

Utilisation des outils

Les données sont stockées dans /var/log/sysstat/ dans des fichiers binaires nommés saXX (où XX est le jour du mois).

sar - L'outil principal

sar est utilisé pour afficher les données collectées.

# Utilisation CPU sur la journée actuelle (depuis le début de la collecte)
sar -u

# Utilisation mémoire
sar -r

# Activité de pagination (swapping)
sar -S

# Activité des disques
sar -b

# Activité réseau
sar -n DEV

# Afficher les données du jour précédent (fichier saDD-1)
sar -u -f /var/log/sysstat/sa$(date +%d -d "1 day ago")

iostat - Focus sur les disques

Affiche des statistiques en temps réel sur les entrées/sorties des disques.

# Rapport de base
iostat

# Rapport détaillé avec plus d'informations (extended) et en Mo
iostat -x -m

# Rapport continu toutes les 2 secondes
iostat -x -m 2

Regardez les colonnes %util (pourcentage d'utilisation du disque) et await (temps d'attente moyen) pour identifier les goulots d'étranglement.

mpstat - Focus sur le CPU

Affiche les statistiques détaillées pour chaque processeur/cœur.

# Statistiques pour tous les cœurs (ALL)
mpstat -P ALL

# Statistiques pour tous les cœurs, mises à jour toutes les 2 secondes
mpstat -P ALL 2
Interpréter les données
- Un %user élevé dans `sar` signifie que vos applications consomment beaucoup de CPU. - Un %system élevé signifie que le noyau passe beaucoup de temps en appels système. - Un %iowait élevé est un signe que le CPU attend après les disques. C'est souvent le premier indicateur d'un problème de stockage. - Une activité swap (sar -S) non nulle sur un système avec de la RAM libre est un signe de mauvaise configuration ou de pression mémoire.

Conclusion

La suite d'outils Sysstat est indispensable pour tout administrateur système sérieux. Elle fournit les données brutes nécessaires pour diagnostiquer objectivement les problèmes de performance. Apprendre à lire les rapports de sar, iostat, et mpstat vous permettra de comprendre en profondeur le comportement de vos serveurs et de prendre des décisions éclairées pour optimiser leurs ressources.

MR

Écrit par

Morgann Riu

Expert en cybersécurité et administration Linux. Je partage mes connaissances à travers des tutoriels gratuits et des formations pour aider les administrateurs systèmes et développeurs à sécuriser leurs infrastructures.

Questions fréquentes

Pourquoi <code>sar -u</code> ne renvoie aucune donnée historique sur un Debian fraîchement installé ?
Le paquet est présent mais la collecte est désactivée par défaut : il faut passer ENABLED="false" à ENABLED="true" dans /etc/default/sysstat, puis relancer le service avec sudo systemctl restart sysstat. Tant que ce n'est pas fait, aucun fichier saXX n'est écrit dans /var/log/sysstat/ et sar n'a tout simplement rien à afficher. Comptez ensuite une dizaine de minutes, le temps que la première collecte cron s'exécute.
Quelle différence entre <code>sar</code> et <code>iostat</code> ou <code>mpstat</code> ?
sar rejoue un historique déjà écrit sur disque, avec la granularité de la collecte cron. iostat et mpstat travaillent en temps réel : on leur passe un intervalle en secondes (iostat -x -m 2, mpstat -P ALL 2) et ils affichent la situation courante. En pratique, sar sert à l'enquête post-mortem sur un incident passé, iostat et mpstat à observer un incident en cours.
Comment relire les mesures de la veille ou d'un jour précis ?
Les fichiers de /var/log/sysstat/ sont nommés d'après le jour du mois, donc sar -u -f /var/log/sysstat/sa15 rejoue le CPU du 15. Pour la veille sans calculer la date à la main : sar -u -f /var/log/sysstat/sa$(date +%d -d "1 day ago"). Le fichier n'existe évidemment que si la collecte tournait déjà ce jour-là, ce qui est le piège classique juste après une activation.
Un <code>%iowait</code> élevé signifie-t-il forcément que le disque est en cause ?
C'est le premier indicateur d'un problème de stockage : le CPU est disponible mais reste bloqué à attendre des entrées/sorties. Il faut le confirmer avec iostat -x -m : un %util proche de la saturation et un await qui grimpe désignent bien le disque comme goulot d'étranglement. Si %util reste bas alors que le %iowait est haut, l'attente ne vient pas du disque local et il faut chercher ailleurs.
Le serveur a de la RAM libre mais <code>sar -S</code> montre de l'activité de swap, est-ce grave ?
Oui, c'est un signal à traiter : de l'activité de swap alors que de la mémoire reste disponible trahit une mauvaise configuration ou une pression mémoire ponctuelle qui n'apparaît plus dans l'instantané. Croisez avec sar -r sur la même plage horaire pour retrouver le moment où la mémoire disponible s'est effondrée. C'est typiquement un pic applicatif ou un job de nuit que top ne vous montrera jamais.

Partager ce tutoriel

Cet article vous a plu ?

Cet article vous a-t-il été utile ?

Merci pour votre retour !

Commentaires

Recommandé pour vous

Article de fond sur le sujet

Checklist Sécurité Linux

30 points essentiels pour sécuriser un serveur Linux. Recevez aussi les nouveaux tutoriels par email.

Pas de spam. Désabonnement en 1 clic.