System Activity Reporter est un outil important qui aide les administrateurs système à obtenir une vue d’ensemble de la machine serveur avec le statut de différentes métriques importantes à différents moments.
Supposons que vous ayez un problème avec le système actuellement, Comme certains de vos clients sont incapables de lister certaines données de la base de données. La première chose que la plupart des administrateurs système Linux font est de se rappeler le même problème quand il s’est produit précédemment, et Si vous vous souvenez du jour de son occurrence précédente, alors vous pouvez facilement comparer les statistiques internes du système avec les statistiques actuelles.
SAR est très utile pour faire exactement cela.
La première chose que nous devons faire est de vérifier et de confirmer si vous avez l’utilitaire SAR installé sur la machine. Ce qui peut être vérifié en listant tous les rpm et en trouvant cet utilitaire.
SAR est l’un des utilitaires à l’intérieur de sysstat. Vous pouvez facilement le télécharger et l’installer dans votre machine très facilement à travers YUM. (Mais oui ne vous inquiétez pas car la plupart des distributions sont livrées préemballées avec l’outil sysstat).
# yum install sysstat
Oui mais assurez-vous que vous avez le dépôt epel,rpmformge activé pour l’installation. Sinon votre DVD de distribution sera un bel endroit pour chercher le paquet.
SAR (System Activity Reporter) donnera des informations sur les choses suivantes :
- Activité du tampon système
- Information sur les appels système
- Information sur les périphériques de bloc
- Information sur la pagination globale
- Semaphore et information sur l’allocation de mémoire
- Utilisation de l’unité centrale et rapport sur les processus
La principale chose que nous devons comprendre concernant SAR est que, tout est fait en utilisant un cron. Par défaut dans de nombreuses distributions Linux, vous aurez un fichier nommé /etc/cron.d/sysstat.
Voyons comment fonctionne réellement le SAR.
Si nous commençons à penser à la surveillance du système, alors l’outil doit avoir chacune des données sur les différents aspects du système et doit couvrir tous les intervalles de temps. Ce qui signifie qu’un système de surveillance doit être capable de fournir les statistiques de la machine pour un temps donné.
Il n’y a pas d’autre moyen, que de prendre toutes les métriques et statistiques de la machine à un intervalle de temps défini. Réduire l’intervalle de temps pour collecter les statistiques augmentera la quantité de statistiques détaillées que nous avons(parce que nous aurons plus de données sur le système).
SAR fait exactement cela. sar prend les statistiques de différents aspects de la machine à un intervalle de temps défini. Donc SAR s’exécute à travers CRON.
# cat /etc/cron.d/sysstat# exécuter l'outil de comptabilité de l'activité du système toutes les 10 minutes*/10 * * * root /usr/lib64/sa/sa1 1 1# générer un résumé quotidien de la comptabilité des processus à 23 :5353 23 * * * root /usr/lib64/sa/sa2 -A
- On peut donc voir dans le fichier cron ci-dessus pour SAR que son script « sa1 » situé dans « /usr/lib64/sa/ » est exécuté toutes les 10 minutes
- Et qu’il exécute également un script /usr/lib64/sa/sa2 en fin de journée vers 23.53
Donc la première entrée cron pour SAR(/usr/lib64/sa/sa1) s’exécutera toutes les 10 minutes qui à son tour appellera l’utilitaire sadc pour collecter les statistiques du système et les stocker dans un fichier binaire (un fichier pour un jour)
Et la seconde entrée cron déversera tout le contenu de ce fichier binaire dans un autre fichier texte, et purge les données plus anciennes qu’un nombre particulier de jours, Normalement 7 jours par défaut(qui est mentionné dans le fichier suivant),
# cat /etc/sysconfig/sysstat# Combien de temps pour conserver les fichiers journaux (jours), le maximum est un moisHISTORY=7
Donc vous pouvez modifier cette entrée HISTORY facilement en éditant le fichier.
Donc, bien que les statistiques du système soient collectées toutes les 10 minutes par le cron(modifiez le cron pour qu’il soit exécuté toutes les 1 minute pour des informations plus précises) Si vous voulez voir les statistiques, alors vous devez exécuter la commande comme ci-dessous.
La sortie de la commande sar simple est comme indiqué ci-dessous.
12:00:01 AM CPU %user %nice %system %iowait %steal %idle12:01:01 AM all 73,28 0,00 1,25 0,00 0,00 25,4712:02:01 AM all 7,83 0,00 0,44 0,00 0.00 91.7312:03:01 AM all 61.65 0.00 0.70 0.00 0.00 37.6612:04:01 AM all 57.85 0.00 0.82 0.00 0.00 41.3412:05:01 AM all 4.25 0.00 0.41 0.00 0.00 95.3412:06:01 AM all 4.20 0.00 0.22 0.00 0.00 95.5812:07:01 AM tous 5.05 0.00 0.33 0.00 0.00 94.6312:08:01 AM tous 4.76 0.00 0.06 0.00 0.00 95.1812:09:01 AM tous 37.57 0.00 0.37 0.00 0.00 62.0512:10:01 AM all 70.04 0.00 0.80 0.00 0.00 29.1612:11:01 AM all 5.03 0.00 0.12 0.00 0.00 94.84
Il peut être vu à partir de la sortie que son me rapportant la sortie des statistiques collectées pour chaque minute (ce qui signifie que j’ai mon cron à 1 minute d’intervalle), et montrera les détails de la journée entière (ou montrera les détails collectés jusqu’à ce que vous avez tapé la commande).
Comprendre la sortie de la commande SAR
%user : Cela montre le temps total que le processeur passe sur différents processus YCX5UKN5ZKEJ
%sys : cela montre le pourcentage de temps passé par le processeur pour les tâches du système d’exploitation(car l’utilisateur précédent montre le temps passé pour le processus de fin d’utilisateur)
%iowait : le nom iowait lui-même suggère que c’est le temps passé par le processeur à attendre les périphériques(entrée et sortie)
%nice : La plupart d’entre vous doivent savoir qu’un utilisateur peut changer la priorité d’un processus dans linux en changeant la valeur de nice dans Linux. Ce tableau montre le temps passé par le CPU pour le processus dont la valeur nice a été modifiée.
%steal : Cette colonne montre la quantité à temps passé par un CPU (qui est virtualisé), pour les ressources du CPU physique
%idle : Cela suggère le temps d’inactivité passé par le processeur.
Par défaut, sar stocke toutes ses données sous /var/log/sa/ et un jours sont nommés comme indiqué ci-dessous.
s01 – pour le premier jour du mois
s02-pour le deuxième jour du mois
s03,s04..et ainsi de suite.
-d option dans la commande SAR
Cette option -d peut être utilisée pour rapporter chaque activité liée aux différents périphériques attachés au système(périphériques de bloc). Une sortie typique de la commande sar avec l’option -d est présentée ci-dessous.
12:00:01 AM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util12:01:01 AM dev3-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.0012:01:01 AM dev3-64 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.0012:01:01 AM dev8-0 55.62 9.98 8317.87 149.72 13.68 245.96 2.61 14.5212:01:01 AM dev8-16 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.0012:02:01 AM dev3-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.0012:02:01 AM dev3-64 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.0012:02:01 AM dev8-0 1.55 0.00 35.29 22.70 0.01 7.26 1.86 0.2912:02:01 AM dev8-16 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.0012:03:01 AM dev3-0 0.00 0.00 0,00 0,00 0,00 0,00 0,00 0,00 0,0012:03:01 AM dev3-64 0,00 0,00 0,00 0,00 0,00 0,00 0,00
DEV : cette colonne nomme les périphériques sur la machine, selon les numéros majeurs et mineurs d’un périphérique de bloc Linux. Vous pouvez vérifier cela en faisant un ls -l dans le répertoire /dev. comme indiqué ci-dessous.
brw-r----- 1 disque racine 8, 0 Nov 16 16:29 sdabrw-r----- 1 disque racine 8, 1 Nov 16 16:29 sda1brw-r----- 1 disque racine 8, 2 Nov 16:29 sda2
dans l’outut « ls -l » montré ci-dessus pour « sda », le numéro majeur est « 8 », et le numéro mineur est « 0 ».Vous pouvez donc facilement identifier le disque mentionné dans la sortie de la commande sar.
tps : tps signifie transfert par seconde, donc cela montre le transfert par seconde sur ce périphérique particulier
rd_sec/s : cela vous montre le nombre total de secteurs sur ce périphérique qui est en train d’être lu
wr_sec/s : si rd_sec/s est des secteurs en train d’être lu par seconde alors évidemment wr_sec est des secteurs en train d’être écrit par seconde.
avgrq-sz : cette colonne montre la moyenne.
await : cela montre le nombre total de temps pendant lequel le processeur a attendu des demandes concernant les IO
%util : cette colonne montre l’utilisation du cpu en pourcentage lorsque la demande a été générée
Show Memory usage in SAR command
l’option -r disponible dans la commande sar est très utile. Elle montre la mémoire, le swap, la mémoire cache etc à chaque intervalle ou à l’intervalle de temps requis.
02:20:01 AM kbmemfree kbmemused %memused kbbuffers kbcached kbswpfree kbswpused %swpused kbswpcad02:30:01 AM 609500 1487652 70.94 242420 777560 1075980 364 0.03 36002:40:01 AM 609500 1487652 70.94 242424 777568 1075980 364 0.03 36002:50:01 AM 609500 1487652 70.94 242424 777592 1075980 364 0.03 36003:00:01 AM 608980 1488172 70.96 2424 777600 1075980 364 0.03 36003:10:01 AM 608584 1488568 70.98 242424 777628 1075980 364 0.03 36003:20:01 AM 608584 1488568 70.98 2424 777648 1075980 364 0.03 360
Comment récupérer les métriques d’un jour particulier en utilisant SAR dans linux
# sar -f /var/log/sa/sa27Linux 2.6.18-194.el5xen (archive.r) 11/27/2012 02:20:01 AM CPU %user %nice %system %iowait %steal %idle02:30:01 AM all 2.58 0.00 0.70 1.12 0.05 95.5502:40:01 AM all 2.56 0.00 0.69 1.05 0.04 95.6602:50:01 AM all 2.64 0.00 0.65 1.15 0.05 95.5003:00:01 AM all 3.27 0.00 0.71 1.12 0.04 94.86
Comment récupérer les métriques SAR pour une heure spécifique à une date particulière
cela peut être réalisé en passant un autre argument comme indiqué ci-dessous.
# sar -f /var/log/sa/sa27 -s 02:20:00 -e 03:20:00Linux 2.6.18-194.el5xen (archive.r) 11/27/2012 02:20:01 AM CPU %user %nice %system %iowait %steal %idle02:30:01 AM all 2.58 0.00 0.70 1.12 0.05 95.5502:40:01 AM all 2.56 0.00 0.69 1.05 0.04 95.6602:50:01 AM all 2.64 0.00 0.65 1.15 0.05 95.5003:00:01 AM all 3.27 0.00 0.71 1.12 0.04 94.8603:10:01 AM tous 2.72 1.06 0.75 1.09 0.04 94.33Moyenne : tous 2.76 0.21 0.70 1.11 0.04 95.18
Specter les statistiques du réseau en utilisant la commande sar
la commande sar montre même les statistiques du réseau. Cela peut être fait en utilisant l’option -n DEV dans la commande sar.
# sar -n DEVLinux 2.6.18-194.el5xen (archive.r) 11/27/2012 02:20:01 AM IFACE rxpck/s txpck/s rxbyt/s txbyt/s rxcmp/s txcmp/s rxmcst/s02:30:01 AM lo 0.01 0.01 0.77 0.77 0.00 0.00 0.0002:30:01 AM eth0 12.30 0.12 1285.06 27.59 0.00 0.00 0.0002:30:01 AM eth1 14.45 0.00 1399.34 0.00 0.00 0.00 0.0002:30:01 AM sit0 0.00 0.00 0.00 0.00 0.00 0.00 0.0002:40:01 AM lo 0.01 0.01 0.77 0.77 0.00 0.00 0.0002:40:01 AM eth0 10.65 0.12 1139.38 27.00 0.00 0.00 0.00 0.0002:40:01 AM eth1 13.96 0.00 1352.87 0.00 0.00 0.00 0.00
IFACE : représente le nom de l’interface de la carte nic
rxpck/s : cela montre le total des paquets reçus par seconde
txpck/s:paquets transmis par seconde
rxcmp/s : paquets compressés reçus
txcmp/s : paquets compressés transmis
rxmcst/s : paquets multicast par seconde.
Quelques autres métriques qui peuvent être déterminées en utilisant sar
-y option dans sar : peut être utilisé pour déterminer les détails du tty
-X option dans sar pour obtenir les détails d’un processus particulier. Vous devez passer pid comme argument à cette option.
-n Option SOCK dans sar : cette option rapportera tous les détails des sockets.