GNU/Linux >> Tutoriels Linux >  >> Linux

10 Commande Linux iostat pour rapporter les statistiques du CPU et des E/S

La commande Iostat est utilisée pour surveiller la charge des périphériques d'entrée/sortie (E/S) du système en observant le temps pendant lequel les périphériques sont actifs par rapport à leurs taux de transfert moyens. L'iostat crée des rapports qui peuvent être utilisés pour modifier la configuration du système afin de mieux équilibrer les entrées/sorties entre les disques physiques.

Iostat est inclus dans sysstat emballer. Iostat est installé par défaut dans la plupart des distributions Linux.

Si vous ne l'avez pas, vous devez d'abord l'installer.

Sur RedHat / CentOS / Fedora

$ yum install sysstat

Sur Debian / Ubuntu / Linux Mint

$ apt-get install sysstat

Lorsque la commande est exécutée sans arguments, elle génère un rapport détaillé contenant des informations depuis le démarrage du système . Vous pouvez fournir deux paramètres facultatifs pour modifier cela :

iostat [option] [interval] [count]
  • intervalle paramètre spécifie la durée en secondes entre chaque rapport
  • Compter Le paramètre vous permet de spécifier le nombre de rapports générés avant la sortie d'iostat.

Lorsque la commande est exécutée pour la première fois avec ces arguments, le premier rapport contient des informations depuis le démarrage du système, tandis que chaque rapport suivant couvre la période depuis la génération du dernier rapport.

$ iostat 2 3
Linux 3.10.0-514.16.1.el7.x86_64 (centos-01) 	05/23/2017 	_x86_64_  (1 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.65    0.00    0.18    0.02    0.00   99.15

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
vda               0.88         4.29         7.07     217829     358600

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           1.01    0.00    0.50    0.00    0.00   98.49

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
vda               0.50         0.00         2.01          0          4

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           3.00    0.00    0.50    0.00    0.00   96.50

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
vda               1.00         0.00        30.00          0         60

1. Obtenir un rapport et des statistiques

iostat par défaut sans aucune option affiche le rapport statistique composé du CPU et des périphériques.

$ iostat

Sortie :

Linux 3.10.0-514.16.1.el7.x86_64 (centos-01) 	05/22/2017 	_x86_64   (1 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.69    0.00    0.19    0.02    0.04   99.08

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
vda               1.00         3.40        14.08    1552428    6423128

La première section contient le rapport CPU

  • %utilisateur : pourcentage d'utilisation du processeur qui s'est produit lors de l'exécution au niveau de l'utilisateur (application)
  • %bien : pourcentage d'utilisation du processeur qui s'est produit lors de l'exécution au niveau de l'utilisateur avec une bonne priorité
  • %système : pourcentage d'utilisation du processeur qui s'est produit lors de l'exécution au niveau du système (noyau)
  • %j'attends : pourcentage du temps d'inactivité du ou des processeurs pendant lequel le système a eu une requête d'E/S disque en attente
  • %vol : pourcentage de temps passé en attente involontaire par le ou les processeurs virtuels pendant que l'hyperviseur servait un autre processeur virtuel
  • %inactif : pourcentage de temps pendant lequel le ou les processeurs étaient inactifs et le système n'avait pas de requête d'E/S disque en attente

La deuxième section contient le rapport d'utilisation de l'appareil

  • Appareil : nom de périphérique/partition tel qu'indiqué dans /dev répertoire
  • tps : nombre de transferts par seconde émis vers l'appareil. Un tps plus élevé signifie que le processeur est plus occupé
  • Blk_read/s : affiche la quantité de données lues à partir de l'appareil exprimée en nombre de blocs (kilooctets, mégaoctets) par seconde
  • Blk_wrtn/s : quantité de données écrites sur l'appareil exprimée en nombre de blocs (kilooctets, mégaoctets) par seconde
  • Blk_read : afficher le nombre total de blocs lus
  • Blk_wrtn : afficher le nombre total de blocs écrits

iostat utilise les fichiers suivants pour créer des rapports :

  • /proc/stat contient des statistiques système.
  • /proc/uptime contient la disponibilité du système.
  • /proc/diskstats contient des statistiques sur les disques.
  • /sys contient des statistiques pour les périphériques de bloc.
  • /proc/self/mountstats contient des statistiques pour les systèmes de fichiers réseau.
  • /dev/disk contient des noms d'appareils persistants.

2. Afficher plus d'informations statistiques détaillées

La commande Iostat donne l'utilisation des rapports des périphériques d'E/S. Il est possible d'étendre le résultat statistique pour un diagnostic approfondi avec l'option -x .

$ iostat -x

Sortie :

Linux 3.10.0-514.16.1.el7.x86_64 (centos-01) 	05/23/2017 	_x86_64_	(1 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.69    0.00    0.19    0.02    0.04   99.06

Device: rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
vda     0.01     1.10    0.16    0.84     3.37    14.04    34.88     0.00    2.35    1.41    2.53   0.40   0.04
  • avg-cpu : ce sont les informations du bloc CPU
  • Diviser : ce sont des informations de bloc de périphérique. Pour être sûr d'être sur le bon appareil
  • %util  :combien de temps le périphérique de stockage a-t-il eu un travail en attente (était occupé).
  • svctm :indiquez à quelle vitesse votre sous-système d'E/S répond globalement aux demandes lorsqu'il est occupé. En fait, moins vous chargez votre système, plus svctm est élevé.
  • attendre :indique la vitesse à laquelle les requêtes passent. Ce n'est qu'une moyenne.
  • avgqu-sz :combien de requêtes y a-t-il dans une file d'attente de requêtes. Faible =soit votre système n'est pas chargé, soit il a des E/S sérialisées et ne peut pas utiliser correctement le stockage sous-jacent. Élevé =votre pile logicielle est suffisamment évolutive pour charger correctement les E/S sous-jacentes.
  • avgrq-sz  :Juste une taille de requête moyenne. peut indiquer le type de charge de travail qui se produit.
  • wsec/s &rsec/s :Secteurs lus et écrits par seconde. Divisez par 2 048 et vous obtiendrez des mégaoctets par seconde.
  • r/s &avec :Requêtes de lecture et d'écriture par seconde. Ces chiffres sont ceux qui correspondent aux chiffres de la capacité d'E/S, bien que, bien sûr, en fonction de la pression sous-jacente du sous-système d'E/S (taille de la file d'attente !), ils peuvent varier.
  • rrqm/s &wrqm/s  :Combien de requêtes ont été fusionnées par couche de bloc.

3. Afficher uniquement les statistiques du processeur

Il est possible d'afficher des informations statistiques et un rapport de notre processeur avec -c possibilité

$ iostat -c

Sortie :

Linux 4.4.0-78-generic (shinigami) 	05/23/2017 	_x86_64_	(4 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
          12.93    0.08    2.40    3.35    0.00   81.24

4. Afficher uniquement le rapport sur l'appareil

Il est possible d'afficher uniquement l'état d'utilisation de l'appareil avec -d option. Il listera les informations pour chaque appareil connecté.

$ iostat -d

Sortie :

Linux 4.4.0-78-generic (shinigami) 	05/23/2017 	_x86_64_	(4 CPU)

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda              17.73       510.80       632.10    5127420    6345037
mmcblk0           0.03         0.63         0.00       6282          0

5. Afficher les statistiques d'E/S étendues pour l'appareil uniquement

Nous pouvons afficher des statistiques étendues d'un côté et de l'autre côté, nous pouvons afficher des statistiques étendues. Cela signifie que nous pouvons afficher des statistiques étendues uniquement pour les appareils avec l'option -xd .

$ iostat -xd

Sortie :

$ iostat -xd
Linux 4.4.0-78-generic (shinigami) 	05/23/2017 	_x86_64_	(4 CPU)

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               0.48    25.33    8.43    7.81   417.06   540.42   117.88     1.18   72.83   35.98  112.62   6.18  10.03
mmcblk0           0.30     0.00    0.02    0.00     0.49     0.00    49.47     0.00    3.73    3.73    4.00   2.99   0.01

6. Capturez les statistiques en kilo-octets ou mégaoctets

Par défaut, iostat mesure le système d'E/S avec l'unité d'octets. Pour faciliter la lecture, nous pouvons convertir iostat pour afficher les rapports en kilo-octets ou en mégaoctets.

Ajoutez simplement l'option -k pour créer des rapports avec l'unité de kilo-octets.

$ iostat -k

Sortie :

Linux 4.4.0-78-generic (shinigami) 	05/23/2017 	_x86_64_	(4 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
          12.54    0.08    2.37    3.41    0.00   81.61

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda              16.18       345.76       504.55    5622164    8204113
mmcblk0           0.02         0.39         0.00       6282          0

L'option -m pour créer des rapports avec une unité de mégaoctets.

$ iostat -m
Linux 4.4.0-78-generic (shinigami) 	05/23/2017 	_x86_64_	(4 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
          12.54    0.08    2.37    3.41    0.00   81.61

Device:            tps    MB_read/s    MB_wrtn/s    MB_read    MB_wrtn
sda              16.18         0.34         0.49       5490       8012
mmcblk0           0.02         0.00         0.00          6          0

7. Afficher les statistiques du processeur et de l'appareil avec un délai

Idem avec vmstat, en tant qu'outil statistique, la meilleure façon de l'utiliser est avec le paramètre de retard. Avec le retard, nous pouvons voir quelle est la tendance. Voici quelques exemples pour exécuter iostat avec retard.

Exécutez iostat avec l'unité de kilo-octets, intervalle de 2 secondes avec 3 fois les rapports.

$ iostat -k 2 3

Sortie :

Linux 3.10.0-514.16.1.el7.x86_64 (centos-01) 	05/23/2017 	_x86_64_	(1 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.70    0.00    0.19    0.02    0.03   99.05

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
vda               1.00         3.33        14.03    1561788    6572152

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.50    0.00    0.00    0.00    0.00   99.50

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
vda               0.00         0.00         0.00          0          0

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           3.52    0.00    0.50    0.00    0.00   95.98

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
vda               1.51         0.00        12.06          0         24

Pour afficher le rapport CPU uniquement avec un intervalle de 2 secondes et des rapports 2 fois, tapez :

$ iostat -c 2 2
Linux 3.10.0-514.16.1.el7.x86_64 (centos-01) 	05/23/2017 	_x86_64_	(1 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.71    0.00    0.19    0.02    0.03   99.05

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           1.50    0.00    0.00    0.00    0.00   98.50

Pour afficher les rapports des appareils sda6 et sda7 uniquement avec un intervalle de 2 secondes et des rapports 2 fois, exécutez :

$ iostat -d sda7 sda6 2 2

Sortie :


Linux 4.4.0-78-generic (shinigami) 	05/23/2017 	_x86_64_	(4 CPU)

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda6              3.40       108.29       130.75    1928577    2328496
sda7             12.19       211.96       305.79    3774804    5445696

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda6              0.00         0.00         0.00          0          0
sda7              1.00         0.00        24.00          0         48

8. Afficher des statistiques persistantes sur les noms d'appareils

Il est possible d'imprimer le rapport par nom d'appareil. Au lieu du standard /dev/sda nom, il imprimera le nom du périphérique persistant en utilisant l'option -j et en ajoutant ID mot-clé (spécifiez le type du nom persistant).

$ iostat -j ID mmcbkl0 sda6 -x -m 2 2 

Sortie :

Linux 4.4.0-78-generic (shinigami) 	05/23/2017 	_x86_64_	(4 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
          14.33    0.10    2.48    3.26    0.00   79.83

Device:  rrqm/s   wrqm/s     r/s     w/s    rMB/s    wMB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
ata-ST500LT012-1DG142_S3P4312X-part6
         0.19     0.88    2.51    0.82     0.10     0.12   138.36     0.21   61.81   57.12   76.12  10.81   3.60

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
          19.40    0.00    1.25    0.63    0.00   78.72

Device:  rrqm/s   wrqm/s     r/s     w/s    rMB/s    wMB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
ata-ST500LT012-1DG142_S3P4312X-part6
         0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00

9. Afficher les  statistiques  pour les  appareils de blocage

Il est possible d'afficher directement des informations pour chaque périphérique de bloc automatiquement. Pas besoin d'indiquer le nom de chaque appareil. Il affichera des statistiques pour les périphériques de bloc et toutes leurs partitions utilisées par le système. Si un nom de périphérique est entré sur la ligne de commande, les statistiques de celui-ci et de toutes ses partitions sont affichées. Utilisez simplement -p possibilité

$ iostat -p

Sortie :

Linux 4.4.0-78-generic (shinigami) 	05/23/2017 	_x86_64_	(4 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
          14.93    0.10    2.51    3.19    0.00   79.28

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda              15.82       297.18       474.87    5928512    9473117
sda1              0.00         0.11         0.00       2108          0
sda2              0.01         0.28         0.00       5679          1
sda3              0.00         0.10         0.00       2084          0
sda4              0.00         0.10         0.00       2092          0
sda5              0.09         0.77        45.62      15428     910068
sda6              3.26       102.76       117.09    2049957    2335908
sda7             12.09       192.75       306.99    3845120    6124136
sda8              0.12         0.20         5.16       3896     103004
mmcblk0           0.01         0.31         0.00       6282          0
mmcblk0p1         0.01         0.26         0.00       5242          0
$ iostat -p sdf 1 2
Linux 3.10.0-514.16.1.el7.x86_64 (centos7-srv) 	05/23/2017 	_x86_64_	(1 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           7.18    0.41    3.94    4.10    0.00   84.37

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sdf               0.47         3.54         0.00       4656          0
sdf1              0.09         0.70         0.00        920          0
sdf2              0.09         0.69         0.00        904          0
sdf3              0.09         0.69         0.00        904          0
sdf4              0.09         0.69         0.00        904          0

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           6.00    1.00    2.00    0.00    0.00   91.00

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sdf               0.00         0.00         0.00          0          0
sdf1              0.00         0.00         0.00          0          0
sdf2              0.00         0.00         0.00          0          0
sdf3              0.00         0.00         0.00          0          0
sdf4              0.00         0.00         0.00          0          0

10. Afficher les informations statistiques lvm2

Il est possible de visualiser les statistiques LVM en utilisant l'option -N . La commande affiche les noms de mappeur de périphérique enregistrés pour tous les périphériques de mappage de périphérique.

$ iostat -N

Conclusion

Nous pouvons dire à iostat d'omettre la sortie pour tous les appareils pour lesquels il n'y a eu aucune activité pendant la période d'échantillonnage avec -z option.

L'un des avantages de cet outil est que vous pouvez les exécuter sans privilège root. Vous pouvez creuser plus profondément en explorant la page de manuel d'iostat en tapant man iostat dans votre console pour amener la page de manuel iostat.

Lire aussi :

  • Comment surveiller les performances de Linux à l'aide de la commande Sar
  • 14 outils de ligne de commande pour vérifier l'utilisation du processeur sous Linux

Linux
  1. Rapports d'E/S à partir de la ligne de commande Linux

  2. Commandes Linux :jobs, bg et fg

  3. Linux et ports de complétion d'E/S ?

  4. Évaluation de l'attente d'E/S CPU sous Linux

  5. Commande top Linux :Que sommes-nous, sy, ni, id, wa, hi, si et st (pour l'utilisation du processeur) ?

Commande iostat sous Linux

Comment vérifier les informations du processeur sous Linux

Comment installer et utiliser la commande fd sous Linux

Options de commande et exemples de commande Tee sous Linux

Un guide de la commande vmstat sous Linux

Exemples de commandes iostat sous Linux