Tento článek poskytuje celkem 24 příkladů příkazů iostat, vmstat a mpstat.
- iostat hlásí statistiky CPU, diskových I/O a NFS.
- vmstat hlásí statistiky virtuální paměti.
- mpstat hlásí statiku procesorů.
Tento článek je součástí naší série sledování výkonu Linuxu.
Vezměte prosím na vědomí, že iostat a vmstat jsou součástí obslužného programu sar. Měli byste nainstalovat balíček sysstat, jak je vysvětleno v našem článku sar (sysstat), aby iostat a vmstat fungovaly.
PŘÍKLADY IOSTAT
1. iostat – Základní příklad
Iostat bez jakéhokoli argumentu zobrazuje informace o využití CPU a I/O statistiky o všech oddílech v systému, jak je uvedeno níže.
$ 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 – Zobrazí pouze statistiky procesoru
iostat volba -c, zobrazí pouze statistiku využití CPU, jak je uvedeno níže.
$ 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 – Zobrazí pouze statistiky I/O disku
iostat volba -d, zobrazí pouze statistiku I/O disku, jak je uvedeno níže.
$ 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 – Zobrazit pouze statistiky sítě
iostat volba -n, zobrazí pouze statistiky zařízení a NFS, jak je uvedeno níže.
$ 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 – Zobrazení I/O dat v MB/s
Ve výchozím nastavení iostat zobrazuje statistiku I/O zařízení v blocích. Chcete-li jej změnit na MB, použijte -m, jak je uvedeno níže.
$ 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 – Zobrazení I/O statistik pouze pro zařízení
Ve výchozím nastavení iostat zobrazuje I/O data pro všechny disky dostupné v systému. Chcete-li zobrazit statistiky pro konkrétní zařízení (například /dev/sda), použijte volbu -p, jak je uvedeno níže.
$ 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 – Zobrazení informací o časovém razítku
Ve výchozím nastavení iostat zobrazuje pouze aktuální datum. Chcete-li zobrazit aktuální čas, použijte volbu -t, jak je uvedeno níže.
$ 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 – Zobrazit rozšířený stav
Použijte volbu -x, která zobrazí rozšířenou statistiku I/O disku, jak je uvedeno níže.
$ 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 Chcete-li zobrazit rozšířené informace pro konkrétní oddíl (například /dev/sda1), proveďte následující.
$ 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 – Spustit každých x sekund (pro y počet opakování)
Chcete-li spustit iostat každé 2 sekundy (dokud nestisknete Ctl-C), proveďte následující.
$ 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
.. Chcete-li provést každé 2 sekundy celkem třikrát, proveďte následující.
$ iostat 2 3
10. iostat – Zobrazení statistiky LVM (a verze)
Chcete-li zobrazit statistiku LVM, použijte volbu -N, jak je uvedeno níže.
$ iostat -N
Chcete-li zobrazit verzi iostatu, použijte -V. Tím se skutečně zobrazí informace o verzi sysstat, protože iostat je součástí balíčku sysstat.
$ iostat -V sysstat version 7.0.2 (C) Sebastien Godard
PŘÍKLADY VMSTAT
11. vmstat – Základní příklad
vmstat ve výchozím nastavení zobrazí využití paměti (včetně swapu), jak je uvedeno níže.
$ 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
Výstup vmstat obsahuje následující pole:
- Procs – r:Celkový počet procesů čekajících na spuštění
- Proces – b:Celkový počet zaneprázdněných procesů
- Paměť – swpd:Použitá virtuální paměť
- Paměť – volná:Volná virtuální paměť
- Paměť – buff:Paměť používaná jako vyrovnávací paměti
- Paměť – mezipaměť:Paměť používaná jako mezipaměť.
- Swap – si:Paměť vyměněná z disku (za každou sekundu)
- Swap – tedy:Paměť vyměněna na disk (každou sekundu)
- IO – bi:Bloky in, tj. bloky přijaté ze zařízení (za každou sekundu)
- IO – bo:Blokuje se. tj. bloky odeslané do zařízení (pro každou sekundu)
- Systém – za: Přerušení za sekundu
- Systém – cs:Kontextové přepínače
- CPU – us, sy, id, wa, st:uživatelský čas CPU, systémový čas, doba nečinnosti, doba čekání
12. vmstat – Zobrazení aktivní a neaktivní paměti
Ve výchozím nastavení vmstat tyto informace nezobrazuje. Použijte volbu -a pro zobrazení informací o aktivní a neaktivní paměti, jak je uvedeno níže.
$ 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 – Zobrazení počtu vidlic od posledního spuštění
Zobrazí se všechna systémová volání rozvětvení provedená systémem od posledního spuštění. Zobrazí se všechny počty systémových volání fork, vfork a clone.
$ vmstat -f
81651975 forks 14. vmstat – Spustit každých x sekund (pro y počet opakování)
Chcete-li provést každé 2 sekundy, proveďte následující. Chcete-li to zastavit, musíte stisknout Ctrl-C.
$ 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 ..
Chcete-li provést každé 2 sekundy 10krát, proveďte následující. V tomto případě nemusíte stisknout Ctrl-C. Po provedení 10x se automaticky zastaví.
$ 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 – Zobrazit časové razítko
Když používáte vmstat k opakovanému monitorování využití paměti, bylo by hezké vidět časové razítko spolu s každou řádkovou položkou. Použijte volbu -t pro zobrazení časového razítka, jak je uvedeno níže.
$ 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
Mně možnost časového razítka fungovala v následující verzi.
$ vmstat -V procps version 3.2.8
Poznámka: Pokud používáte starší verzi vmstat, volba -t nemusí být dostupná. V takovém případě použijte k zobrazení časového razítka ve výstupu vmstat metodu, kterou jsme navrhli dříve.
16. vmstat – Zobrazení informací o slabě
Použijte volbu -m pro zobrazení informací o slabě, jak je ukázáno níže.
$ 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 – Zobrazení statistik ve formátu tabulky
Místo zobrazení hodnot ve formátu záznamu můžete zobrazit výstup vmstat ve formátu tabulky pomocí volby -s, jak je uvedeno níže.
$ 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 – Zobrazení statistik disku
Použijte volbu -d k zobrazení statistiky disku, jak je uvedeno níže. Zobrazí se statistiky čtení, zápisů a I/O disku.
$ 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 – Zvětšení šířky displeje
Výchozí výstup bez zvětšení šířky je zobrazen níže.
$ 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
Použijte volbu -w ke zvětšení šířky výstupních sloupců, jak je znázorněno níže. To poskytuje lepší čitelnost.
$ 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 – Zobrazení statistik pro oddíl
Chcete-li zobrazit statistiku I/O disku konkrétního diskového oddílu, použijte volbu -p, jak je uvedeno níže.
$ vmstat -p sdb1
sdb1 reads read sectors writes requested writes
501423248 2345417917 419221612 2661885948 21. vmstat – Zobrazení v MB
Ve výchozím nastavení vmstat zobrazuje informace o paměti v kb. Pro zobrazení v MB použijte volbu „-S m“, jak je uvedeno níže.
$ 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
PŘÍKLADY MPSTAT
22. mpstat – Zobrazení základních informací
Ve výchozím nastavení mpstat zobrazuje statistiky CPU, jak je uvedeno níže.
$ 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 – Zobrazí všechny informace
Možnost -A zobrazí všechny informace, které lze zobrazit příkazem mpstat, jak je uvedeno níže. Toto je skutečně ekvivalentní příkazu „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 – Zobrazení statistik CPU jednotlivých CPU (nebo) Core
Možnost -P ALL zobrazí všechny jednotlivé procesory (nebo jádra) spolu s jejich statistikami, jak je uvedeno níže.
$ 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
Chcete-li zobrazit statistické informace konkrétního CPU (nebo jádra), použijte volbu -P, jak je uvedeno níže.
$ 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
Konečně, jak jsme zmínili dříve, mpstat je součástí balíčku sysstat. Když uděláte mpstat -V, skutečně zobrazí číslo verze balíčku systat, jak je uvedeno níže.
$ mpstat -V sysstat version 9.0.4 (C) Sebastien Godard (sysstat orange.fr)
Předchozí články ze série sledování a ladění výkonu Linuxu:
- Úvod do monitorování a ladění výkonu systému Linux
- 15 praktických příkladů hlavních příkazů Linuxu
- 7 praktických příkladů příkazů PS pro monitorování procesu
- 10 užitečných příkladů Sar (Sysstat) pro monitorování výkonu UNIX / Linux
- 10 příkladů iozone pro měření výkonu disku I/O v systému Linux