Cet article présente 10 façons d'utiliser la commande System Activity Report (sar) pour surveiller les ressources sous Linux®.
1. Afficher l'utilisation collective de tous les CPU
Exécutez la commande suivante pour afficher un résumé de l'utilisation du processeur :
sar -u
Cette commande affiche l'utilisation cumulée des ressources en temps réel de tous les processeurs.
Vous pouvez ajouter plus de paramètres à cette commande. Par exemple, ajouter 1 3
à la fin de la commande, comme indiqué dans l'exemple suivant, rapporte pour chaque seconde un total de 3 fois :
sar -u 1 3
Le résultat ressemble à l'exemple suivant :
Linux 2.6.18-194.el5PAE (dev-db) 03/26/2011 _i686_ (8 CPU)
01:27:32 PM CPU %user %nice %system %iowait %steal %idle
01:27:33 PM all 0.00 0.00 0.00 0.00 0.00 100.00
01:27:34 PM all 0.25 0.00 0.25 0.00 0.00 99.50
01:27:35 PM all 0.75 0.00 0.25 0.00 0.00 99.00
Average: all 0.33 0.00 0.17 0.00 0.00 99.50
Le dernier champ, %idle
, indique la charge CPU.
La commande a les variantes suivantes :
sar -u
:affiche l'utilisation du processeur pour la journée en cours.sar -u 1 3
:affiche l'utilisation du processeur en temps réel toutes les 1 secondes pendant 3 fois.sar -u ALL
:Identique àsar -u
commande, mais affiche des champs supplémentaires.sar -u ALL 1 3
:Identique ausar -u 1 3
commande, mais affiche des champs supplémentaires.sar -u -f /var/log/sa/sa10
:Affiche l'utilisation du processeur pour le dixième jour du mois à partir dusa10
fichier.
2. Afficher l'utilisation du processeur par processeur ou cœur
Exécutez la commande suivante pour afficher l'utilisation du processeur par processeur ou par cœur :
sar -P ALL 1 1
Le -P ALL
indique que vous souhaitez afficher les statistiques pour tous les cœurs individuels.
Dans le CPU
colonne de l'exemple de sortie suivant, 0
, 1
, 2
, et 3
sont les numéros de cœur du processeur :
Linux 2.6.18-194.el5PAE (dev-db) 03/26/2011 _i686_ (8 CPU)
01:34:12 PM CPU %user %nice %system %iowait %steal %idle
01:34:13 PM all 11.69 0.00 4.71 0.69 0.00 82.90
01:34:13 PM 0 35.00 0.00 6.00 0.00 0.00 59.00
01:34:13 PM 1 22.00 0.00 5.00 0.00 0.00 73.00
01:34:13 PM 2 3.00 0.00 1.00 0.00 0.00 96.00
01:34:13 PM 3 0.00 0.00 0.00 0.00 0.00 100.00
Si vous souhaitez afficher les statistiques uniquement pour le deuxième cœur, utilisez le -P 1
flag (car les numéros de base commencent à 0), comme illustré dans l'exemple suivant :
sar -P 1 1 1
Le résultat ressemble à l'exemple suivant :
Linux 2.6.18-194.el5PAE (dev-db) 03/26/2011 _i686_ (8 CPU)
01:36:25 PM CPU %user %nice %system %iowait %steal %idle
01:36:26 PM 1 8.08 0.00 2.02 1.01 0.00 88.89
Les variantes suivantes peuvent également vous être utiles :
sar -P ALL
:affiche l'utilisation du processeur pour chaque cœur pour la journée en cours.sar -P ALL 1 3
:affiche l'utilisation du processeur en temps réel de chaque cœur toutes les 1 secondes pendant 3 fois.sar -P 1
:affiche l'utilisation du processeur pour le cœur numéro 1 pour la journée en cours.sar -P 1 1 3
:Affiche l'utilisation du processeur en temps réel pour le cœur numéro 1, toutes les secondes pendant 3 fois.sar -P ALL -f /var/log/sa/sa10
:affiche l'utilisation du processeur pour chaque cœur pour le dixième jour du mois à partir dusa10
fichier.
3. Afficher la mémoire libre et utilisée
Exécutez la commande suivante pour afficher la mémoire libre et utilisée :
sar -r
Si vous ajoutez 1 3
à la commande comme indiqué dans l'exemple suivant, la sortie rapporte pour chaque 1 seconde un total de 3 fois :
sar -r 1 3
La sortie ressemble à l'exemple suivant, dans lequel kbmemfree
est de la mémoire libre et kbmemused
est utilisé la mémoire :
Linux 2.6.18-194.el5PAE (dev-db) 03/26/2011 _i686_ (8 CPU)
07:28:06 AM kbmemfree kbmemused %memused kbbuffers kbcached kbcommit %commit kbactive kbinact
07:28:07 AM 6209248 2097432 25.25 189024 1796544 141372 0.85 1921060 88204
07:28:08 AM 6209248 2097432 25.25 189024 1796544 141372 0.85 1921060 88204
07:28:09 AM 6209248 2097432 25.25 189024 1796544 141372 0.85 1921060 88204
Average: 6209248 2097432 25.25 189024 1796544 141372 0.85 1921060 88204
Cette commande a les variantes suivantes :
sar -r
sar -r 1 3
sar -r -f /var/log/sa/sa10
4. Afficher l'utilisation de l'espace d'échange
Exécutez la commande suivante pour afficher la quantité d'espace d'échange utilisé :
sar -S
Si vous ajoutez 1 3
à la fin de la commande comme indiqué dans l'exemple suivant, la sortie rapporte pour chaque 1 seconde un total de 3 fois :
sar -S 1 3
Le résultat ressemble à l'exemple suivant :
Linux 2.6.18-194.el5PAE (dev-db) 03/26/2011 _i686_ (8 CPU)
07:31:06 AM kbswpfree kbswpused %swpused kbswpcad %swpcad
07:31:07 AM 8385920 0 0.00 0 0.00
07:31:08 AM 8385920 0 0.00 0 0.00
07:31:09 AM 8385920 0 0.00 0 0.00
Average: 8385920 0 0.00 0 0.00
Remarque :Si le kbswpused
et %swpused
sont à 0
, votre système ne permute pas.
Cette commande a les variantes suivantes :
sar -S
sar -S 1 3
sar -S -f /var/log/sa/sa10
Commandes d'espace d'échange supplémentaires
Les commandes d'espace d'échange suivantes peuvent également vous être utiles :
- Utilisez
sar -R
pour identifier le nombre de pages mémoire que le système a libérées, utilisées et mises en cache. - Utilisez
sar -H
pour identifier les HugePages Linux® (en kilo-octets (Ko)) utilisées et disponibles. - Utilisez
sar -B
pour générer des statistiques de pagination, telles que le nombre de Ko paginés (et sortants) du disque par seconde. - Utilisez
sar -W
pour générer des statistiques d'échange de pages, telles que l'échange de pages entrantes (et sortantes) par seconde.
5. Afficher les activités d'E/S
Exécutez la commande suivante pour afficher les activités d'entrée et de sortie (E/S) globales :
sar -b
La sortie de cette commande affiche les statistiques d'E/S. Si vous ajoutez 1 3
jusqu'à la fin de la commande, comme illustré dans l'exemple suivant, la sortie signale 3 fois au total toutes les 1 secondes :
sar -b 1 3
Le résultat ressemble à l'exemple suivant :
Linux 2.6.18-194.el5PAE (dev-db) 03/26/2011 _i686_ (8 CPU)
01:56:28 PM tps rtps wtps bread/s bwrtn/s
01:56:29 PM 346.00 264.00 82.00 2208.00 768.00
01:56:30 PM 100.00 36.00 64.00 304.00 816.00
01:56:31 PM 282.83 32.32 250.51 258.59 2537.37
Average: 242.81 111.04 131.77 925.75 1369.90
La sortie comprend les champs suivants :
tps
:Transactions par seconde (en lecture et en écriture)rtps
:Lecture des transactions par secondewtps
:Écrire des transactions par secondebread/s
:Octets lus par secondebwrtn/s
:Octets écrits par seconde
Cette commande a les variantes suivantes :
sar -b
sar -b 1 3
sar -b -f /var/log/sa/sa10
Remarque :Utilisez sar -v
pour afficher le nombre de gestionnaires d'inodes, de gestionnaires de fichiers et de pseudo-terminaux utilisés par le système.
6. Afficher les activités d'E/S des périphériques de bloc individuels
Exécutez la commande suivante pour afficher les activités d'E/S des périphériques blocs individuels :
sar -d
Pour identifier les activités par périphérique de bloc individuel (tel qu'un point de montage spécifique, un numéro d'unité logique (LUN) ou une partition), utilisez sar -d
, comme illustré dans l'exemple suivant :
sar -d 1 1
Le résultat ressemble à l'exemple suivant :
Linux 2.6.18-194.el5PAE (dev-db) 03/26/2011 _i686_ (8 CPU)
01:59:45 PM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
01:59:46 PM dev8-0 1.01 0.00 0.00 0.00 0.00 4.00 1.00 0.10
01:59:46 PM dev8-1 1.01 0.00 0.00 0.00 0.00 4.00 1.00 0.10
01:59:46 PM dev120-64 3.03 64.65 0.00 21.33 0.03 9.33 5.33 1.62
01:59:46 PM dev120-65 3.03 64.65 0.00 21.33 0.03 9.33 5.33 1.62
01:59:46 PM dev120-0 8.08 0.00 105.05 13.00 0.00 0.38 0.38 0.30
01:59:46 PM dev120-1 8.08 0.00 105.05 13.00 0.00 0.38 0.38 0.30
01:59:46 PM dev120-96 1.01 8.08 0.00 8.00 0.01 9.00 9.00 0.91
01:59:46 PM dev120-97 1.01 8.08 0.00 8.00 0.01 9.00 9.00 0.91
Dans cet exemple, les valeurs dans le DEV
colonne représentent des périphériques de bloc spécifiques. Par exemple, dev53-1
signifie un périphérique bloc avec 53 comme numéro majeur et 1 comme numéro mineur.
Vous pouvez utiliser la jolie impression (-p
) comme indiqué dans l'exemple suivant pour que la colonne affiche le nom réel de l'appareil (tel que sda, sda1 ou sdb1) :
sar -p -d 1 1
Le résultat ressemble à l'exemple suivant :
Linux 2.6.18-194.el5PAE (dev-db) 03/26/2011 _i686_ (8 CPU)
01:59:45 PM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
01:59:46 PM sda 1.01 0.00 0.00 0.00 0.00 4.00 1.00 0.10
01:59:46 PM sda1 1.01 0.00 0.00 0.00 0.00 4.00 1.00 0.10
01:59:46 PM sdb1 3.03 64.65 0.00 21.33 0.03 9.33 5.33 1.62
01:59:46 PM sdc1 3.03 64.65 0.00 21.33 0.03 9.33 5.33 1.62
01:59:46 PM sde1 8.08 0.00 105.05 13.00 0.00 0.38 0.38 0.30
01:59:46 PM sdf1 8.08 0.00 105.05 13.00 0.00 0.38 0.38 0.30
01:59:46 PM sda2 1.01 8.08 0.00 8.00 0.01 9.00 9.00 0.91
01:59:46 PM sdb2 1.01 8.08 0.00 8.00 0.01 9.00 9.00 0.91
Cette commande a les variantes suivantes :
sar -d
sar -d 1 3
sar -d -f /var/log/sa/sa10
sar -p -d
7. Afficher le changement de contexte par seconde
Exécutez la commande suivante pour afficher le changement de contexte par seconde :
sar -w
Cette commande indique le nombre total de processus créés par seconde et le nombre total de changements de contexte par seconde. Si vous ajoutez 1 3
à la fin de la commande, comme illustré dans l'exemple suivant, il signale pour chaque 1 seconde un total de 3 fois :
sar -w 1 3
Le résultat ressemble à l'exemple suivant :
Linux 2.6.18-194.el5PAE (dev-db) 03/26/2011 _i686_ (8 CPU)
08:32:24 AM proc/s cswch/s
08:32:25 AM 3.00 53.00
08:32:26 AM 4.00 61.39
08:32:27 AM 2.00 57.00
Cette commande a les variantes suivantes :
sar -w
sar -w 1 3
sar -w -f /var/log/sa/sa10
8. Afficher la file d'attente d'exécution et la charge moyenne
Exécutez la commande suivante pour afficher la file d'attente d'exécution et la charge moyenne :
sar -q
Cette commande signale la taille de la file d'attente d'exécution et la charge moyenne pour la dernière minute, les 5 dernières minutes et les 15 dernières minutes. Si vous ajoutez 1 3
à la fin de la commande comme indiqué dans l'exemple suivant, il signale pour chaque 1 seconde un total de 3 fois :
sar -q 1 3
Le résultat ressemble à l'exemple suivant :
Linux 2.6.18-194.el5PAE (dev-db) 03/26/2011 _i686_ (8 CPU)
06:28:53 AM runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15 blocked
06:28:54 AM 0 230 2.00 3.00 5.00 0
06:28:55 AM 2 210 2.01 3.15 5.15 0
06:28:56 AM 2 230 2.12 3.12 5.12 0
Average: 3 230 3.12 3.12 5.12 0
Remarque :Le blocked
affiche le nombre de tâches actuellement bloquées et en attente de la fin des opérations d'E/S.
Cette commande a les variantes suivantes :
sar -q
sar -q 1 3
sar -q -f /var/log/sa/sa10
9. Afficher les statistiques du réseau
Exécutez la commande suivante pour afficher les statistiques du réseau :
sar -n
Cette commande rapporte diverses statistiques réseau, telles que le nombre de paquets reçus (transmis) via la carte réseau ou le nombre d'échecs de paquets qui se sont produits. Si vous ajoutez 1 3
à la fin de la commande, il signale pour chaque 1 seconde un total de 3 fois.
Vous pouvez également ajouter un mot-clé à la commande, comme illustré dans l'exemple suivant :
sar -n KEYWORD
KEYWORD
peut être l'une des options suivantes :
DEV
:affiche les statistiques vitales des périphériques réseauEDEV
:Afficher les statistiques d'échec des périphériques réseauNFS
:Affiche les activités du client NFS (Network File System)NFSD
:Affiche les activités du serveur NFSSOCK
:Affiche les sockets utilisés pour IPv4IP
:Affiche le trafic réseau IPv4EIP
:Affiche les erreurs de réseau IPv4ICMP
:Affiche le trafic réseau ICMPv4EICMP
:Affiche les erreurs de réseau ICMPv4TCP
:Affiche le trafic réseau TCPv4ETCP
:Affiche les erreurs de réseau TCPv4UDP
:Affiche le trafic réseau UDPv4SOCK6
,IP6
,EIP6
,ICMP6
, etUDP6
:affiche les informations sur le réseau IPv6ALL
:Affiche toutes les informations précédentes
L'exemple suivant utilise le DEV
mot-clé :
sar -n DEV 1 1
Le résultat ressemble à l'exemple suivant :
Linux 2.6.18-194.el5PAE (dev-db) 03/26/2011 _i686_ (8 CPU)
01:11:13 PM IFACE rxpck/s txpck/s rxbyt/s txbyt/s rxcmp/s txcmp/s rxmcst/s
01:11:14 PM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
01:11:14 PM eth0 342.57 342.57 93923.76 141773.27 0.00 0.00 0.00
01:11:14 PM eth1 0.00 0.00 0.00 0.00 0.00 0.00 0.00
10. Rapporter les données sar par heure de début
Exécutez la commande suivante pour rapporter les données sar par heure de début :
sar -s
Lorsque vous affichez les données sar historiques de /var/log/sa/saXX
fichier en utilisant le sar -f
option, la sortie affiche toutes les données sar pour ce jour spécifique commençant à 12h00.
Vous pouvez utiliser le -s hh:mi:ss
possibilité de spécifier l'heure de début. Par exemple, si vous spécifiez sar -s 10:00:00
, la sortie de la commande affiche les sardata à partir de 10 h (au lieu de minuit par défaut).
Vous pouvez combiner les -s
drapeau avec d'autres drapeaux sar. Par exemple, pour reporter la charge moyenne le 26 du mois en cours à partir de 10h, associez -q
et -s
flags comme indiqué dans l'exemple suivant :
sar -q -f /var/log/sa/sa23 -s 10:00:01
Le résultat ressemble à l'exemple suivant :
Linux 2.6.18-194.el5PAE (dev-db) 03/26/2011 _i686_ (8 CPU)
10:00:01 AM runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15 blocked
10:10:01 AM 0 127 2.00 3.00 5.00 0
10:20:01 AM 0 127 2.00 3.00 5.00 0
...
11:20:01 AM 0 127 5.00 3.00 3.00 0
12:00:01 PM 0 127 4.00 2.00 1.00 0
Vous ne pouvez pas spécifier d'heure de fin. Au lieu de cela, vous devez utiliser le head
commande. Par exemple, si vous voulez commencer à 10 h 00 et voir 7 entrées, vous dirigez la sortie précédente vers head -n 10
, comme illustré dans l'exemple suivant :
sar -q -f /var/log/sa/sa23 -s 10:00:01 | head -n 10
Le résultat ressemble à l'exemple suivant :
Linux 2.6.18-194.el5PAE (dev-db) 03/26/2011 _i686_ (8 CPU)
10:00:01 AM runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15 blocked
10:10:01 AM 0 127 2.00 3.00 5.00 0
10:20:01 AM 0 127 2.00 3.00 5.00 0
10:30:01 AM 0 127 3.00 5.00 2.00 0
10:40:01 AM 0 127 4.00 2.00 1.00 2
10:50:01 AM 0 127 3.00 5.00 5.00 0
11:00:01 AM 0 127 2.00 1.00 6.00 0
11:10:01 AM 0 127 1.00 3.00 7.00 2