用于 Linux 性能監控的iostat、mpstat 和 vmstat示例
本文共提供了 24 個關于 iostat、vmstat 和 mpstat 命令的示例。
iostat 報告 CPU、磁盤 I/O 和 NFS 統計信息。
vmstat 報告虛擬內存統計信息。
mpstat 報告處理器靜態數據。
本文是我們正在進行的 linux 性能監控系列的一部分。
請注意,iostat 和 vmstat 是 sar 實用程序的一部分。
IOSTAT 示例
1. iostat - 基本示例
不帶任何參數的 Iostat 顯示有關 CPU 使用率的信息,以及有關系統上所有分區的 I/O 統計信息,如下所示。
$ 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 - 僅顯示 cpu 統計信息
iostat 選項 -c,僅顯示 CPU 使用率統計信息,如下所示。
$ 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 – 僅顯示磁盤 I/O 統計信息
iostat 選項 -d,僅顯示磁盤 I/O 統計信息,如下所示。
$ 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 - 僅顯示網絡統計信息
iostat 選項 -n,僅顯示設備和 NFS 統計信息,如下所示。
$ 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
5. iostat – 以 MB/秒為單位顯示 I/O 數據
默認情況下 iostat,在 Blocks 中顯示設備 I/O 統計信息。要將其更改為 MB,請使用 -m,如下所示。
$ 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 – 僅顯示設備的 I/O 統計信息
默認情況下,iostat 顯示系統中所有可用磁盤的 I/O 數據。要查看特定設備(例如 /dev/sda)的統計信息,請使用選項 -p,如下所示。
$ 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 – 顯示時間戳信息
默認情況下,iostat 僅顯示當前日期。要顯示當前時間,請使用選項 -t,如下所示。
$ 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 – Display Extended status
8. iostat - 顯示擴展狀態
使用選項 -x,它將顯示擴展磁盤 I/O 統計信息,如下所示。
$ 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
要顯示特定分區(例如 /dev/sda1)的擴展信息,請執行以下操作。
$ 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 – 每 x 秒執行一次(執行 y 次)
要每 2 秒執行一次 iostat(直到您按下 Ctl-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 ..
要每 2 秒執行 3 次,請執行以下操作。
$ iostat 2 3
10. iostat - 顯示 LVM 統計信息(和版本)
要顯示 LVM 統計信息,請使用選項 -N,如下所示。
$ iostat -N
要顯示 iostat 的版本,請使用 -V。這將真正顯示 sysstat 的版本信息,因為 iostat 是 sysstat 包的一部分。
$ iostat -V sysstat version 7.0.2 (C) Sebastien Godard
VMSTAT 示例
11. vmstat - 基本示例
vmstat 默認會顯示內存使用情況(包括交換),如下所示。
$ vmstat procs ------------memory---------- ---swap-- -----io---- --system-- ---- -cpu------ rb 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
vmstat 輸出包含以下字段:
procs - r:等待運行的進程總數
Procs - b:繁忙進程的總數
Memory? - swpd:使用的虛擬內存
Memory? – free:空閑虛擬內存
Memory? - buff:用作緩沖區的內存
Memory?——cache:用作緩存的內存。
Swap - si:從磁盤交換的內存(每秒)
Swap - so:內存交換到磁盤(每秒)
IO - bi:塊輸入。即從設備接收的塊(每秒)
IO – bo:封鎖。即發送到設備的塊(每秒)
System – in:每秒中斷數
System-cs:上下文切換
CPU – us, sy, id, wa, st:CPU用戶時間、系統時間、空閑時間、等待時間
12. vmstat – 顯示活動和非活動內存
默認情況下 vmstat 不顯示此信息。使用選項 -a,顯示活動和非活動內存信息,如下所示。
$ vmstat -a procs -----------memory--------- ---swap-- -----io---- --system-- -- ---cpu-------- rb 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 – 顯示自上次啟動以來的分叉數
這將顯示自上次引導以來系統進行的所有 fork 系統調用。這將顯示所有 fork、vfork 和 clone 系統調用計數。
$ vmstat -f 81651975 forks
14. vmstat – 每 x 秒執行一次(執行 y 次)
要每 2 秒執行一次,請執行以下操作。您必須按 Ctrl-C 才能停止此操作。
$ vmstat 2 procs -----------memory---------- ---swap-- -----io---- --system-- --- --cpu----- rb 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 ..
要每 2 秒執行 10 次,請執行以下操作。在這種情況下,您不需要按 Ctrl-C。執行10次后自動停止。
$ 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 – 顯示時間戳
當您使用 vmstat 重復監控內存使用情況時,很高興看到時間戳以及每個行項。使用選項 -t 顯示時間戳,如下所示。
$ 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
對我來說,時間戳選項在以下版本中有效。
$ vmstat -V procps version 3.2.8
注意:如果您使用舊版本的 vmstat,選項 -t 可能不可用。在這種情況下,使用我們之前建議的方法在 vmstat輸出中顯示時間戳。
16. vmstat - 顯示平板信息
使用選項 -m,顯示板信息,如下所示。
$ 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 – 以表格形式顯示統計信息
您可以使用選項 -s 以表格格式顯示 vmstat 的輸出,而不是以記錄格式顯示值,如下所示。
$ 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 – 顯示磁盤統計信息
使用選項 -d 顯示磁盤統計信息,如下所示。這將顯示磁盤的讀取、寫入和 I/O 統計信息。
$ 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 – 增加顯示的寬度
不增加寬度的默認輸出如下所示。
$ vmstat 1 3 procs -----------memory---------- ---swap-- -----io---- --system-- -- ---cpu----- rb 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
使用選項 -w 增加輸出列的寬度,如下所示。這提供了更好的可讀性。
$ 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 – 顯示分區的統計信息
要顯示特定磁盤分區的磁盤 I/O 統計信息,請使用選項 -p,如下所示。
$ vmstat -p sdb1 sdb1 reads read sectors writes requested writes 501423248 2345417917 419221612 2661885948
21. vmstat – 以 MB 為單位顯示
默認情況下,vmstat 以 kb 為單位顯示內存信息。要以 MB 顯示,請使用選項“-S m”,如下所示。
$ 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
MPSTAT 示例
22. mpstat - 顯示基本信息
默認情況下,mpstat 顯示 CPU 統計信息,如下所示。
$ 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 – 顯示所有信息
選項-A,顯示mpstat命令可以顯示的所有信息,如下圖。這實際上等同于“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 – 顯示單個 CPU(或)Core 的 CPU 統計信息
選項 -P ALL,顯示所有單個 CPU(或核心)及其統計信息,如下所示。
$ 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
要顯示特定 CPU(或內核)的統計信息,請使用選項 -P,如下所示。
$ 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
最后,正如我們之前提到的,mpstat 是 sysstat 包的一部分。當你執行mpstat -V時,它會真正顯示sysstat包的版本號,如下圖所示。
$ mpstat -V sysstat version 9.0.4 (C) Sebastien Godard (sysstat orange.fr)
IoT Linux
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。