致力于自动化测试技术,性能测试技术的研究,测试技术培训以及项目实施,做一个技术与实施的主导者。

Linux系统监控工具之vmstat详解

上一篇 / 下一篇  2012-06-11 16:31:57 / 天气: 晴朗 / 心情: 高兴 / 个人分类:Linux

vmstat是一个查看虚拟内存(Virtual Memory)使用状况的工具,使用vmstat命令可以得到关于进程、内存、内存分页、堵塞IO、traps及CPU活动的信息。本文介绍了虚拟内存的运行原理,继而介绍了vmstat的用法和使用范例。51Testing软件测试网9| {YZrY


*U/s `;c S{d;BN&Y051Testing软件测试网5Y&UC5R/Y:L)Z8k\9UX

J8{l2no9PI[5A0vmstat是一个十分有用的Linux系统监控工具,使用vmstat命令可以得到关于进程、内存、内存分页、堵塞IO、traps及CPU活动的信息。51Testing软件测试网-q \(oG8XP$r

y'V;F j3w2^o0
e!W;N2{y,|0lh0
51Testing软件测试网)R\#b3B0P B-\\J.x

'U%r]tqw0一、前言

-bK(vb l051Testing软件测试网*x~*B K.oQgm

很显然从名字中我们就可以知道vmstat是一个查看虚拟内存(Virtual Memory)使用状况的工具,但是怎样通过vmstat来发现系统中的瓶颈呢?在回答这个问题前,还是让我们回顾一下Linux中关于虚拟内存相关内容。

b8Sx y(p&?CF0

P\,[QvI4?0二、虚拟内存运行原理51Testing软件测试网X(e y1J?)c

51Testing软件测试网G"w Xp.D

在系统中运行的每个进程都需要使用到内存,但不是每个进程都需要每时每刻使用系统分配的内存空间。当系统运行所需内存超过实际的物理内存,内核会释 放某些进程所占用但未使用的部分或所有物理内存,将这部分资料存储在磁盘上直到进程下一次调用,并将释放出的内存提供给有需要的进程使用。51Testing软件测试网]Cs\6m0e3cIK

,WaUk{s8O!Q0在Linux内存管理中,主要是通过“调页Paging”和“交换Swapping”来完成上述的内存调度。调页算法是将内存中最近不常使用的页面换到磁盘上,把活动页面保留在内存中供进程使用。交换技术是将整个进程,而不是部分页面,全部交换到磁盘上。

i M@(X/_CH051Testing软件测试网 D)[ z _\IR9d

分页(Page)写入磁盘的过程被称作Page-Out,分页(Page)从磁盘重新回到内存的过程被称作Page-In。当内核需要一个分页时,但发现此分页不在物理内存中(因为已经被Page-Out了),此时就发生了分页错误(Page Fault)。

1cnYyD0jCj051Testing软件测试网e+j}7C!bX

当系统内核发现可运行内存变少时,就会通过Page-Out来释放一部分物理内存。经管Page-Out不是经常发生,但是如果Page-out频 繁不断的发生,直到当内核管理分页的时间超过运行程式的时间时,系统效能会急剧下降。这时的系统已经运行非常慢或进入暂停状态,这种状态亦被称作 thrashing(颠簸)。

*a f0j}%R4Q051Testing软件测试网:U~px,ev.B%Zq

三、使用vmstat

b&j eV7`P0

B Y [r }HGd01.用法51Testing软件测试网@3OG1Mo$\"g6^7V

y7kZ/E*DU[j0vmstat [-a] [-n] [-S unit] [delay [ count]]51Testing软件测试网6DIXqVhIE,}

t(]^ Ff.kL0vmstat [-s] [-n] [-S unit]

U'VWj+ZsX,}051Testing软件测试网x4`:T2o9o q&`

vmstat [-m] [-n] [delay [ count]]

Sd6g9I B3G b3FCCg0

&p'T_M xX0vmstat [-d] [-n] [delay [ count]]

-J)]*Go2Z[M n0

w N;k3H ?8s-e }]0vmstat [-p disk partition] [-n] [delay [ count]]

.bt%dpMv051Testing软件测试网)yH _*r%P]

vmstat [-f]

&U(k7P U c$V,\`0

9n `8`_-t5l0vmstat [-V]51Testing软件测试网/@+QyDq QA|&C!n

51Testing软件测试网[d;AsfP)c5z d h

-a:显示活跃和非活跃内存51Testing软件测试网9ZX:j?,~C5\c5R_

-@d(RpCuB"CAN#?0-f:显示从系统启动至今的fork数量 。引申閱讀: http://www.cnblogs.com/leoo2sk/archive/2009/12/11/talk-about-fork-in-linux.html51Testing软件测试网+Y6a[_)p7l&}

51Testing软件测试网jw-|s(\

-m:显示slabinfo51Testing软件测试网kv1mY0hX'~3V$N

'zf2M#kYcF5pbW_0-n:只在开始时显示一次各字段名称。51Testing软件测试网J ci`,J9a^

2G[/Sq,\*Wq1j3z0-s:显示内存相关统计信息及多种系统活动数量。51Testing软件测试网6j^/L!\(KT3~

g]|Q#M3v#F)r0delay:刷新时间间隔。如果不指定,只显示一条结果。51Testing软件测试网szR`u&U @X

51Testing软件测试网VY)vT5l6b

count:刷新次数。如果不指定刷新次数,但指定了刷新时间间隔,这时刷新次数为无穷。51Testing软件测试网s+b)^ cT'B

K;M2o#T]_j C0-d:显示磁盘相关统计信息。

)R1dPqEAm`c|051Testing软件测试网$N.Z i8{X#F/sa

-p:显示指定磁盘分区统计信息

{2MG6v bJ9[F!A051Testing软件测试网2j g%jAuMW_TB3i i(V

-S:使用指定单位显示。参数有 k 、K 、m 、M ,分别代表1000、1024、1000000、1048576字节(byte)。默认单位为K(1024 bytes)

9D(``n)@wW0

&UH{+Xw,c6A0-V:显示vmstat版本信息。51Testing软件测试网 A ]l&C+G

51Testing软件测试网;^N)J(n d

51Testing软件测试网^@QDe7UL l0F
51Testing软件测试网.A0G$vo U J

9S,VU"J5Jjw*@02.使用说明51Testing软件测试网:wa'`:@t8t}q

%gN FC!DN%| `y"t'P0例子1:每2秒输出一条结果

}-Z(f4VM%T2[7qx051Testing软件测试网ii?9NuM\

?mJ0M Bb4T051Testing软件测试网!y*E B.sS

字段说明:51Testing软件测试网'p g2ny?c

51Testing软件测试网8u8E}W:J:`A

Procs(进程):

7` [ Y6n3V'|0

R jI*Nb0r: 运行队列中进程数量

q#iIu/} j0

,j?wR``M L0b: 等待IO的进程数量

n7wo,IW4Ei3~1aJ0

#|m/M gB{"e0Memory(内存):

Yo@j fZ_#c*n#^051Testing软件测试网,NR V&? g6ss:W6f#Mmj

swpd: 使用虚拟内存大小

`7r J*x&a[&Z3~0

V"Dz&a3[;^&K;Gb0free: 可用内存大小51Testing软件测试网B"bq hty t&V1C9b

51Testing软件测试网}0SHw)K;o[$T(S&R.E3@

buff: 用作缓冲的内存大小51Testing软件测试网 Oh"w4z+^t

&aPF?7n Hl v)b0cache: 用作缓存的内存大小51Testing软件测试网jIW~,\

1oW9_9Lq'Z e@0Swap:

!Y5m/@zN,ir*SH$W051Testing软件测试网u(JvS5X#b&t{2?

si: 每秒从交换区写到内存的大小51Testing软件测试网2q s XaT7}

51Testing软件测试网8D*f)G1J#C1W ^

so: 每秒写入交换区的内存大小

(Y cMa{e$n~0

%x N2U0z(pZ g0IO:(现在的Linux版本块的大小为1024bytes)

K)zm ?xnB-O`5v;q#`051Testing软件测试网 P X.R bm

bi: 每秒读取的块数

K f~-yP.w|0

Z:EHn7\g-N"@0bo: 每秒写入的块数51Testing软件测试网El*y3FK(ST

mn @,HQ|0系统:51Testing软件测试网 SH,S)Nq6s!{8L

51Testing软件测试网R4s C?YH'h;t@

in: 每秒中断数,包括时钟中断。51Testing软件测试网Z!bR7h#w%AX\

!WzC8k1k0cs: 每秒上下文切换数。51Testing软件测试网C[0IJ0Y

k-Kh g0oc V0Y0CPU(以百分比表示):51Testing软件测试网f|C1PiW

51Testing软件测试网T8G0e#c~iU#OUc)g'A

us: 用户进程执行时间(user time)

4`?%V+p gX%M Xb051Testing软件测试网Px~Y%x b(O ec\

sy: 系统进程执行时间(system time)

N BK-hT2OYZ051Testing软件测试网8W7A$S!Lt8lX^ |

id: 空闲时间(包括IO等待时间)

IH/]:tgE+aN051Testing软件测试网Q'|zxt/k

wa: 等待IO时间

e!\eF4Ac2}051Testing软件测试网 d,Qy5vKY[

例子2:显示活跃和非活跃内存

FZd/|G9^0

l q |y~|8LIU O0o051Testing软件测试网(wK"?Em8?{ A#i

51Testing软件测试网!niA(c(_

使用-a选项显示活跃和非活跃内存时,所显示的内容除增加inact和active外,其他显示内容与例子1相同。

;{ _O4K:b4^g[ ER051Testing软件测试网B3a'lt#L5x

字段说明:

0IX?4c!i M-_w051Testing软件测试网R2h'm `*w0___

Memory(内存):

2e2qGo+J r0

/~Gc%wjiPb0inact: 非活跃内存大小(当使用-a选项时显示)

6Vy)h^J:o%bW051Testing软件测试网%m2C*HT})?

active: 活跃的内存大小(当使用-a选项时显示)

%h ?8`*z _3O9F051Testing软件测试网*Q.xn-{1F.F;XS

51Testing软件测试网7fv7b I%tQ!F7`


TAG:

 

评分:0

我来说两句

vprince

vprince

6年软件测试经验,TIB自动化测试工作室核心成员,ATF框架核心设计和开发人员,熟悉软件自动化测试、性能测试,多年从事软件项目的自动化测试和性能测试,对自动化测试的框架设计开发、框架搭建以及实施有较为丰富的实战经验。 目前关注开源自动化测试领域、 基于Selenium构建Web自动化测试框架,为多家企业进行自动化测试培训、实施自动化测试项目。

日历

« 2024-04-25  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 67406
  • 日志数: 49
  • 建立时间: 2009-09-09
  • 更新时间: 2012-12-14

RSS订阅

Open Toolbar