vmstat
和Iostat
这两个命令都可用于所有主要Unix-like
(Linux/Unix/FreeBSD/Solaris
) 操作系统。如果vmstat
和iostat
命令不存在请安装sysstat
包。vmstat
,sar
和iostat
命令是包含在包中的集合sysstat
系统监控工具。这iostat
生成报告CPU
和所有设备统计信息。
$ sudo yum install sysstat #CentOS and RHEL systems
$ sudo dnf install sysstat #Fedora 22+ systems
$ sudo apt-get install sysstat #Ubuntu and Debian based systems
$ sudo pacman -S sysstat #Arch Linux
vmstat
– 汇总 Memory
, Processes
, Paging
等等信息。iostat
- 中央处理器 (CPU
) 统计和 input/output
统计数据 devices
和 partitions
在下面的示例中,有六列。
[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
Free
– 空闲/空闲内存空间的数量。si
– 每秒从磁盘中以千字节交换。so
– 每秒以千字节为单位换出到磁盘。有了这个命令
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
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
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
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
这
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
6 Iostat Command Examples in Linux
iostat
不带参数显示CPU
和I/O
所有分区的统计信息如下所示。
[root@rumenz ~]# iostat
Linux 3.10.0-1160.31.1.el7.x86_64 (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
iostat
和-c
参数仅显示CPU
统计如下。
[root@rumenz ~]# iostat -c
Linux 3.10.0-1160.31.1.el7.x86_64 (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
iostat
和-d
参数仅显示磁盘I/O
所有分区的统计信息。
[root@rumenz ~]# iostat -d
Linux 3.10.0-1160.31.1.el7.x86_64 (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
默认情况下,它显示所有分区的统计信息,包括
-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
-N
(大写)参数只显示LVM
统计。
[root@rumenz ~]# iostat -N
Linux 3.10.0-1160.31.1.el7.x86_64 (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
-V
(大写)参数显示版本iostat
。
[root@rumenz ~]# iostat -V
sysstat version 10.1.5
(C) Sebastien Godard (sysstat <at> orange.fr)