GNU/Linux >> Tutoriels Linux >  >> Linux

Commande Sar sous Linux avec des exemples


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

Linux
  1. Commande Linux wc avec exemples

  2. Commande de tri Linux avec exemples

  3. Commande Linux Tee avec exemples

  4. Commande principale Linux avec exemples

  5. Commande JQ sous Linux avec exemples

Commande de CD Linux avec exemples

Commande Linux watch avec exemples

Commande Wait sous Linux avec des exemples

Commande d'exportation Linux avec exemples

Commande IP Linux avec exemples

Exemples de commandes sar sous Linux