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