La commande sar vous permet de voir les statistiques de performance de différents éléments de votre ordinateur Linux, tant pour les données en temps réel que pour les données historiques. Nous vous montrons comment utiliser cette formidable ressource.

La commande sar

La commande sar, ou System Activity Reporter, fait partie du paquetage sysstat. Elle capture un ensemble d’informations statistiques telles que la charge du processeur, la pagination de la mémoire, l’utilisation de la mémoire, l’utilisation de l’espace de pagination, les E/S du réseau, et bien plus encore. Il rend ces données accessibles sous forme d’instantanés en temps réel – vous montrant ce qui se passe sur votre ordinateur en ce moment même – et sous forme de rapports historiques.

Il fonctionne en arrière-plan en tant que démon et collecte un ensemble de données toutes les dix minutes. Les données de la journée en cours sont écrites dans un fichier texte. Elles sont converties en un fichier binaire au fur et à mesure que minuit passe. Les fichiers sont écrasés chaque mois afin qu’ils ne grignotent pas régulièrement la capacité de votre disque dur.

La commande sar vous permet d’interroger le système et de voir les statistiques. Mais d’abord, vous devez installer le paquetage sysstat.

5 SYSTÈMES D’EXPLOITATION LINUX POUR SMARTPHONES À INSTALLER SUR VOTRE APPAREIL

Installation du paquetage sysstat

L’installation de sysstat est très simple. Nous utilisons le gestionnaire de paquets de votre système Linux pour l’installer, puis nous utilisons systemd pour activer et démarrer le démon d’arrière-plan.

Pour installer sysstat sur Ubuntu nous utilisons apt :

sudo apt install sysstat

Installer sysstat avec apt sur Ubuntu

Pour installer sysstat sur Fedora, on tape :

sudo dnf install sysstat

Installer sysstat avec dnf sur Fedora

Et pour installer sysstat sur Manjaro, on utilise pacman :

sudo pacman -S sysstat

Installer systat avec pacman sur Manjaro

Une fois sysstat installé, nous devons l’activer pour qu’il puisse fonctionner comme un démon – un processus d’arrière-plan – à chaque fois que vous démarrez votre ordinateur, et nous devons le démarrer maintenant pour pouvoir l’utiliser immédiatement. Nous utilisons systemctl, qui fait partie de la famille d’utilitaires systemd, pour activer et démarrer les démons.

sudo systemctl enable sysstat

Activer le démon sysstat

sudo systemctl start sysstat

Démarrage du démon sysstat

Pour voir quelle version de sar vous utilisez, et pour vous assurer qu’il répond, vous pouvez utiliser l’option -V (version) :

La meilleure newsletter technique du monde

Rejoignez les 425 000 abonnés et recevez un condensé quotidien de fonctionnalités, d’articles, de nouvelles et de faits divers.

En envoyant votre e-mail, vous acceptez les conditions d’utilisation et la politique de confidentialité.

sar -V

Vérification de la version de sar

Statistiques en temps réel avec sar

Vous pouvez utiliser sar pour voir ce qui se passe dans votre ordinateur en ce moment même. Et parce qu’un instantané n’est que cela – l’état des lieux à un certain moment dans le temps – et que parfois une tendance est plus utile, vous pouvez demander à sar d’afficher plusieurs instantanés avec un nombre de secondes spécifié entre eux.

Statistiques du CPU

Pour afficher trois ensembles de statistiques CPU à deux secondes d’intervalle, nous utiliserons cette commande, qui utilise l’option -u (CPU). Notez que l’intervalle vient en premier. Cette commande se lit donc comme suit : « Afficher les statistiques du CPU par pas de deux secondes, pour trois ensembles de données ».

sar -u 2 3

Affichage de trois ensembles de statistiques CPU

Le fait d’étirer la fenêtre de votre terminal permet d’aligner le tableau de manière plus nette, ce qui le rend plus facile à lire.

L’en-tête de la première colonne indique l’heure d’exécution de la commande. Les valeurs de la colonne correspondent à l’heure à laquelle chaque ensemble de données a été collecté. Les autres colonnes sont :

CPU : Le numéro du cœur du CPU, ou ALL pour la moyenne de tous les cœurs.
%User : Le pourcentage de temps passé à exécuter des applications au niveau de l'utilisateur, "dans l'espace utilisateur".
%Nice : Le pourcentage de temps passé à exécuter des applications au niveau de l'utilisateur, avec une priorité agréable.
%system : Le pourcentage de temps passé à exécuter des processus au niveau du système, dans le noyau.
%iowait : Le pourcentage de temps pendant lequel le CPU était inactif avec une demande d'E/S de disque en attente.
%steal : Dans une machine virtuelle, il s'agit du pourcentage de temps pendant lequel le CPU virtuel était inactif parce que le CPU de l'hôte matériel servait une autre machine virtuelle.
%idle : Le pourcentage de temps pendant lequel le CPU était inactif sans aucune demande d'E/S de disque en attente.

La dernière ligne est la moyenne des lignes précédentes.

Pour voir les statistiques d’un noyau spécifique, utilisez l’option -P (per-processor). Cette option est suivie du numéro d’un cœur de processeur, ou d’une liste ou d’une plage de numéros de cœur, comme 0,1,4 ou 4-8.

Cette commande examine trois ensembles de données séparés par une seconde, pour le cœur 1. N’oubliez pas que les cœurs sont numérotés à partir de zéro.

sar -P 1 1 3

Affichage des statistiques du CPU pour un seul cœur

Statistiques de pagination de la mémoire

L’option -B (paging) permet à sar d’afficher les statistiques liées à la pagination de la mémoire sur le disque dur. Nous allons demander deux séries d’informations, espacées de cinq secondes.

sar -B 5 2

Affichage des statistiques de pagination de la mémoire

Les colonnes contiennent les informations suivantes.

pgpgin/s : Nombre total de kilo-octets que le système a paginés (récupérés) sur le disque dur par seconde.
pgpgout/s : Nombre total de kilo-octets sortis du disque dur par le système par seconde.
fault/s : Nombre de défauts de page, mineurs et majeurs, effectués par le système par seconde.
majflt/s : Nombre d'erreurs majeures effectuées par le système par seconde, qui ont nécessité le chargement d'une page mémoire à partir du disque.
pgfree/s : Nombre de pages placées sur la liste libre par le système par seconde.
pgscank/s : Nombre de pages analysées par le démon kswapd du système de gestion de la mémoire par seconde.
pgscand/s : Nombre de pages scannées directement par seconde.
pgsteal/s : Nombre de pages que le système a récupérées du cache par seconde.
%vmeff : Calculé comme pgsteal / pgscan, ceci est une indication de l'efficacité des récupérations de pages.

Taux de transfert d’E/S

Pour voir les statistiques des taux d’E/S et de transfert, utilisez l’option -b (note, « b » minuscule). Nous demandons trois ensembles de données avec quatre secondes d’intervalle.

sar -b 4 3

Affichage des statistiques de transfert d’E/S

Voici ce que contiennent les colonnes.

tps : Nombre total de requêtes de transfert par seconde qui ont été faites aux périphériques physiques. Notez qu'il s'agit d'un compte de demandes. Elles peuvent ne pas avoir toutes abouti.
rtps : Nombre total de demandes de lecture par seconde émises vers des périphériques physiques.
wtps : Nombre total de demandes d'écriture par seconde émises vers des périphériques physiques.
dtps : Nombre total de demandes de rejet par seconde émises vers des périphériques physiques.
pain/s : Quantité totale de données lues à partir de dispositifs physiques. Le chiffre est donné en blocs de 512 octets, par seconde.
bwrtn/s : Quantité totale de données écrites sur les dispositifs physiques en blocs par seconde.
bdscd/s : Quantité totale de données éliminées en blocs par seconde.

Il existe de nombreuses autres catégories d’informations que vous pouvez sélectionner pour les examiner. Elles sont toutes utilisées de la même manière. Vous pouvez également utiliser l’option -A (all) pour voir un dump complet de tout ce que sar peut vous proposer.

Consultez la page de manuel de sar pour obtenir la liste complète.

Statistiques historiques avec sar

Pour consulter les données historiques, il suffit d’ajouter les options -s (start) et -e (end) à l’une des commandes sar habituelles. Les heures sont exprimées dans l’horloge de 24 heures.

Pour voir à quoi ressemblait la charge du CPU entre 06:30 et 07:15 aujourd’hui, nous allons utiliser cette commande.

sar -u -s 06:30:00 -e 07:15:00

Affichage des données historiques de la journée précédente

Pour voir quelle était la situation un jour précédent, utilisez un nombre comme drapeau d’option. Le nombre indique le jour à prendre en compte. L’option -1 signifie hier, l’option -2 signifie il y a deux jours, et ainsi de suite.

Générons un rapport entre 13:00 et 13:00, en utilisant les données d’hier.

sar -u -1 -s 13:00:00 -e 13:30:00

Affichage des informations historiques d’hier

Une autre façon de spécifier le jour sur lequel vous souhaitez faire un rapport est d’utiliser le nom du fichier de données de ce jour sur la ligne de commande. Nous le faisons avec l’option -f (filename).

Les fichiers quotidiens sont appelés « saXX » où le XX est remplacé par le jour du mois. Ils sont créés dans le dossier log de votre ordinateur Linux. Le dossier journal de sar est probablement appelé « /var/log/sa/ » ou « /var/log/sysstat/ ».

Sous Ubuntu, il s’agit de « /var/log/sysstat/ ». Le format de notre commande pour voir l’utilisation du CPU entre 14h00 et 14h30 pour le 21e jour de ce mois ressemblerait donc à ceci :

sar -u -s 14:00:00 -e 14:30:00 -f /var/log/sysstat/sa21

Affichage des données historiques d’un fichier de données spécifique

L’information, c’est le pouvoir

Et sar vous donne certainement suffisamment d’informations pour prendre des décisions éclairées sur les performances de votre ordinateur.

Si vous avez un rôle de support – ou si vous êtes le support technique de vos amis et de votre famille – la possibilité d’examiner les données historiques est un excellent moyen de commencer à creuser un problème qui vous est signalé aujourd’hui mais qui s’est en fait produit hier.