用于 Linux 性能监控的iostat、mpstat 和 vmstat示例

网友投稿 1035 2022-05-28

本文共提供了 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

用于 Linux 性能监控的iostat、mpstat 和 vmstat示例

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小时内删除侵权内容。

上一篇:Qt-序列号生成器
下一篇:VMware vSphere 6.7 虚拟化搭建及配置完整详细手册
相关文章