Maîtriser la performance : Un guide pratique pour utiliser la suite d'outils Sysstat

Libérez tout le potentiel de la surveillance des performances Linux avec ce guide pratique de la suite d'outils Sysstat. Apprenez à installer et à configurer Sysstat pour l'enregistrement historique et maîtrisez l'utilisation de l'utilitaire puissant `sar`. Cet article fournit des exemples de commandes exploitables pour analyser l'utilisation du CPU, la pression mémoire, la saturation des E/S disque et l'activité réseau, permettant aux administrateurs d'établir des références de performance et de diagnostiquer et résoudre rapidement les goulots d'étranglement du système dans les environnements de production.

32 vues

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 sysstat sont stockés dans /var/log/sa/ avec des noms de fichiers comme saXX (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/s et wr_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 %util approche 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

  1. Collecter des données : Exécutez sysstat pendant 1 à 2 semaines pendant les périodes de charge élevée et de faible charge typiques.
  2. 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.
  3. Définir des seuils : Toute déviation soutenue (par exemple, %iowait doublant, ou %idle tombant 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. Un await é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.