
La commande Sar est utilisée pour produire des rapports statistiques sur une variété de ressources, y compris l'utilisation du processeur, l'utilisation de la mémoire, la consommation des périphériques d'E/S, la surveillance du réseau, le swap et les moyennes de charge.
SAR signifie System Activity Reporter, des outils très utiles pour tout administrateur Linux pour surveiller les performances du système et enquêter sur les goulots d'étranglement. Cet outil est fourni par le package sysstat.
Dans ce didacticiel, nous verrons comment installer le package sysstat et utiliser la commande sar sous Linux.
Installer le paquet sysstat
Le package sysstat contient de nombreux utilitaires qui constituent une collection d'outils de surveillance des performances pour le système Linux. Sar est un outil qui appartient au package sysstat.
Installation du package sysstat sur RHEL et CentOS
$ sudo yum install sysstat
Une fois que le sysstat a été installé avec succès, vérification de l'installation par la commande :
$ which sar
/usr/bin/sar
Par défaut, sysstat stockera les statistiques du serveur dans le fichier '/var/log/sa/saDD' (DD est le jour du mois, par exemple :/var/log/sa/sa08) et conservera les données pendant 28 jours. Si vous souhaitez conserver les données plus que cela, vous devez modifier le fichier de configuration sysstat '/etc/sysconfig/sysstat'.
$ sudo cat /etc/sysconfig/sysstat
HISTORY=28
Modifier la valeur de HISTORY
avec le nombre de jours pendant lesquels vous souhaitez conserver les journaux.
Installation du paquet sysstat sur Ubuntu et Debian
$ sudo apt install sysstat
Vérification de l'installation par commande :
$ which sar
/usr/bin/sar
Sur Ubuntu, nous devons l'activer alors que CentOS n'est pas nécessaire.
Utilisez votre éditeur préféré (vim, nano ou gedit) pour éditer le fichier suivant :
$ sudo nano /etc/default/sysstat
Et définissez ENABLED
à true
:
ENABLED="true"
Redémarrez le service
$ sudo service sysstat restart
Sur Ubuntu, le fichier de configuration est '/etc/sysstat/sysstat' et les données seront conservées pendant 7 jours par défaut.
$ cat /etc/sysstat/sysstat
HISTORY=7
À partir de Fedora 21, sysstat est fourni par défaut et tout ce que vous avez à faire est d'exécuter les commandes ci-dessous :
$ sudo systemctl enable sysstat.service
$ sudo systemctl start sysstat.service
Il existe une tâche cron pour sysstat qui s'exécute toutes les 10 minutes pour collecter des données et les stockera dans le fichier correspondant /var/log/sa/saDD. Si vous souhaitez modifier l'intervalle de cette exécution cron, vous pouvez le modifier dans '/etc/cron.d/sysstat'.
Pour systemd, le fichier d'unité de minuterie appelle sysstat-collect.service (/usr/lib/systemd/system/sysstat-collect.service) toutes les 10 minutes pour collecter les statistiques.
$ cat /etc/cron.d/sysstat
# Activity reports every 10 minutes everyday
5-55/10 * * * * root command -v debian-sa1 > /dev/null && debian-sa1 1 1
# Additional run at 23:59 to rotate the statistics file
59 23 * * * root command -v debian-sa1 > /dev/null && debian-sa1 60 2
Utilisation de la commande Sar
La syntaxe de base pour l'utilisation de la commande sar est la suivante :
sar [option] [-o filename] [-f filename] [interval] [count]
Où :
intervalle :la période en secondes.
compte : nombre de fois pour faire des statistiques de sortie.
1. Trouver l'activité du processeur
Par défaut (sans aucune autre option), la commande sar signalera l'activité du processeur du serveur. Aussi, l'option -u
peut être utilisé pour obtenir le rapport d'utilisation du processeur.
Si vous souhaitez obtenir le rapport d'activité du processeur toutes les 2 secondes pendant 3 fois, vous pouvez utiliser la commande sar suivante :
$ sar -u 2 3
Linux 3.10.0-1127.10.1.el7.x86_64 (localhost.localdomain) 09/06/2020 _x86_64_ (2 CPU)
22:26:54 CPU %user %nice %system %iowait %steal %idle
22:26:56 all 4,03 0,00 0,50 0,00 0,00 95,47
22:26:58 all 8,08 0,00 0,51 0,00 0,00 91,41
22:27:00 all 12,50 0,00 1,00 0,00 0,00 86,50
Average: all 8,21 0,00 0,67 0,00 0,00 91,11

Où :
%utilisateur indique le pourcentage d'utilisation du processeur qui s'est produit lors de l'exécution au niveau de l'utilisateur (espace utilisateur)
%système indique le pourcentage d'utilisation du processeur qui s'est produit lors de l'exécution au niveau du système (espace noyau)
% inactif est le pourcentage de temps pendant lequel le ou les processeurs étaient inactifs et le système n'avait pas de demande d'E/S de disque en attente.
Si vous souhaitez obtenir la sortie dans un fichier sous forme binaire, vous devez ajouter -o
nom de fichier avec la commande sar. Par exemple :
$ sar -u 2 3 -o log-file
En outre, vous pouvez obtenir le rapport d'activité du processeur d'un jour particulier, par exemple :09 juin 2020. Vous pouvez le trouver sous :
$ sudo sar -u -f /var/log/sa/sa09
2. Trouver l'utilisation du CPU pour chaque processeur
Le -u
L'option fournit l'utilisation du processeur sur tous les processeurs. Si vous voulez trouver l'activité CPU sur tous les processeurs séparément, vous devez utiliser le -P
option.
$ sar -P ALL 1 1
Linux 3.10.0-1127.10.1.el7.x86_64 (localhost.localdomain) 10/06/2020 _x86_64_ (2 CPU)
05:38:18 CPU %user %nice %system %iowait %steal %idle
05:38:19 all 3,03 0,00 0,00 0,00 0,00 96,97
05:38:19 0 3,96 0,00 0,99 0,00 0,00 95,05
05:38:19 1 3,00 0,00 0,00 0,00 0,00 97,00
Average: CPU %user %nice %system %iowait %steal %idle
Average: all 3,03 0,00 0,00 0,00 0,00 96,97
Average: 0 3,96 0,00 0,99 0,00 0,00 95,05
Average: 1 3,00 0,00 0,00 0,00 0,00 97,00
3. Rechercher l'utilisation de la mémoire
Vous pouvez trouver l'utilisation de la mémoire (mémoire utilisée et libre du serveur) au fil du temps en utilisant le -r
commutateur.
$ sar -r 1 3
Linux 3.10.0-1127.10.1.el7.x86_64 (localhost.localdomain) 10/06/2020 _x86_64_ (2 CPU)
05:41:04 kbmemfree kbmemused %memused kbbuffers kbcached kbcommit %commit kbactive kbinact kbdirty
05:41:05 855300 3025220 77,96 0 1495276 2426864 30,55 1265008 1158172 100
05:41:06 854800 3025720 77,97 0 1495276 2426864 30,55 1265132 1158172 100
05:41:07 855032 3025488 77,97 0 1495276 2426864 30,55 1265012 1158172 100
Average: 855044 3025476 77,97 0 1495276 2426864 30,55 1265051 1158172 100
Où :
kbmemfree indique la quantité de mémoire libre disponible en kilo-octets.
kbmemused indique la quantité de mémoire utilisée en kilo-octets. Cela ne tient pas compte de la mémoire utilisée par le noyau lui-même.
Si vous souhaitez collecter l'utilisation de la mémoire pour un jour particulier, dites :05 septembre, vous devez l'exécuter comme la commande ci-dessous :
$ sar -r -f /var/log/sa/sa05

4. Rechercher une activité d'échange
Vous pouvez vérifier l'utilisation du swap de la machine en utilisant le -W
option.
$ sar -W 1 3
Linux 2.6.18-274.18.1.el5 (myserver) 09/06/2012
03:31:12 PM pswpin/s pswpout/s
03:31:13 PM 16.16 0.00
03:31:14 PM 16.00 0.00
03:31:15 PM 15.84 0.00
Average: 16.00 0.00
Où :
pswpin/s indique le nombre total de pages d'échange que le système a apportées par seconde.
pswpout/s indique le nombre total de pages d'échange que le système a produites par seconde.
Si vous souhaitez rassembler les utilisations d'échange pour un jour particulier, par exemple le 5 septembre, vous devez l'exécuter en suivant la commande sar :
$ sar -W -f /var/log/sa/sa05
5. Trouver les moyennes de charge au fil du temps
Vous pouvez trouver les moyennes de charge au fil du temps en utilisant le -q
option.
$ sar -q 1 3
Linux 3.10.0-1127.10.1.el7.x86_64 (localhost.localdomain) 10/06/2020 _x86_64_ (2 CPU)
06:16:13 runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15 blocked
06:16:14 0 329 0,00 0,04 0,09 0
06:16:15 0 329 0,00 0,04 0,09 0
06:16:16 0 329 0,00 0,04 0,09 0
Average: 0 329 0,00 0,04 0,09 0
Où :
runq-sz :Il affiche la longueur de la file d'attente d'exécution (nombre de tâches en attente d'exécution).
plist-sz :Il affiche le nombre de tâches dans la liste des tâches.
ldavg-1/5/15 :Charge moyenne du système pour la dernière minute/les 5 dernières minutes/les 15 dernières minutes.
Si vous souhaitez collecter les moyennes de charge pour un jour particulier, par exemple le 5 septembre, vous devez l'exécuter en suivant la commande sar :
$ sar -q -f /var/log/sa/sa05
6. Rapport des systèmes de fichiers montés
Vous pouvez obtenir les statistiques des systèmes de fichiers actuels en utilisant le -F
possibilité
$ sar -F 2 3
Linux 3.10.0-1127.10.1.el7.x86_64 (localhost.localdomain) 10/06/2020 _x86_64_ (2 CPU)
06:30:18 MBfsfree MBfsused %fsused %ufsused Ifree Iused %Iused FILESYSTEM
06:30:20 30410 5532 15,39 15,39 18245113 166407 0,90 /dev/mapper/centos-root
06:30:20 796 218 21,52 21,52 523947 341 0,07 /dev/sda1
06:30:20 MBfsfree MBfsused %fsused %ufsused Ifree Iused %Iused FILESYSTEM
06:30:22 30410 5532 15,39 15,39 18245113 166407 0,90 /dev/mapper/centos-root
06:30:22 796 218 21,52 21,52 523947 341 0,07 /dev/sda1
06:30:22 MBfsfree MBfsused %fsused %ufsused Ifree Iused %Iused FILESYSTEM
06:30:24 30410 5532 15,39 15,39 18245113 166407 0,90 /dev/mapper/centos-root
06:30:24 796 218 21,52 21,52 523947 341 0,07 /dev/sda1
Summary: MBfsfree MBfsused %fsused %ufsused Ifree Iused %Iused FILESYSTEM
Summary 30410 5532 15,39 15,39 18245113 166407 0,90 /dev/mapper/centos-root
Summary 796 218 21,52 21,52 523947 341 0,07 /dev/sda1
Si vous souhaitez collecter les systèmes de fichiers montés pour un jour particulier, dites le 10 juin.
$ sar -F -f /var/log/sa/sa10
7. Rapporter les détails des inodes, des tables du noyau et des tables de fichiers
Vous pouvez obtenir les détails de l'inode, des processus, des threads du noyau et des tables de fichiers utilisés par le système en utilisant la commande sar avec -v
option.
$ sar -v 2 3
Linux 3.10.0-1127.10.1.el7.x86_64 (localhost.localdomain) 10/06/2020 _x86_64_ (2 CPU)
06:57:23 dentunusd file-nr inode-nr pty-nr
06:57:25 160833 2400 132081 3
06:57:27 160833 2400 132081 3
06:57:29 160833 2400 132081 3
Average: 160833 2400 132081 3
Où :
dentunusd :nombre d'entrées de cache inutilisées dans le cache du répertoire
file-nr : nombre de descripteurs de fichiers en cours d'utilisation
inode-nr : gestionnaires d'inodes
pty-nr :pseudo-terminaux
8. Vérifier le goulot d'étranglement du processeur
Vous pouvez utiliser la commande sar pour savoir quel numéro d'interruption peut provoquer un goulot d'étranglement du processeur.
Dans l'exemple ci-dessous #9
était le plus élevé à l'exclusion de l'interruption système #0
.
$ sar -I XALL 2 10
02:07:10 AM INTR intr/s
02:07:12 AM 0 992.57
02:07:12 AM 1 0.00
02:07:12 AM 2 0.00
02:07:12 AM 3 0.00
02:07:12 AM 4 0.00
02:07:12 AM 5 0.00
02:07:12 AM 6 0.00
02:07:12 AM 7 0.00
02:07:12 AM 8 0.00
02:07:12 AM 9 350.50
Les détails du fichier '/proc/interrupts' vous seront également utiles. L'interruption interrompt momentanément le traitement afin que des E/S ou d'autres opérations puissent se produire. Le traitement reprend après l'exécution de l'opération spécifique. Il est donc très important que chaque périphérique installé dans la machine soit doté d'un paramètre d'interruption qui n'entre pas en conflit avec les paramètres utilisés par le matériel et les autres périphériques.
$ sudo cat /proc/interrupts
CPU0 CPU1
0: 48 0 IO-APIC-edge timer
1: 54 0 IO-APIC-edge i8042
8: 1 0 IO-APIC-edge rtc0
9: 0 0 IO-APIC-fasteoi acpi
12: 35 116 IO-APIC-edge i8042
14: 0 0 IO-APIC-edge ata_piix
15: 0 0 IO-APIC-edge ata_piix
16: 118 2513 IO-APIC-fasteoi vmwgfx
24: 0 0 PCI-MSI-edge PCIe PME, pciehp
25: 0 0 PCI-MSI-edge PCIe PME, pciehp
26: 0 0 PCI-MSI-edge PCIe PME, pciehp
27: 0 0 PCI-MSI-edge PCIe PME, pciehp
NMI: 0 0 Non-maskable interrupts
LOC: 35392807 14792833 Local timer interrupts
SPU: 0 0 Spurious interrupts
PMI: 0 0 Performance monitoring interrupts
IWI: 2677624 215297 IRQ work interrupts
...
La première colonne fait référence au numéro IRQ. La colonne suivante indique le type d'interruption et la dernière colonne contient le nom du périphérique qui se trouve à IRQ.
9. Signaler les statistiques du réseau
Afin d'obtenir le rapport des statistiques du réseau, utilisez la commande sar avec -n
option. Par exemple :
$ sar -n DEV
Linux 3.10.0-1127.10.1.el7.x86_64 (localhost.localdomain) 10/06/2020 _x86_64_ (2 CPU)
19:20:23 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
19:20:24 ens192 11,00 4,00 1,80 2,75 0,00 0,00 0,00
19:20:24 lo 79,00 79,00 43,62 43,62 0,00 0,00 0,00
Average: IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
Average: ens192 11,00 4,00 1,80 2,75 0,00 0,00 0,00
Average: lo 79,00 79,00 43,62 43,62 0,00 0,00 0,00
Où :
DEV :les statistiques des périphériques réseau sont rapportées
IFACE :nom de l'interface (Dans l'exemple ci-dessus :ens192)
rxpck/s / txpck/s :nombre total de paquets reçus / transmis par seconde
Il existe d'autres options que DEV, telles que :
NFS :affiche les activités du client NFS
CHAUSSETTE :indique les prises utilisées
TCP :indique le trafic réseau TCP v4
UDP :indique le trafic réseau UDP v4
Si vous souhaitez collecter les statistiques du réseau pour un jour particulier, par exemple le 09 juin, vous devez l'exécuter comme suit :
$ sar -n DEV -f /var/log/sa/sa09
Graphique Sar
Les sections ci-dessus expliquent comment utiliser sar depuis le terminal. kSar est une application GUI basée sur Java qui visualise vos données sar.
Installation de ksar :
$ sudo apt install openjdk-11-jdk
$ sudo yum install epel-release
$ sudo yum install java-openjdk
Téléchargez ksar et décompressez-le :
$ wget https://sourceforge.net/projects/ksar/files/latest/download
$ mv download kSar.zip
$ unzip kSar.zip
Maintenant cd dans dir
$ cd kSar-*
Maintenant, rendez le fichier run.sh exécutable et exécutez-le en tant que root.
$ chmod +x run.sh
$ sudo su
./run.sh
Nous pouvons maintenant tester en exécutant la commande locale. Nous allons dans Data > Run Local Command
et là, nous pouvons utiliser la commande par défaut.

Ensuite, nous pouvons regarder les graphiques en cliquant sur le panneau de gauche et en regardant à droite le graphique affiché :

Il est également possible de charger des graphiques à partir d'un fichier. Tout d'abord, nous devons exécuter sar :
LC_ALL=C sar -A > /tmp/sar.data.txt
Et puis dans les menus, on sélectionne Data > Load
à partir du fichier texte et recherchez le fichier dans /tmp
ou là où nous l'avons enregistré.
Conclusion
Dans ce didacticiel, nous avons appris comment la commande sar peut être utilisée pour vous aider à remarquer l'utilisation des ressources système et à améliorer les performances tout en travaillant avec votre système d'exploitation.
À partir d'exemples sar, il est clair qu'il s'agit d'un excellent outil pour collecter, signaler ou enregistrer des informations sur l'activité du système.
Merci d'avoir lu et s'il vous plaît laissez votre suggestion dans la section des commentaires ci-dessous.
Related Read: 10 Linux iostat Command to Report CPU and I/O Statistics