Cet article fournit un total de 24 exemples sur les commandes iostat, vmstat et mpstat.
- iostat fournit des statistiques sur le processeur, les E/S de disque et NFS.
- vmstat fournit des statistiques sur la mémoire virtuelle.
- mpstat signale les statistiques des processeurs.
Cet article fait partie de notre série continue de surveillance des performances Linux.
Veuillez noter que iostat et vmstat font partie de l'utilitaire sar. Vous devez installer le package sysstat comme expliqué dans notre article sar (sysstat) pour faire fonctionner iostat et vmstat.
EXEMPLES IOSTAT
1. iostat – Exemple de base
Iostat sans aucun argument affiche des informations sur l'utilisation du processeur et des statistiques d'E/S sur toutes les partitions du système, comme indiqué ci-dessous.
$ iostat Linux 2.6.32-100.28.5.el6.x86_64 (dev-db) 07/09/2011 avg-cpu: %user %nice %system %iowait %steal %idle 5.68 0.00 0.52 2.03 0.00 91.76 Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn sda 194.72 1096.66 1598.70 2719068704 3963827344 sda1 178.20 773.45 1329.09 1917686794 3295354888 sda2 16.51 323.19 269.61 801326686 668472456 sdb 371.31 945.97 1073.33 2345452365 2661206408 sdb1 371.31 945.95 1073.33 2345396901 2661206408 sdc 408.03 207.05 972.42 513364213 2411023092 sdc1 408.03 207.03 972.42 513308749 2411023092
2. iostat - Afficher uniquement les statistiques du processeur
L'option iostat -c affiche uniquement les statistiques d'utilisation du processeur, comme indiqué ci-dessous.
$ iostat -c Linux 2.6.32-100.28.5.el6.x86_64 (dev-db) 07/09/2011 avg-cpu: %user %nice %system %iowait %steal %idle 5.68 0.00 0.52 2.03 0.00 91.76
3. iostat - Afficher uniquement les statistiques d'E/S du disque
L'option iostat -d affiche uniquement les statistiques d'E/S du disque, comme indiqué ci-dessous.
$ iostat -d Linux 2.6.32-100.28.5.el6.x86_64 (dev-db) 07/09/2011 Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn sda 194.71 1096.61 1598.63 2719068720 3963827704 sda1 178.20 773.41 1329.03 1917686810 3295355248 sda2 16.51 323.18 269.60 801326686 668472456 sdb 371.29 945.93 1073.28 2345452365 2661209192 sdb1 371.29 945.91 1073.28 2345396901 2661209192 sdc 408.01 207.04 972.38 513364213 2411024484 sdc1 408.01 207.02 972.38 513308749 2411024484
4. iostat - Afficher uniquement les statistiques du réseau
L'option iostat -n affiche uniquement les statistiques de périphérique et NFS, comme indiqué ci-dessous.
$ iostat -n Linux 2.6.32-100.28.5.el6.x86_64 (dev-db) 07/09/2011 avg-cpu: %user %nice %sys %iowait %idle 4.33 0.01 1.16 0.31 94.19 Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn sda 2.83 0.35 5.39 29817402 457360056 sda1 3.32 50.18 4.57 4259963994 387641400 sda2 0.20 0.76 0.82 64685128 69718576 sdb 6.59 15.53 42.98 1318931178 3649084113 sdb1 11.80 15.53 42.98 1318713382 3649012985 Device: rBlk_nor/s wBlk_nor/s rBlk_dir/s wBlk_dir/s rBlk_svr/s wBlk_svr/s 192.168.1.4:/home/data 90.67 0.00 0.00 0.00 5.33 0.00 192.168.1.4:/backup 8.74 0.00 0.00 0.00 8.74 0.00 192.168.1.8:/media 0.02 0.00 0.00 0.00 0.01 0.00
5. iostat - Afficher les données d'E/S en Mo/seconde
Par défaut, iostat affiche les statistiques d'E/S de l'appareil dans les blocs. Pour le changer en Mo, utilisez -m comme indiqué ci-dessous.
$ iostat -m Linux 2.6.32-100.28.5.el6.x86_64 (dev-db) 07/09/2011 avg-cpu: %user %nice %system %iowait %steal %idle 5.68 0.00 0.52 2.03 0.00 91.76 Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn sda 194.70 0.54 0.78 1327670 1935463 sda1 178.19 0.38 0.65 936370 1609060 sda2 16.51 0.16 0.13 391272 326402 sdb 371.27 0.46 0.52 1145240 1299425 sdb1 371.27 0.46 0.52 1145213 1299425 sdc 407.99 0.10 0.47 250666 1177259 sdc1 407.99 0.10 0.47 250639 1177259
6. iostat - Afficher les statistiques d'E/S uniquement pour un appareil
Par défaut, iostat affiche les données d'E/S pour tous les disques disponibles dans le système. Pour afficher les statistiques d'un périphérique spécifique (par exemple, /dev/sda), utilisez l'option -p comme indiqué ci-dessous.
$ iostat -p sda Linux 2.6.32-100.28.5.el6.x86_64 (dev-db) 07/09/2011 avg-cpu: %user %nice %system %iowait %steal %idle 5.68 0.00 0.52 2.03 0.00 91.76 Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn sda 194.69 1096.51 1598.48 2719069928 3963829584 sda2 336.38 27.17 54.00 67365064 133905080 sda1 821.89 0.69 243.53 1720833 603892838
7. iostat - Afficher les informations d'horodatage
Par défaut, iostat affiche uniquement la date actuelle. Pour afficher l'heure actuelle, utilisez l'option -t comme indiqué ci-dessous.
$ iostat -t Linux 2.6.32-100.28.5.el6.x86_64 (dev-db) 07/09/2011 Time: 08:57:52 AM avg-cpu: %user %nice %system %iowait %steal %idle 5.68 0.00 0.52 2.03 0.00 91.76 Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn sda 194.69 1096.49 1598.45 2719070384 3963829704 sda1 178.18 773.32 1328.88 1917688474 3295357248 sda2 16.51 323.14 269.57 801326686 668472456 sdb 371.25 945.82 1073.16 2345452741 2661228872 sdb1 371.25 945.80 1073.16 2345397277 2661228872 sdc 407.97 207.02 972.27 513364233 2411030200 sdc1 407.97 207.00 972.27 513308769 2411030200
8. iostat - Afficher l'état étendu
Utilisez l'option -x, qui affichera des informations statistiques étendues sur les E/S du disque, comme indiqué ci-dessous.
$ iostat -x Linux 2.6.32-100.28.5.el6.x86_64 (dev-db) 07/09/2011 avg-cpu: %user %nice %system %iowait %steal %idle 5.68 0.00 0.52 2.03 0.00 91.76 Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util sda 27.86 63.53 61.77 132.91 1096.46 1598.40 13.84 0.21 1.06 2.28 44.45 sda1 0.69 33.22 48.54 129.63 773.30 1328.84 11.80 1.39 7.82 2.28 40.57 sda2 27.16 30.32 13.23 3.28 323.13 269.56 35.90 0.55 32.96 3.44 5.68 sdb 39.15 215.16 202.20 169.04 945.80 1073.13 5.44 1.05 2.78 1.64 60.91 sdb1 39.15 215.16 202.20 169.04 945.77 1073.13 5.44 1.05 2.78 1.64 60.91 sdc 8.90 3.63 356.56 51.40 207.01 972.24 2.89 1.04 2.56 1.55 63.30 sdc1 8.90 3.63 356.55 51.40 206.99 972.24 2.89 1.04 2.56 1.55 63.30
Pour afficher des informations étendues pour une partition spécifique (par exemple, /dev/sda1), procédez comme suit.
$ iostat -x sda1 Linux 2.6.32-100.28.5.el6.x86_64 (dev-db) 07/09/2011 avg-cpu: %user %nice %system %iowait %steal %idle 5.68 0.00 0.52 2.03 0.00 91.76 Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util sda1 0.69 33.21 48.54 129.62 773.23 1328.76 11.80 1.39 7.82 2.28 40.56
9. iostat - Exécuter toutes les x secondes (pour y nombre de fois)
Pour exécuter iostat toutes les 2 secondes (jusqu'à ce que vous appuyiez sur Ctrl-C), procédez comme suit.
$ iostat 2 Linux 2.6.32-100.28.5.el6.x86_64 (dev-db) 07/09/2011 avg-cpu: %user %nice %system %iowait %steal %idle 5.68 0.00 0.52 2.03 0.00 91.76 Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn sda 194.67 1096.39 1598.33 2719070584 3963891256 sda1 178.16 773.26 1328.79 1917688482 3295418672 sda2 16.51 323.11 269.54 801326878 668472584 sdb 371.22 945.74 1073.08 2345454041 2661251200 sdb1 371.22 945.72 1073.08 2345398577 2661251200 sdc 407.93 207.00 972.19 513366813 2411036564 sdc1 407.93 206.98 972.19 513311349 2411036564 ..
Pour exécuter toutes les 2 secondes pour un total de 3 fois, procédez comme suit.
$ iostat 2 3
10. iostat - Afficher les statistiques LVM (et la version)
Pour afficher les statistiques LVM, utilisez l'option -N comme indiqué ci-dessous.
$ iostat -N
Pour afficher la version d'iostat, utilisez -V. Cela affichera vraiment les informations de version de sysstat, car iostat fait partie du package sysstat.
$ iostat -V sysstat version 7.0.2 (C) Sebastien Godard
EXEMPLES VMSTAT
11. vmstat - Exemple de base
vmstat par défaut affichera l'utilisation de la mémoire (y compris l'échange) comme indiqué ci-dessous.
$ 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 305416 260688 29160 2356920 2 2 4 1 0 0 6 1 92 2 0
La sortie de vmstat contient les champs suivants :
- Procs – r :nombre total de processus en attente d'exécution
- Procs – b :nombre total de processus occupés
- Mémoire – swpd :mémoire virtuelle utilisée
- Mémoire – gratuite :mémoire virtuelle gratuite
- Mémoire - buff :mémoire utilisée comme tampons
- Mémoire - cache :mémoire utilisée comme cache.
- Swap - si :mémoire échangée à partir du disque (pour chaque seconde)
- Swap – donc :mémoire échangée sur le disque (pour chaque seconde)
- IO – bi : blocs entrants, c'est-à-dire les blocs reçus de l'appareil (pour chaque seconde)
- IO – bo :Blocage. c'est-à-dire les blocs envoyés à l'appareil (pour chaque seconde)
- Système – in : Interruptions par seconde
- Système – cs :commutateurs de contexte
- CPU – us, sy, id, wa, st :temps utilisateur CPU, temps système, temps d'inactivité, temps d'attente
12. vmstat - Afficher la mémoire active et inactive
Par défaut, vmstat n'affiche pas ces informations. Utilisez l'option -a pour afficher les informations de mémoire active et inactive comme indiqué ci-dessous.
$ vmstat -a procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------ r b swpd free inact active si so bi bo in cs us sy id wa st 0 0 305416 253820 1052680 2688928 2 2 4 1 0 0 6 1 92 2 0
13. vmstat - Afficher le nombre de fourches depuis le dernier démarrage
Cela affiche tous les appels système fork effectués par le système depuis le dernier démarrage. Cela affiche tous les décomptes d'appels système fork, vfork et clone.
$ vmstat -f 81651975 forks
14. vmstat - Exécuter toutes les x secondes (pour y nombre de fois)
Pour exécuter toutes les 2 secondes, procédez comme suit. Vous devez appuyer sur Ctrl-C pour arrêter cela.
$ vmstat 2 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 537144 182736 6789320 0 0 0 0 1 1 0 0 100 0 0 0 0 0 537004 182736 6789320 0 0 0 0 50 32 0 0 100 0 0 ..
Pour exécuter toutes les 2 secondes 10 fois, procédez comme suit. Vous n'avez pas besoin d'appuyer sur Ctrl-C dans ce cas. Après 10 exécutions, il s'arrêtera automatiquement.
$ vmstat 2 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 537144 182736 6789320 0 0 0 0 1 1 0 0 100 0 0 0 0 0 537004 182736 6789320 0 0 0 0 50 32 0 0 100 0 0 ..
15. vmstat - Affichage de l'horodatage
Lorsque vous utilisez vmstat pour surveiller l'utilisation de la mémoire de manière répétée, il serait agréable de voir l'horodatage avec chaque élément de ligne. Utilisez l'option -t pour afficher l'horodatage comme indiqué ci-dessous.
$ vmstat -t 1 100 procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------ ---timestamp--- r b swpd free buff cache si so bi bo in cs us sy id wa st 0 0 0 3608728 148368 3898200 0 0 0 0 1 1 0 0 100 0 0 2011-07-09 21:16:28 PDT 0 0 0 3608728 148368 3898200 0 0 0 0 60 15 0 0 100 0 0 2011-07-09 21:16:29 PDT 0 0 0 3608712 148368 3898200 0 0 0 0 32 28 0 0 100 0 0 2011-07-09 21:16:30 PDT
Pour moi, l'option d'horodatage a fonctionné dans la version suivante.
$ vmstat -V procps version 3.2.8
Remarque : Si vous utilisez une ancienne version de vmstat, l'option -t peut ne pas être disponible. Dans ce cas, utilisez la méthode que nous avons suggérée précédemment pour afficher l'horodatage dans la sortie vmstat.
16. vmstat - Afficher les informations sur la dalle
Utilisez l'option -m pour afficher les informations sur la dalle comme indiqué ci-dessous.
$ vmstat -m Cache Num Total Size Pages fib6_nodes 5 113 32 113 ip6_dst_cache 4 15 256 15 ndisc_cache 1 15 256 15 RAWv6 7 10 768 5 UDPv6 0 0 640 6 tw_sock_TCPv6 0 0 128 30 ...
17. vmstat - Afficher les statistiques sous forme de tableau
Au lieu d'afficher les valeurs dans le format d'enregistrement, vous pouvez afficher la sortie de vmstat sous forme de tableau en utilisant l'option -s comme indiqué ci-dessous.
$ vmstat -s 4149928 total memory 3864824 used memory 2606664 active memory 1098180 inactive memory 285104 free memory 19264 buffer memory 2326692 swap cache 4192956 total swap 274872 used swap 3918084 free swap 1032454000 non-nice user cpu ticks 14568 nice user cpu ticks 89482270 system cpu ticks 16674327143 idle cpu ticks 368965706 IO-wait cpu ticks 1180468 IRQ cpu ticks ..
18. vmstat - Afficher les statistiques du disque
Utilisez l'option -d pour afficher les statistiques du disque comme indiqué ci-dessous. Ceci affiche les lectures, les écritures et les statistiques d'E/S du disque.
$ vmstat -d disk- ------------reads------------ ------------writes----------- -----IO------ total merged sectors ms total merged sectors ms cur sec sda 153189971 69093708 2719150864 737822879 329617713 157559204 3965687592 4068577985 0 1102243 sdb 501426305 97099356 2345472425 731613156 419220973 533565961 2661869460 1825174087 0 1510434 sdc 884213459 22078974 513390701 452540172 127474901 8993357 2411187300 2133226954 0 1569758
19. vmstat - Augmenter la largeur de l'affichage
La sortie par défaut sans augmenter la largeur est illustrée ci-dessous.
$ vmstat 1 3 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 3608688 148368 3898204 0 0 0 0 1 1 0 0 100 0 0 0 0 0 3608804 148368 3898204 0 0 0 0 72 30 0 0 100 0 0 0 0 0 3608804 148368 3898204 0 0 0 0 60 27 0 0 100 0 0
Utilisez l'option -w pour augmenter la largeur des colonnes de sortie comme indiqué ci-dessous. Cela donne une meilleure lisibilité.
$ vmstat -w 1 3 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 3608712 148368 3898204 0 0 0 0 1 1 0 0 100 0 0 0 0 0 3608712 148368 3898204 0 0 0 0 93 23 0 0 100 0 0 0 0 0 3608696 148368 3898204 0 0 0 0 35 34 0 0 100 0 0
20. vmstat - Afficher les statistiques d'une partition
Pour afficher les statistiques d'E/S disque d'une partition de disque spécifique, utilisez l'option -p comme indiqué ci-dessous.
$ vmstat -p sdb1 sdb1 reads read sectors writes requested writes 501423248 2345417917 419221612 2661885948
21. vmstat – Affichage en Mo
Par défaut, vmstat affiche les informations de mémoire en Ko. Pour afficher en Mo, utilisez l'option "-S m" comme indiqué ci-dessous.
$ vmstat -S m 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 281 288 19 2386 0 0 4 1 0 0 6 1 92 2 0
EXEMPLES MPSTAT
22. mpstat - Afficher les informations de base
Par défaut, mpstat affiche les statistiques du processeur comme indiqué ci-dessous.
$ mpstat Linux 2.6.32-100.28.5.el6.x86_64 (dev-db) 07/09/2011 10:25:32 PM CPU %user %nice %sys %iowait %irq %soft %steal %idle intr/s 10:25:32 PM all 5.68 0.00 0.49 2.03 0.01 0.02 0.00 91.77 146.55
23. mpstat – Afficher toutes les informations
L'option -A affiche toutes les informations pouvant être affichées par la commande mpstat comme indiqué ci-dessous. C'est vraiment équivalent à la commande "mpstat -I ALL -u -P ALL".
$ mpstat -A Linux 2.6.32-100.28.5.el6.x86_64 (dev-db) 07/09/2011 _x86_64_ (4 CPU) 10:26:34 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle 10:26:34 PM all 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 99.99 10:26:34 PM 0 0.01 0.00 0.01 0.01 0.00 0.00 0.00 0.00 99.98 10:26:34 PM 1 0.00 0.00 0.01 0.00 0.00 0.00 0.00 0.00 99.98 10:26:34 PM 2 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00 10:26:34 PM 3 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00 10:26:34 PM CPU intr/s 10:26:34 PM all 36.51 10:26:34 PM 0 0.00 10:26:34 PM 1 0.00 10:26:34 PM 2 0.04 10:26:34 PM 3 0.00 10:26:34 PM CPU 0/s 1/s 8/s 9/s 12/s 14/s 15/s 16/s 19/s 20/s 21/s 33/s NMI/s LOC/s SPU/s PMI/s PND/s RES/s CAL/s TLB/s TRM/s THR/s MCE/s MCP/s ERR/s MIS/s 10:26:34 PM 0 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 7.47 0.00 0.00 0.00 0.00 0.02 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:26:34 PM 1 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 4.90 0.00 0.00 0.00 0.00 0.03 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:26:34 PM 2 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.04 0.00 0.00 0.00 0.00 0.00 3.32 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:26:34 PM 3 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 4.17 0.00 0.00 0.00 0.00 0.01 0.00 0.00 0.00 0.00 0.00 0.00 0.00
24. mpstat - Afficher les statistiques du processeur de chaque processeur (ou) cœur
L'option -P ALL affiche tous les processeurs (ou cœurs) individuels ainsi que leurs statistiques, comme indiqué ci-dessous.
$ mpstat -P ALL Linux 2.6.32-100.28.5.el6.x86_64 (dev-db) 07/09/2011 _x86_64_ (4 CPU) 10:28:04 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle 10:28:04 PM all 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 99.99 10:28:04 PM 0 0.01 0.00 0.01 0.01 0.00 0.00 0.00 0.00 99.98 10:28:04 PM 1 0.00 0.00 0.01 0.00 0.00 0.00 0.00 0.00 99.98 10:28:04 PM 2 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00 10:28:04 PM 3 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
Pour afficher les informations statistiques d'un processeur (ou cœur) particulier, utilisez l'option -P comme indiqué ci-dessous.
$ mpstat -P 0 Linux 2.6.32-100.28.5.el6.x86_64 (dev-db) 07/09/2011 _x86_64_ (8 CPU) 10:28:53 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle 10:28:53 PM 0 0.01 0.00 0.01 0.01 0.00 0.00 0.00 0.00 99.98 $ mpstat -P 1 Linux 2.6.32-100.28.5.el6.x86_64 (dev-db) 07/09/2011 _x86_64_ (8 CPU) 10:28:55 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle 10:28:55 PM 1 0.00 0.00 0.01 0.00 0.00 0.00 0.00 0.00 99.98
Enfin, comme nous l'avons mentionné précédemment, mpstat fait partie du package sysstat. Lorsque vous faites mpstat -V, il affichera vraiment le numéro de version du paquet systat comme indiqué ci-dessous.
$ mpstat -V sysstat version 9.0.4 (C) Sebastien Godard (sysstat orange.fr)
Articles précédents de la série sur la surveillance et le réglage des performances Linux :
- Introduction à la surveillance et à l'optimisation des performances de Linux
- 15 exemples pratiques de commandes principales Linux
- 7 exemples pratiques de commandes PS pour la surveillance de processus
- 10 exemples Sar (Sysstat) utiles pour la surveillance des performances UNIX/Linux
- 10 exemples iozone pour la mesure des performances d'E/S de disque sous Linux