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