GNU/Linux >> Tutoriels Linux >  >> Linux

Comment analyser les performances de base du système à l'aide de - vmstat, sar, iostat et mpstat

Dans cet article, un certain nombre d'outils de profilage de base inclus par défaut dans la plupart des systèmes Linux seront abordés. Les outils présentés dans cet article, vmstat, sar, iostat et mpstat, sont relativement simples mais fournissent des données de base qui peuvent être très utiles lors de l'analyse des performances d'un système. Pour la plupart des exemples, nous utiliserons une machine CentOS 8.

vmstat :statistiques de la mémoire virtuelle

vmstat est l'un des outils les plus utiles pour résoudre les problèmes de performances liés à la mémoire. La commande vmstat fait partie du procps-ng package, qui inclut d'autres commandes utiles d'analyse des performances telles que free et top.

La commande vmstat, si aucun argument n'est fourni, affichera les moyennes de diverses statistiques système depuis le démarrage. La commande vmstat accepte deux arguments. Le premier est le retard , et le second est le compte . Le délai est une valeur en secondes entre les sorties. Le décompte correspond au nombre d'itérations de statistiques à signaler. Si aucun compte n'est donné, vmstat rapportera en permanence des statistiques.

Les statistiques de mémoire sont rapportées en Kio par défaut. L'option -S permet de changer cela pour rapporter en Ko, Mo ou Mio avec -S k , -S m , et -S M , respectivement.

La première ligne de la sortie vmstat est toujours une moyenne depuis le démarrage, donc lors de la collecte des métriques, supprimez la première ligne et utilisez les lignes suivantes. Les deux premières lignes de sortie sont des informations d'en-tête et la troisième est la moyenne du temps de disponibilité. L'exemple suivant montre la sortie de vmstat à partir de la quatrième ligne de sortie :

# vmstat 10 | tail -n +4
 1  0      0 479748   1044 570784    0    0     0     5   90  132  0  0 100  0  0
 0  0      0 475952   1044 570912    0    0     0     0   81  130  0  0 100  0  0
 0  0      0 479456   1044 570856    0    0     0    52   87  137  0  0 100  0  0
...

Présentation des colonnes vmstat

exemples vmstat

1. La commande vmstat, si aucun argument n'est fourni, affichera les moyennes de diverses statistiques système depuis le démarrage :

# vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 0  0      0 424444   1044 615940    0    0    89    14   58   78  1  0 98  1  0

2. Voici un exemple où vmstat affichera des statistiques toutes les 10 secondes jusqu'à ce qu'il soit interrompu :

# vmstat 10
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 1  0      0 426440   1044 615872    0    0    88    14   58   78  1  0 98  1  0
 0  0      0 426072   1044 615872    0    0     0     1   92  137  0  0 100  0  0
 0  0      0 426072   1044 615872    0    0     0     5   74  116  0  0 100  0  0
 ...

3. Si vous vouliez que vmstat se ferme après l'impression de quatre rapports, ajoutez un argument count :

# vmstat 10 4
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 2  0      0 425236   1044 616252    0    0    86    13   58   78  1  0 98  1  0
 0  0      0 424936   1044 616252    0    0     0     1   85  129  0  0 100  0  0
 0  0      0 424876   1044 616252    0    0     0    15   70  111  0  0 100  0  0
 0  0      0 423360   1044 616252    0    0     0     1   89  130  0  0 100  0  0

sar :le rapport d'activité du système

La commande sar est un outil d'analyse polyvalent qui fait partie du package sysstat. Il fonctionne en deux modes. Il peut lire les données collectées par une tâche cron toutes les 10 minutes, ou il peut être utilisé pour collecter des données instantanées sur l'état du système.

Remarque  :La tâche cron est installée en tant que /etc/cron.d/sysstat , qui exécute les commandes /usr/lib64/sa/sa1 et /usr/lib64/sa/sa2 qui collectent des données à l'aide de /usr/lib64/sa/sadc et sar. Ces données sont stockées dans /var/log/sa/sadd, où jj est le jour du mois à deux chiffres.Remarque :Comme la commande vmstat, sar peut être exécuté avec des arguments delay et count pour rapporter des statistiques pour un certain nombre d'itérations et avec un délai spécifié entre chaque itération.

Assurez-vous que sar est installé avant de commencer. S'il n'est pas installé, installez-le en utilisant yum :

# yum install sysstat

Une fois installé, configurez sar pour collecter des données à intervalle de 5 minutes :

# vim /etc/cron.d/sysstat
# Run system activity accounting tool every 10 minutes
*/5 * * * * root /usr/lib64/sa/sa1 1 1

Pour de meilleurs résultats lors de l'utilisation de sar, assurez-vous de définir un paramètre régional avec une LANG variable d'environnement qui fournit un support 24 heures sur 24. Par exemple, si vous triez les données sar par la première colonne (la colonne de temps), le en_US.UTF-8 locale placera 13:00:00 avant 02:00:00. Cela est susceptible de fausser les points de données et de rendre un graphique sans valeur. La locale c est celle qui répond à cette exigence de tri. Lorsque vous traitez des données sar, remplacez les paramètres régionaux comme ceci :

# LANG=C sar -q
Linux 4.18.0-193.28.1.el8_2.x86_64 (2713138b141c.mylabserver.com) 	02/09/21 	_x86_64_	(2 CPU)

00:00:01       runq-sz   plist-sz    ldavg-l    ldavg-S    1davg-15     blocked
00:10:01             0        317       0.20       0.17        0.18           0
00:20:01             0        317       0.00       0.07        0.13           0
... Output Truncated ...

En fait, un alias peut simplement être créé pour sar. Ajoutez la ligne suivante à /etc/bashrc ou ~/.bashrc :

alias sar='LANG=C sar'

sar peut être utilisé pour lire l'un des fichiers journaux (ou n'importe quel fichier de données sar en général) en utilisant l'option -f.

# sar -q -f /var/log/sa/sa09
Linux 4.18.0-193.28.1.el8_2.x86_64 (2713138b141c.mylabserver.com) 	02/09/2021 	_x86_64_	(2 CPU)

00:00:01       runq-sz   plist-sz    ldavg-l    ldavg-S    1davg-15     blocked
00:10:01             0        317       0.20       0.17        0.18           0
00:20:01             0        317       0.00       0.07        0.13           0
... Output Truncated ...

Certaines configurations peuvent être effectuées dans /etc/sysconfig/sysstat dossier. Par exemple, modifiez l'HISTORIQUE variable pour définir le nombre de jours de conservation des archives pour sar.

exemples sar

1. Créez un alias à l'échelle du système pour sar qui oblige sar à signaler au format 24 heures. Source ceci dans le shell actuel.

# echo "alias sar='LANG=c sar'" >> /etc/bashrc
# source /etc/bashrc

2. Conservez 60 jours d'archives au lieu de 28. Modifiez la variable HISTORY dans /etc/sysconfig/sysstat.

# vim /etc/sysconfig/sysstat
HISTORY=60

3. Rapportez les statistiques d'E/S et de taux de transfert :

# sar -b
Linux 5.4.10-x86_64-linode132 (mylabserver.com) 	02/09/2021 	_x86_64_	(1 CPU)

12:00:02 AM       tps      rtps      wtps   bread/s   bwrtn/s
12:10:01 AM     38.16     31.03      7.14   1655.33    390.20
12:20:01 AM     12.11      5.81      6.30    280.99    239.08
12:30:01 AM      8.40      2.34      6.06    105.99    229.95
12:40:01 AM      7.38      1.62      5.76     23.48    211.41
12:50:01 AM      8.69      2.64      6.04    125.33    230.58
01:00:01 AM      8.09      2.26      5.83     77.72    227.70
01:10:02 AM     12.25      6.10      6.15    215.14    235.73
...
Average:        12.81      6.41      6.40    343.31    255.49

4. Signalez l'utilisation de CPU0 :

# sar -P 0
Linux 5.4.10-x86_64-linode132 (web.thegeekdiary.com) 	02/09/2021 	_x86_64_	(1 CPU)

12:00:02 AM     CPU     %user     %nice   %system   %iowait    %steal     %idle
12:10:01 AM       0     11.69      0.00      2.96      0.28      0.06     85.01
12:20:01 AM       0      9.87      0.00      2.53      0.12      0.04     87.44
12:30:01 AM       0      9.96      0.00      2.48      0.09      0.04     87.43
12:40:01 AM       0      9.59      0.00      2.43      0.06      0.04     87.88
12:50:01 AM       0      9.80      0.00      2.46      0.09      0.05     87.59
...
Average:          0     10.00      0.02      2.60      0.14      0.15     87.08

5. Rapportez les statistiques du périphérique réseau à partir du fichier journal actuel.

# sar -n DEV
Linux 5.4.10-x86_64-linode132 (mylabserver.com) 	02/09/2021 	_x86_64_	(1 CPU)

12:00:02 AM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
12:10:01 AM    dummy0      0.00      0.00      0.00      0.00      0.00      0.00      0.00
12:10:01 AM     tunl0      0.00      0.00      0.00      0.00      0.00      0.00      0.00
12:10:01 AM   ip_vti0      0.00      0.00      0.00      0.00      0.00      0.00      0.00
12:10:01 AM   ip6gre0      0.00      0.00      0.00      0.00      0.00      0.00      0.00
12:10:01 AM     teql0      0.00      0.00      0.00      0.00      0.00      0.00      0.00
12:10:01 AM      sit0      0.00      0.00      0.00      0.00      0.00      0.00      0.00
...
Average:       dummy0      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:        tunl0      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:      ip_vti0      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:      ip6gre0      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:        teql0      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:         sit0      0.00      0.00      0.00      0.00      0.00      0.00      0.00
...

6. Configurez une tâche cron supplémentaire pour collecter des données d'utilisation de l'alimentation en plus des données du disque. Modifiez les éléments suivants dans le fichier /etc/sysconfig/sysstat :

SADC_OPTIONS="-S POWER"

iostat et mpstat

Comme sar, iostat et mpstat font également partie du package sysstat. iostat et mpstat prennent en charge les arguments delay et count, tout comme la commande vmstat. iostat rapporte les statistiques de CPU et d'E/S pour les périphériques. partitions et systèmes de fichiers réseau (NFS).

La commande mpstat rapporte les statistiques liées au processeur. Comme sar, il peut être nécessaire de configurer le LANG pour une heure de 24 heures.

exemples iostat et mpstat

1. Afficher la sortie étendue pour /dev/sda.

# iostat -x sda
Linux 5.4.10-x86_64-linode132 (mylabserver.com) 	02/09/2021 	_x86_64_	(1 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           8.12    0.08    2.85    0.09    0.24   88.63

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               1.76     7.13    3.55    4.17   122.57    93.88    56.07     0.00    0.83    0.71    0.93   0.88   0.68

2. Afficher les statistiques du processeur pour CPU0 :

# LANG=C mpstat -P 0
Linux 5.4.10-x86_64-linode132 (mywebserver.com) 	02/09/21 	_x86_64_	(1 CPU)

06:32:13     CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
06:32:13       0    8.12    0.08    2.37    0.09    0.22    0.25    0.24    0.00    0.00   88.63


Linux
  1. Comment vérifier la version du système d'exploitation et de Linux

  2. Comment analyser et comparer des images de conteneurs à l'aide de Container-diff

  3. Comment sauvegarder et restaurer les paramètres d'application à l'aide de Mackup sur un système Linux nouvellement installé

  4. Division de base utilisant une variable et un entier ?

  5. 24 Exemples iostat, vmstat et mpstat pour la surveillance des performances Linux

Comment identifier le système d'exploitation à l'aide de la valeur TTL et de la commande Ping

Comment installer et utiliser Git dans le système Linux

Comment utiliser la commande DD et comment graver ISO en l'utilisant

Comment installer et utiliser la commande SAR (pour surveiller les performances du système) sous Linux

Comment installer et configurer Redis sur le système Linux

Utilisation de vmstat pour résoudre les problèmes de performances sous Linux