Maîtriser les performances : Un guide pratique pour utiliser la suite d'outils Sysstat
La surveillance des performances est la pierre angulaire de l'administration fiable des systèmes Linux. Sans outils robustes pour suivre l'utilisation des ressources, l'identification des goulots d'étranglement devient une conjecture, entraînant un dépannage inefficace et une mise à l'échelle réactive. La suite d'utilitaires sysstat est la boîte à outils Linux native indispensable pour collecter, analyser et rapporter l'activité du système dans tous les domaines de ressources critiques.
Ce guide fournit un aperçu complet de la suite d'outils sysstat, axé principalement sur le System Activity Reporter (sar). Nous couvrirons l'installation, la configuration pour la journalisation historique et des exemples de commandes pratiques pour établir des références de performance et identifier la contention des ressources en temps réel et lors d'analyses post-mortem de l'utilisation du CPU, de la mémoire, des E/S disque et du réseau.
1. Installation et Configuration Initiale de Sysstat
Le paquet sysstat est généralement disponible dans les dépôts standards de toutes les distributions Linux majeures.
1.1 Commandes d'installation
Utilisez la commande appropriée du gestionnaire de paquets pour votre système :
Debian/Ubuntu :
sudo apt update
sudo apt install sysstat
RHEL/CentOS/Fedora :
sudo yum install sysstat
# ou utilisez dnf pour les systèmes plus récents
sudo dnf install sysstat
1.2 Activation de la collecte de données historiques
Pour que sar soit vraiment utile, il doit collecter des données historiquement. Par défaut, l'installation met souvent en place une tâche cron ou un minuteur systemd, mais la vérification est cruciale.
Sur les systèmes modernes, assurez-vous que le service sysstat est actif :
sudo systemctl enable --now sysstat
Fichier de configuration
La fréquence de collecte des données est contrôlée par des fichiers de configuration, généralement situés à /etc/default/sysstat (Debian/Ubuntu) ou /etc/sysconfig/sysstat (RHEL/CentOS). Recherchez le paramètre ENABLED ou HISTORY. Définir ENABLED="true" garantit la collecte de données quotidiennes.
Astuce : Par défaut, les fichiers de données
sysstatsont stockés dans/var/log/sa/avec des noms de fichiers commesaXX(où XX est le jour du mois).
2. L'utilitaire principal : System Activity Reporter (sar)
sar est l'interface principale pour visualiser les statistiques. Il peut afficher des données en temps réel ou analyser des données historiques collectées précédemment.
2.1 Syntaxe de base pour la surveillance en temps réel
La syntaxe de base est conçue pour rapporter des métriques spécifiques à un intervalle spécifié pour un nombre défini.
sar [options] [intervalle] [compte]
Exemple : Pour rapporter les statistiques générales du CPU toutes les 3 secondes, 10 fois :
sar -u 3 10
| Option | Description |
|---|---|
-u |
Utilisation du CPU (par défaut) |
-r |
Statistiques de mémoire et de pagination |
-d |
Activité des périphériques bloc (E/S disque) |
-n |
Statistiques réseau (par exemple, -n DEV pour les statistiques d'interface) |
-q |
File d'attente et charge moyenne |
-W |
Activité de swapping (pagination) |
-A |
Toutes les métriques (utile pour des instantanés complets) |
3. Métriques de performance clés et exemples pratiques de sar
Comprendre la sortie de sar nécessite de connaître les métriques qui indiquent la santé ou la charge des performances.
3.1 Utilisation du CPU (sar -u)
L'utilisation du CPU est souvent le premier endroit où chercher les goulots d'étranglement. Une utilisation élevée dans des catégories spécifiques indique la nature de la charge de travail.
sar -u 5 3
| Métrique | Description | Indicateur de goulot d'étranglement |
|---|---|---|
%user |
Temps CPU passé à exécuter des processus au niveau utilisateur. | Un taux élevé indique une saturation des applications/services. |
%system |
Temps CPU passé à exécuter des tâches du noyau/système. | Un taux élevé suggère des appels système intensifs ou des problèmes de pilote. |
%iowait |
Temps CPU inactif en attente d'opérations d'E/S (disque/réseau). | Un taux élevé indique un goulot d'étranglement des E/S, pas une pénurie de CPU. |
%idle |
Temps CPU passé à ne rien attendre (disponible). | Un faible taux (par exemple, < 5 %) suggère une saturation du CPU. |
3.2 Mémoire et pagination (sar -r et sar -W)
Les statistiques de mémoire révèlent à la fois la consommation et si le système recourt au swapping ou à la pagination.
Utilisation de la mémoire (sar -r) :
sar -r 1 5
Concentrez-vous sur kbavail (mémoire disponible). Si kbmemfree est faible, mais que kbcached et kbbuffers sont élevés, la mémoire est utilisée efficacement par le mécanisme de mise en cache du noyau.
Activité de swapping (sar -W) :
sar -W 1 5
Examinez pswpin/s (pages échangées en entrée) et pswpout/s (pages échangées en sortie). Toutes valeurs significatives non nulles ici indiquent que le système échange agressivement, signalant une pression sur la mémoire (un fort goulot d'étranglement).
3.3 Activité des E/S disque (sar -d)
La surveillance de l'activité disque est cruciale pour les serveurs de bases de données ou les systèmes de stockage fortement utilisés.
sar -d 3 5
Cette sortie nécessite d'identifier les périphériques spécifiques (par exemple, sda, vda). Les métriques clés incluent :
tps: Transferts par seconde (une valeur élevée indique des requêtes d'E/S élevées).rd_sec/setwr_sec/s: Quantité de données lues/écrites par seconde.%util: Pourcentage du temps pendant lequel le périphérique était occupé à traiter des requêtes. Si%utilapproche 100 %, le système de stockage est saturé.
3.4 Statistiques réseau (sar -n)
sar peut rapporter l'activité sur diverses couches réseau. Le contrôle le plus courant est l'activité de l'interface (DEV).
sar -n DEV 5 1
Cette commande affiche des métriques telles que rxpk/s (paquets reçus par seconde) et txkB/s (kilooctets transmis par seconde) pour chaque interface réseau. Utilisez-la pour identifier les interfaces subissant une charge importante ou des erreurs potentielles.
4. Analyse historique et création de références
La véritable puissance de sysstat réside dans sa capacité à analyser l'activité du système sur de longues périodes, ce qui est essentiel pour établir des références de performance (ce qui est normal pour votre système).
4.1 Analyse des jours précédents
Pour visualiser les données collectées un jour précédent, utilisez l'indicateur -f pour spécifier le chemin d'accès au fichier quotidien saXX.
Exemple : Pour visualiser les statistiques CPU du 10ème jour du mois en cours :
sar -u -f /var/log/sa/sa10
Pour examiner les statistiques sur une fenêtre temporelle spécifique de ce jour, ajoutez les indicateurs -s (heure de début) et -e (heure de fin) (en utilisant le format 24 heures).
# Visualiser les statistiques réseau de 14h00 à 16h30 le 10ème jour
sar -n DEV -f /var/log/sa/sa10 -s 14:00:00 -e 16:30:00
4.2 Établissement de références
- Collecter des données : Exécutez
sysstatpendant 1 à 2 semaines pendant les périodes de charge élevée et de faible charge typiques. - Identifier les normes : Analysez les données historiques (
sar -f) pour déterminer l'utilisation moyenne du CPU (%user,%system), la latence maximale des E/S (%util) et l'utilisation moyenne de la mémoire. - Définir des seuils : Toute déviation soutenue (par exemple,
%iowaitdoublant, ou%idletombant en dessous de 5 % pendant plus de 10 minutes) par rapport à votre référence indique un problème de performance nécessitant une enquête.
5. Outils Sysstat de support
Bien que sar soit l'outil principal, la suite sysstat comprend des utilitaires spécialisés qui offrent des rapports ciblés et détaillés.
5.1 iostat (Statistiques d'entrée/sortie)
iostat fournit des métriques détaillées axées spécifiquement sur l'utilisation des périphériques, particulièrement utile lors du diagnostic des goulots d'étranglement du stockage.
# Rapporter les statistiques disque toutes les 2 secondes, 4 fois, y compris les statistiques étendues (x)
iostat -xd 2 4
Métriques clés de iostat :
%util: Le pourcentage du temps CPU pendant lequel des requêtes d'E/S ont été émises vers le périphérique (indicateur crucial de saturation).await: Le temps d'attente moyen (en millisecondes) pour les requêtes d'E/S émises vers le périphérique. Unawaitélevé indique une lenteur de réponse du stockage.
5.2 mpstat (Statistiques multi-processeurs)
Si vous suspectez des problèmes de planification du CPU ou une distribution inégale de la charge de travail entre les cœurs, mpstat fournit des statistiques d'utilisation par processeur, ce que sar -u agrège.
# Afficher l'utilisation de tous les CPU (A) toutes les 2 secondes
mpstat -P ALL 2 1
Ceci est inestimable pour identifier les applications mono-thread qui saturent un seul cœur pendant que d'autres restent inactifs, ou pour diagnostiquer l'efficacité de l'hyper-threading.
Conclusion
La suite d'outils sysstat est un élément fondamental de l'optimisation des performances et de la surveillance des systèmes Linux. En maîtrisant l'utilitaire sar, les administrateurs système acquièrent la capacité de dépasser la simple surveillance instantanée et de mener des analyses approfondies et historiques de la consommation des ressources. L'utilisation régulière de sar pour surveiller l'activité du CPU, de la mémoire, des E/S et du réseau, associée à l'établissement de références de performance solides, transforme le dépannage réactif en gestion proactive du système, garantissant une utilisation optimale des ressources et la stabilité du système.