Vmstat与iostat zz
上一篇 / 下一篇 2008-06-06 20:10:51 / 个人分类:LAMP
木铎校园 BBS 社区z8LP;MFmn3]c
在Linux下有很多系统性能分析工具,比较常见的有top、free、ps、time、timex、uptime等。下文将介绍几个较为重要的性能分析工具vmstat、iostat和sar及其使用。木铎校园 BBS 社区OQ\ \H7@ w
木铎校园 BBS 社区(v$?2R~ I&V'n`r用vmstat监视内存使用情况
"|t%qS2a!T/ZW0木铎校园 BBS 社区'D&e@]})p~vmstat是Virtual Meomory Statistics(虚拟内存统计)的缩写,可对操作系统的虚拟内存、进程、CPU活动进行监视。它是对系统的整体情况进行统计,不足之处是无法对某个进程进行深入分析。
C:B6V%L2O(l0/l*E'n7H*q[~S+|%D0 vmstat的语法如下:
D.k%{&|B dt0木铎校园 BBS 社区mR+P4T&y n3k/N*{cy vmstat [-V] [-n] [delay [count]]木铎校园 BBS 社区+H(s&N^&j)Od
n
木铎校园 BBS 社区h B,Huq"z%D
Y/`Q a6?%\}7N#Z0i0 其中,-V表示打印出版本信息;-n表示在周期性循环输出时,输出的头部信息仅显示一次;delay是两次输出之间的延迟时间;count是指按照这个时间间隔统计的次数。对于vmstat输出各字段的含义,可运行man vmstat查看。
wl1?.^de;mA0XEm+[x;_S0 用iostat监视I/O子系统情况木铎校园 BBS 社区Y/po3z{|]6T
ID;v3d8]8iZl%H0 iostat是I/O statistics(输入/输出统计)的缩写,iostat工具将对系统的磁盘操作活动进行监视。它的特点是汇报磁盘活动统计情况,同时也会汇报出 CPU使用情况。同vmstat一样,iostat也有一个弱点,就是它不能对某个进程进行深入分析,仅对系统的整体情况进行分析。
Zx2tA%u~)R0木铎校园 BBS 社区~/AdBW$B&m Giostat的语法如下:
7S&O6v,k:n0木铎校园 BBS 社区4QB2R\n`:e$AsW
-@B5D&TA`"xL~0iostat [ -c | -d ] [ -k ] [ -t ] [ -V ] [ -x [ device ] ] [ interval [ count ] ]
h y:|;u/rq0
+_%vTV;H-O4E,Y.f0 其中,-c为汇报CPU的使用情况;-d为汇报磁盘的使用情况;-k表示每秒按kilobytes字节显示数据;-t为打印汇报的时间;-v表示打印出 版本信息和用法;-x device指定要统计的设备名称,默认为所有的设备;interval指每次统计间隔的时间;count指按照这个时间间隔统计的次数。
v;Y-~sy(i*x04U!yL9LT)u0 iostat一般的输出格式如下:
/G-}M"V&@.`[06u8iP,d*I8X0Linux 2.4.18-18smp (builder.linux.com) 2003年03月07日木铎校园 BBS 社区x7mn6Bf'IV
木铎校园 BBS 社区Eu!y \3n BI!iavg-cpu: %user %nice %sys %idle
?(p:U@M2D0w"bPH K'Ks+Qn04.81 0.01 1.03 94.15木铎校园 BBS 社区Q Cl.j |nL H}^T$A
木铎校园 BBS 社区aj9S6vX-],xDevice: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
B3^5`GP?CB m0h|:@Z7\)P EA0dev3-0 30.31 1117.68 846.52 16104536 12197374木铎校园 BBS 社区/hM7Mn?O*vPA3a:u
)B
E
O1ce%I{0dev3-1 7.06 229.61 40.40 3308486 582080
y8V:W _eQ\ S7p0木铎校园 BBS 社区^JZ*nHdRz^/Wd7`
[2afCYt5o#?^(p7y0对于输出中各字段的含义,iostat的帮助中有详细的说明。
*m'QE^Eu^,cYE0木铎校园 BBS 社区1gnL E&bYeQx"? svmstat 命令报告虚拟内存统计信息和CPU负荷:页面调度,交换,任务交换,CPU利用率。命令的语法是:
[.F }x~1Yh0vmstat [-cisS] [d1 d2 d3 d4] [interval [count]]木铎校园 BBS 社区8Fb8Q]C/}q
当不用选项时,vmstat显示一条曲线表示自从系统启动后活动的信息。如果指定interval(时间间隔),接下来的线是重复显示最后的interval期间活动的情况,直到用户中断命令执行。当同时提供计数器时,统计信息按时间计数来显示。
h7BP5KUA0D-D(D*n0如果指定了一个磁盘名(如d1,d2,等等。),这些磁盘得到优先显示。通常,系统上的前4个磁盘设备是显示的,因为只有四个设备能在一线条上显示,这个
选项允许性能分析员修改缺省显示选项。(*磁盘名通常随id,sd,xd,或xy
(取决于类型和I/0界面)加一个数字,如id0,sd2,xd1等等命名而定。)
(w%p:S'u(li]a(DP/S0,vmstat 命令显示若干字段信息:
'Eu&jY/l:L0
^K:O(Q'i$}3\n)u0procs 报表下面三种状态的进程数:
?6V'U5ZR9{:^jlo{0r--在运行队列中等候运行
2e|*s0XBC B-XK0b--被资源阻塞(I/0,页面调度,等等.)木铎校园 BBS 社区$^Q3L;XFk
w--可运行但是被换出的木铎校园 BBS 社区 k!RZ-vGR
memory 报告虚拟内存和实存信息:木铎校园 BBS 社区'D'@"RS{e1e
swap--以千字节为单位的当前可用交换空间的数量木铎校园 BBS 社区q ~2~K*J+L`G
free--以千字节为单位的页自由表大小木铎校园 BBS 社区b{
nc.|f)UG
page 报告每秒页面调度活动数量的信息:
N)@${ }(AJ7q0re-从自由表回收页木铎校园 BBS 社区7D`4P:Io
L
mf--次要的错误;地址空间或硬件地址转换错误
mVS{:T0pi--页入的千字节数木铎校园 BBS 社区6~ p5} lq
M
po -页出的千字节数木铎校园 BBS 社区5U
LF#j-Q5?
fr- 释放的千字节数木铎校园 BBS 社区)j#guCGO
de--以千字节为单位的可接受的短期内存不足数木铎校园 BBS 社区:uBG.k){Y1j,Yt
sr--页由时钟算法扫描木铎校园 BBS 社区i\E&D"v)@
disk 可以为四个磁盘报告每秒磁盘I/O的数量木铎校园 BBS 社区N~f0IPB2G:QIn+f~
faults 报告每秒系统软件中断和硬件中断的速率木铎校园 BBS 社区UsJs'FQ?1u
in-设备中断,不包括系统时钟中断木铎校园 BBS 社区!g!K$O`;]5@4u
pn0[a
sy-系统调用木铎校园 BBS 社区9UE-C#lK$v#GS
cs-CPU任务(上下文)交换木铎校园 BBS 社区(B(b |Ps e
cpu-- CPU故障时间的百分比,在多处理器系统上,这是全部处理器的平均值:木铎校园 BBS 社区I3t8inO
us- 用户时间
w%er0Gq!J d?I7Fd0sy-- 系统时间木铎校园 BBS 社区+xAQow [ig"g\A
id-- 闲置时间
#S&G8b7cTz0vmstat命令有四个可选标志可供使用。如果机器有虚拟地址缓存-c标志就改变输出报告缓存刷新统计数据。报告包括自从系统启动后每种缓存刷新全部总量。六个缓存类型是用户,上下文,区域,段,页,部分页。木铎校园 BBS 社区$~;\ qusa&L0B
-i标志 使输出变为报告中断的数量。如果给出设备名,如d1,d2等,监控将在设备级*执行,(*注,参阅第十二章有关打开设备级监控的信息。)并报告每个给定设备的统计信息。木铎校园 BBS 社区+a~5YQ&w#fZ S&Q
修改"普通"报告来显示交换而非页面调度活动的信息。这选项改变显示的两个字段:si(换入)和so(换出)替代了re和mf字段。
I,}Uv8z5t.R3hF
~0值得注意是,interval 和count选项对-i或-s选项是非法的。
5M
E
R.dp1@0s/d
g0vmstat 参数详解
.e&?jXyd5Ko:z4f0procs:木铎校园 BBS 社区/W+?|8Yd(Z-Q,A
r-->在运行队列中等待的进程数
U#\8vY!ARc7|Y0b-->在等待io的进程数
7?9d7Ld0Xy`0w-->可以进入运行队列但被替换的进程木铎校园 BBS 社区Bl4M ^q!D0g
"Lx;h-[[0木铎校园 BBS 社区'eU;Q w{w2cYy
Q
memoy
B#p6d+x:M{y0R0swap-->现时可用的交换内存(k表示)
O7C#\0J2?u6d0free-->空闲的内存(k表示)
木铎校园 BBS 社区+[0s*o#dP:vr
pages
zS}c
]&M0re--》回收的页面木铎校园 BBS 社区,qoM9}+eX
mf--》非严重错误的页面
@'I{k2?\t0pi--》进入页面数(k表示)
R)T#h
Z]@OaF0po--》出页面数(k表示)木铎校园 BBS 社区3X\,pB1`o
fr--》空余的页面数(k表示)木铎校园 BBS 社区%z_eMcy
de--》提前读入的页面中的未命中数木铎校园 BBS 社区K
K5c'~2ry
sr--》通过时钟算法扫描的页面
l
}9r9]r5lqK0disk 显示每秒的磁盘操作。 s表示scsi盘,0表示盘号
fault 显示每秒的中断数木铎校园 BBS 社区*B4WM]Sm]QO
in--》设备中断
Z\~R'X`)V}
J6z0sy--》系统中断木铎校园 BBS 社区 ^ @gwSRV*hm
cy--》cpu交换
iqa#JC;[-\0
}&^)c|F9vQ0cpu 表示cpu的使用状态木铎校园 BBS 社区
p!uG2OMT6rtO.L
cs--》用户进程使用的时间木铎校园 BBS 社区+Qy6l,nxP
sy--》系统进程使用的时间木铎校园 BBS 社区PNgkw7fz
id--》cpu空闲的时间木铎校园 BBS 社区/v"LbB
Wi|y7P!U
FIELD DESCRIPTIONS木铎校园 BBS 社区W0O!r E6e @H&Qj"@
木铎校园 BBS 社区G[ bkc"oProcs木铎校园 BBS 社区JhAcip]8Y
木铎校园 BBS 社区U.j%@P&H0nr: The number of processes waiting for run time.
_ uo1{)Ze0\(X2HU:p0b: The number of processes in uninterruptable sleep.木铎校园 BBS 社区_0n Mz?z9^
nZ f k:`:c[#r0w: The number of processes swapped out but otherwise runnable.
/U oNZte"`0木铎校园 BBS 社区 dno-kzs{Thisfield is calculated, but Linux never desperation swaps.木铎校园 BBS 社区-RE|2f#M3[+xU
uYa"tk.Cl1d1XR0木铎校园 BBS 社区kp sBZwryL`c w
j;] b&h4C4H0Memory
$[Xa0?@G$[+K0木铎校园 BBS 社区 ?b.T'N.g2Q$vQ\swpd: the amount of virtual memory used (kB).木铎校园 BBS 社区+o4q2c-jz5Fg!tq7BW
木铎校园 BBS 社区G6O0Paz Gfree: the amount of idle memory (kB).
u&A+K Y#}k}&H9F0木铎校园 BBS 社区m S;q ~BUbuff: the amount of memory used as buffers (kB).木铎校园 BBS 社区PyD"U)zz r
~QC9`B0
dB"QW _d&L0N,u/Zl/z!JV'q0Swap
4s+_:tw7@1g r]0r j0木铎校园 BBS 社区J)N,y)^Mbsi: Amount of memory swapped in from disk (kB/s). 虚拟内存的页导入(从SWAP DISK导入RAM)木铎校园 BBS 社区C7\E1K B$o(K
木铎校园 BBS 社区*N_1B)Xv.d#Rso: Amount of memory swapped to disk (kB/s). 虚拟内存的页导出.
%Y[,R9@9X1}0{\5OK.rJYe+R0(从RAM到SWAP DISK)
EH^*vx0木铎校园 BBS 社区X5W9FHAt木铎校园 BBS 社区A0l/A4bY$h!g
木铎校园 BBS 社区r1WIyUv;j KIO
%G)D@a"Q0'sLE"dB2`0bi: Blocks sent to a block device (blocks/s).
'W1E Ib`\]0YS0g ial(}7O5s0bo: Blocks received from a block device (blocks/s).木铎校园 BBS 社区F0dj|w8D
木铎校园 BBS 社区K1Q/Nuh%Cvlm'{O+Y~*J0%sq\?0oedI{0System
-fi*K4X,o(Lf!d.PO05_H:xq&X/l1R#A0in: The number of interrupts per second, including the clock.
?$R&?e2ZA ~0C|h"~t`9r ?0cs: The number of context switches per second.木铎校园 BBS 社区 @?6I@H!g
C:mr~`"q_0: CPU木铎校园 BBS 社区 `b Ixy$o Z~y
木铎校园 BBS 社区 Vg])OG!o\Z0eLThese are percentages of total CPU time.木铎校园 BBS 社区%R'K(~Mxg7@R
木铎校园 BBS 社区KC0CMuWT`xus: user time木铎校园 BBS 社区&Q,zy w*a~Xt C|
JSj_P\&t0sy: system time木铎校园 BBS 社区+e'|-s$zT'^GP-x E t@
~H$i JW)e3d5z0id: idle time木铎校园 BBS 社区1T X5aD,W!D
木铎校园 BBS 社区$uZ*uUH O;U/v如果 r经常大于 4 ,且id经常少于40,表示cpu的负荷很重。木铎校园 BBS 社区N4q;u.Y1@9f
y7C'wLU
如果pi,po 长期不等于0,表示内存不足。木铎校园 BBS 社区"b&U%r1n$U%Sc%zZ
如果disk 经常不等于0, 且在 b中的队列 大于3, 表示 io性能不好。木铎校园 BBS 社区%I#b)uMW.} i%O
HU5`;Cr/^H+X0由vmstat看服务器
xzM2H WYe01q0z1d#sZF|N*eQ0
S$o-c~ku0说明:由于STATSPACK并不能获取全面分析性能问题所需要的所有信息,所以需要扩展其收集服务器的统计信息。(本文环境REDHAT Linux7.2)
