vmstat
vmstat 统计虚拟内存信息,可以对操作系统的proc、memory、CPU、IO等信息进行统计以呈现给用户。
根据操作系统的不同,vmstat的输出结果会有不同。大家可根据自己的环境查找相应的学习资料。
我在查找vmstat资料的时候发现,资料讲解的vmstat的输出结果不同:
AIX 上的输出结果会有如下几列
- kthr memory page faults cpu
Solaris 上的输出结果会有如下几列:
- procs memory page disk faults cpu
CentOS上的输出结果会有如下几列:
- procs memory swap io system cpu
虽然在学习的过程中走了不少弯路,但还是挺有收获的。开始我在测试机上怎么测试也没能显示出page disk faults字段,挺郁闷,后来发现,介绍这几个字段的系统环境是Solaris。
言归正传,学习vmstat,最好是先man一下,然后后到网上查阅资料,学习高人的经验。
我的系统环境是CentOS
1、vmstat所需软件
- # uname -a
- Linux test02 2.6.18-92.el5PAE #1 SMP Tue Jun 10 19:22:41 EDT 2008 i686 i686 i386 GNU/Linux
- # which vmstat
- /usr/bin/vmstat
- # rpm -qf /usr/bin/vmstat
- procps-3.2.7-9.el5
2、vmstat语法
- vmstat [-a] [-n] [delay [ count]]
- vmstat [-f] [-s] [-m]
- vmstat [-S unit]
- vmstat [-d]
- vmstat [-p disk_partition]
- vmstat [-V]
不加参数的情况下,vmstat的输出只有一条数据(显示的结果粘过来上下对应的不是很好)
- # 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 0 15173344 159684 1025204 0 0 0 2 1 1 0 0 100 0 0
这个数据是自系统上次重启之后到现在的平均数值。如果需要额外信息就需要使用参数了。
2.1 参数简介
[-a]显示 活动(active)和 非活动(inactive)的内存。
- # 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 0 15173344 257432 1125300 0 0 0 2 1 1 0 0 100 0 0
[ -n ]只显示头信息,不周期性显示。这里没有测试出-n的作用,貌似有和没有,结果都一样。[ -f ]显示自开机以来forks的总数,包括fork、vfork和clone system calls,总数和tasks创建的数量是一致的。
- # vmstat -f
- 662900 forks
- # vmstat -f
- 662901 forks
- # vmstat -f
- 662902 forks
- # vmstat -f
- 662903 forks
[ -s ]显示各种事件计数器表和内存统计信息,这显示不重复。
- # vmstat -s
- 16621896 total memory
- 1450164 used memory
- 1126060 active memory
- 257436 inactive memory
- 15171732 free memory
- 159696 buffer memory
- 1025228 swap cache
- 10241428 total swap
- 0 used swap
- 10241428 free swap
- 407585 non-nice user cpu ticks
- 99282 nice user cpu ticks
- 507104 system cpu ticks
- 4025968737 idle cpu ticks
- 3367298 IO-wait cpu ticks
- 179918 IRQ cpu ticks
- 70168 softirq cpu ticks
- 0 stolen cpu ticks
- 1279463 pages paged in
- 99068439 pages paged out
- 0 pages swapped in
- 0 pages swapped out
- 840368546 interrupts
- 505464033 CPU context switches
- 1296116054 boot time
- 662891 forks
[ -m ]显示slabinfo,好像是缓存相关的,对这个完全不懂。可以对比一下/proc/slabinfo的内容。内容过多,就不粘贴过来了。
[-V]显示版本信息。
- # vmstat -V
- procps version 3.2.7
[ -d ]显示磁盘数据(disk statistics)
- # 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
- ram3 0 0 0 0 0 0 0 0 0 0
- ram4 0 0 0 0 0 0 0 0 0 0
- ram5 0 0 0 0 0 0 0 0 0 0
- ram6 0 0 0 0 0 0 0 0 0 0
- ram7 0 0 0 0 0 0 0 0 0 0
- ram8 0 0 0 0 0 0 0 0 0 0
- ram9 0 0 0 0 0 0 0 0 0 0
- ram10 0 0 0 0 0 0 0 0 0 0
- ram11 0 0 0 0 0 0 0 0 0 0
- ram12 0 0 0 0 0 0 0 0 0 0
- ram13 0 0 0 0 0 0 0 0 0 0
- ram14 0 0 0 0 0 0 0 0 0 0
- ram15 0 0 0 0 0 0 0 0 0 0
- sda 78933 11718 2558111 196860 7323094 17437763 198087270 103643068 0 40409
- sr0 0 0 0 0 0 0 0 0 0 0
- md0 0 0 0 0 0 0 0 0 0 0
[ -D ]显示磁盘统计表(disk table)
- # vmstat -D
- 19 disks
- 3 partitions
- 78933 total reads
- 11718 merged reads
- 2558111 read sectors
- 196860 milli reading
- 7323091 writes
- 17437754 merged writes
- 198087174 written sectors
- 103643051 milli writing
- 0 inprogress IO
- 40409 milli spent IO
[ -S 单位 ]k:1000K:1024 (默认为K)m:1000000M:1048576比较:k和K
- # vmstat -S k
- 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 15536107 163528 1049833 0 0 0 2 1 1 0 0 100 0 0
- # vmstat -S K
- 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 15173840 159696 1025228 0 0 0 2 1 1 0 0 100 0 0
[ -p 分区 ]显示磁盘分区数据(disk partition statistics )
- # vmstat -p /dev/sda1
- sda1 reads read sectors writes requested writes
- 957 1918 19 38
- # vmstat -p /dev/sda2
- sda2 reads read sectors writes requested writes
- 88375 2554274 24766385 198131080
- # vmstat -p /dev/sda3
- sda3 reads read sectors writes requested writes
- 1268 1439 0 0
[ delay [ count ] ]delay是间隔,count显示多少次信息。可以和上面的某些参数结合使用。
- # 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 15171484 159696 1025228 0 0 0 2 1 1 0 0 100 0 0
- 1 0 0 15171484 159696 1025228 0 0 0 0 1013 77 0 0 100 0 0
- 0 0 0 15171484 159696 1025228 0 0 0 48 1038 194 0 0 100 0 0
- # vmstat 2 4
- 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 15173344 159696 1025228 0 0 0 2 1 1 0 0 100 0 0
- 0 0 0 15173344 159696 1025228 0 0 0 52 1037 116 0 0 100 0 0
- 0 0 0 15173344 159696 1025228 0 0 0 0 1027 109 0 0 100 0 0
- 0 0 0 15171484 159696 1025228 0 0 0 32 1023 131 0 0 100 0 0
vmstat 1 3 是每1秒显示一次,共显示3次vmstat 2 4 是每2秒显示一次,共显示4次
持续更新中,后续会有vmstat输出结果解释。
参考资料: