您的位置:首页 > 运维架构 > Linux

Linux性能分析 vmstat基本语法

2017-08-01 13:21 232 查看
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:1000

K:1024 (默认为K)

m:1000000

M: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输出结果解释。

参考资料:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: