La commande sar (System Activity Reporter) est un outil polyvalent de surveillance des performances système sur les distributions Linux. Elle fournit des rapports détaillés sur divers aspects de l'activité du système, tels que les opérations d'E/S disque, l'utilisation du processeur, la mémoire, les appels système et les processus en cours.
Syntaxe de base de sar
sar [options] [-A] [-o fichier] intervalle [nombre]
Dans cette syntaxe :
- intervalle : durée entre chaque échantillonnage en secondes.
- nombre : nombre total d'échantillons à collecter (par défaut : 1).
- -o fichier : enregistre les résultats au format binaire dans le fichier spécifié.
Les options courantes incluent :
-A: génère un résumé de tous les rapports.-u: affiche les statistiques d'utilisation du processeur.-v: montre les statistiques des inodes et des tables du noyau.-d: rapporte l'activité des périphériques blocs.-r: affiche les statistiques de mémoire et d'espace d'échange.-b: présente les taux d'E/S et de transfert.-q: indique la longueur de la file d'attente des processus.
Exemple : Surveillance du processeur
Pour collecter des données sur l'utilisation du processeur toutes les 15 secondes, pendant 4 cycles, et enregistrer les résultats dans un fichier binaire nommé perf_data, exécutez :
sar -u -o perf_data 15 4
La sortie typique ressemble à :
Heure CPU %user %nice %system %iowait %steal %idle
08:30:15 all 1.50 0.00 0.80 0.10 0.00 97.60
08:30:30 all 1.20 0.00 0.75 0.05 0.00 98.00
08:30:45 all 1.80 0.00 0.90 0.15 0.00 97.15
08:31:00 all 1.40 0.00 0.85 0.10 0.00 97.65
Moyenne all 1.47 0.00 0.83 0.10 0.00 97.60
Les champs sont définis ainsi :
%user: pourcentage de temps CPU consommé en mode utilisateur.%system: pourcentage de temps CPU utilisé en mode noyau.%iowait: temps d'attente pour les opérations d'E/S.%idle: temps CPU inactif.
Un taux élevé de %iowait peut indiquer un goulot d'étranglement au niveau du disque, tandis qu'un faible %idle suggère une surcharge du processeur.
Pour lire les données depuis le fichier binaire, utilisez :
sar -u -f perf_data
Surveillance des inodes et des tables du noyau
Avec l'option -v, on peut observer l'état des caches et des descripteurs. Par exemple :
sar -v 15 4
Cette commande affiche des métriques telles que le nombre de descripteurs de fichiers ou d'inodes en usage.
Analyse de la mémoire et de l'espace d'échange
L'option -r fournit des détails sur l'utilisation de la mémoire. Par exemple :
sar -r 15 4
Les indicateurs importants incluent :
kbmemfree: mémoire libre disponible.kbmemused: mémoire totale utilisée (incluant les buffers et caches).%memused: pourcentage de mémoire physique utilisée.
Des valeurs faibles de mémoire libre peuvent nécessiter une augmentation de la capacité RAM.
Surveillance des E/S
Pour évaluer les performances d'E/S disque, utilisez l'option -b :
sar -b 15 4
La sortie montre le nombre de transactions par seconde (tps) et les taux de lecture/écriture en blocs par seconde.
État de la file d'attente des processus
Avec l'option -q, on peut mesurer la charge système :
sar -q 15 4
Les champs comme runq-sz (longueur de la file d'exécution) et ldavg-1 (charge moyenne sur 1 minute) aident à diagnostiquer les problèmes de performance.
Activité des périphériques
L'option -d, combinée avec le paramètre -p pour des noms lisibles, détaille l'activité des disques :
sar -d 15 4 -p
Les métriques comme await (temps d'attente moyen) et %util (utilisation du périphérique) sont cruciales pour identifier les goulots d'étranglement d'E/S.
Conseils de diagnostic
Pour déterminer les causes des problèmes de performance, combinez plusieurs options de sar :
- Processeur suspecté : utiliser
-uet-q. - Mémoire suspectée : utiliser
-ret-B. - E/S suspectées : utiliser
-bet-d.