vmstat和iostat命令监控linux性能

vmstatIostat 这两个命令都可用于所有主要 Unix-like (Linux/Unix/FreeBSD/Solaris) 操作系统。如果 vmstatiostat 命令不存在请安装 sysstat包。vmstat, sariostat 命令是包含在包中的集合 sysstat系统监控工具。这iostat 生成报告 CPU和所有设备统计信息。

在linux中安装sysstat

  1. $ sudo yum install sysstat #CentOS and RHEL systems
  2. $ sudo dnf install sysstat #Fedora 22+ systems
  3. $ sudo apt-get install sysstat #Ubuntu and Debian based systems
  4. $ sudo pacman -S sysstat #Arch Linux
  • vmstat – 汇总 Memory, Processes, Paging 等等信息。
  • iostat - 中央处理器 (CPU) 统计和 input/output 统计数据 devicespartitions

1. 列出活动和非活动内存

在下面的示例中,有六列。列的重要意义在手册页中解释vmstat在细节。
```
[root@rumenz ~]# 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
1 0 0 810420 97380 70628 0 0 115 4 89 79 1 6 90 3 0

  1. - `Free` 空闲/空闲内存空间的数量。
  2. - `si` 每秒从磁盘中以千字节交换。
  3. - `so` 每秒以千字节为单位换出到磁盘。
  4. #### 2. 执行 vmstat 'X' 秒和('N' 次)
  5. > 有了这个命令`vmstat`每两秒执行一次,执行六次后自动停止。

[root@rumenz ~]# vmstat 2 6

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 810420 22064 101368 0 0 56 3 50 57 0 3 95 2 0
0 0 0 810412 22064 101368 0 0 0 0 16 35 0 0 100 0 0
0 0 0 810412 22064 101368 0 0 0 0 14 35 0 0 100 0 0
0 0 0 810412 22064 101368 0 0 0 0 17 38 0 0 100 0 0
0 0 0 810412 22064 101368 0 0 0 0 17 35 0 0 100 0 0
0 0 0 810412 22064 101368 0 0 0 0 18 36 0 1 100 0 0

  1. #### 3. vmstat 带时间戳
  2. > `vmstat` 命令与 `-t` 参数显示时间戳,每行打印如下所示。

[rumenz@rumenz ~]$ vmstat -t 1 5

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 632028 24992 192244 0 0 70 5 55 78 1 3 95 1 0 2012-09-02 14:57:18 IST
1 0 0 632028 24992 192244 0 0 0 0 171 514 1 5 94 0 0 2012-09-02 14:57:19 IST
1 0 0 631904 24992 192244 0 0 0 0 195 600 0 5 95 0 0 2012-09-02 14:57:20 IST
0 0 0 631780 24992 192244 0 0 0 0 156 524 0 5 95 0 0 2012-09-02 14:57:21 IST
1 0 0 631656 24992 192244 0 0 0 0 189 592 0 5 95 0 0 2012-09-02 14:57:22 IST

  1. #### 4、各计数器统计
  2. > `vmstat`命令和`-s`开关显示各种事件计数器和内存统计信息的摘要。

[rumenz@rumenz ~]$ vmstat -s
1030800 total memory
524656 used memory
277784 active memory
185920 inactive memory
506144 free memory
26864 buffer memory
310104 swap cache
2064376 total swap
0 used swap
2064376 free swap
4539 non-nice user cpu ticks
0 nice user cpu ticks
11569 system cpu ticks
329608 idle cpu ticks
5012 IO-wait cpu ticks
79 IRQ cpu ticks
74 softirq cpu ticks
0 stolen cpu ticks
336038 pages paged in
67945 pages paged out
0 pages swapped in
0 pages swapped out
258526 interrupts
392439 CPU context switches
1346574857 boot time
2309 forks

  1. #### 5. 磁盘统计
  2. > `vmstat` `-d` 选项显示所有磁盘统计信息。

[rumenz@rumenz ~]$ vmstat -d

disk- ——————reads—————— ——————writes—————- ——-IO———
total merged sectors ms total merged sectors ms cur sec
ram0 0 0 0 0 0 0 0 0 0 0
ram1 0 0 0 0 0 0 0 0 0 0
ram2 0 0 0 0 0 0 0 0 0 0

sda 7712 5145 668732 409619 3282 28884 257402 644566 0 126
dm-0 11578 0 659242 1113017 32163 0 257384 8460026 0 126
dm-1 324 0 2592 3845 0 0 0 0 0 2

  1. #### 6. 以兆字节显示统计信息
  2. > `vmstat`默认情况下以千字节为单位显示内存统计信息,但你也可以使用参数显示以兆字节为单位的内存大小报告`-S M`。考虑以下示例。

[root@rumenz ~]# vmstat -S M 1 5

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 346 53 476 0 0 95 8 42 55 0 2 96 2 0
0 0 0 346 53 476 0 0 0 0 12 15 0 0 100 0 0
0 0 0 346 53 476 0 0 0 0 32 62 0 0 100 0 0
0 0 0 346 53 476 0 0 0 0 15 13 0 0 100 0 0
0 0 0 346 53 476 0 0 0 0 34 61 0 1 99 0 0

  1. ``6 Iostat Command Examples in Linux``
  2. #### 7. 显示 CPU 和 I/O 统计信息
  3. > `iostat` 不带参数显示 `CPU` `I/O` 所有分区的统计信息如下所示。

[root@rumenz ~]# iostat

Linux 3.10.0-1160.31.1.el7.x8664 (iZuf6g17lg7nixe3uwrgxiZ) 11/21/2021 _x86_64 (2 CPU)

avg-cpu: %user %nice %system %iowait %steal %idle
0.69 0.00 0.49 0.09 0.00 98.73

Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
vda 6.29 43.45 46.23 357997753 380913717

  1. #### 8. 仅显示 CPU 统计信息
  2. > `iostat` `-c` 参数仅显示 `CPU` 统计如下。

[root@rumenz ~]# iostat -c

Linux 3.10.0-1160.31.1.el7.x8664 (iZuf6g17lg7nixe3uwrgxiZ) 11/21/2021 _x86_64 (2 CPU)

avg-cpu: %user %nice %system %iowait %steal %idle
0.69 0.00 0.49 0.09 0.00 98.73

  1. #### 9. 仅显示磁盘 I/O 统计信息
  2. > `iostat` `-d` 参数仅显示磁盘 `I/O` 所有分区的统计信息。

[root@rumenz ~]# iostat -d
Linux 3.10.0-1160.31.1.el7.x8664 (iZuf6g17lg7nixe3uwrgxiZ) 11/21/2021 _x86_64 (2 CPU)

avg-cpu: %user %nice %system %iowait %steal %idle
0.69 0.00 0.49 0.09 0.00 98.73

Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn

  1. #### 10. 仅显示单个设备的 I/O 统计信息。
  2. > 默认情况下,它显示所有分区的统计信息,包括 `-p` 和设备名称参数仅显示磁盘 `I/O` 特定设备的统计数据。

[root@rumenz ~]# iostat -p sda

Linux 32-2eli686 (rumenz.com) 09/03/2012 i686 (1 CPU)

avg-cpu: %user %nice %system %iowait %steal %idle
11 01 44 92 00 52

Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 32 152 55 1086002 91770
sda1 07 56 00 4120 18
sda2 22 179 55 1080650 91752

  1. #### 11. 显示 LVM 统计信息
  2. > `-N` (大写)参数只显示 `LVM` 统计。

[root@rumenz ~]# iostat -N
Linux 3.10.0-1160.31.1.el7.x8664 (iZuf6g17lg7nixe3uwrgxiZ) 11/21/2021 _x86_64 (2 CPU)

avg-cpu: %user %nice %system %iowait %steal %idle
0.69 0.00 0.49 0.09 0.00 98.73

Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
vda 6.29 43.45 46.23 357997745 380910689

  1. #### 12.iostat版本。
  2. > `-V` (大写)参数显示版本 `iostat`

[root@rumenz ~]# iostat -V

sysstat version 10.1.5
(C) Sebastien Godard (sysstat <at> orange.fr)
```

返回笔记列表
入门小站