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

利用vmstat、sar、iostat分析服务器性能

上一篇 / 下一篇  2011-06-07 16:43:48 / 个人分类:Linux

1.   cpu性能评估51Testing软件测试网EK5}7~8s1ce8u&Ro5c

1)利用vmstat命令监控系统CPU51Testing软件测试网K-|$a5k0|/z r

_"i~E6p'Nb)og9M c T0l      Procs51Testing软件测试网6|z#JTu0bZ7_*f1Y

'B9Dlgg0       r列表示运行和等待cpu时间片的进程数,这个值如果长期大于系统CPU的个数,说明CPU不足,需要增加CPU

W1kq q7K i0

*@-`}_s7^}s/E0       b列表示在等待资源的进程数,比如正在等待I/O、或者内存交换等。51Testing软件测试网y3K ZEo

\c7P Itv0l      Cpu

t4yd ew0

O_0^5I-r| J1O5\N0      us列显示了用户进程消耗的CPU时间百分比。us的值比较高时,说明用户进程消耗的cpu时间多,但是如果长期大于50%,就需要考虑优化程序或算法。51Testing软件测试网_)oj| A#QK

51Testing软件测试网*\#Le K)t)Rp_&n+a

       sy列显示了内核进程消耗的CPU时间百分比。Sy的值较高时,说明内核消耗的CPU资源很多。

6YR:a-t:Vmw0

Nbq3a5Zy0根据经验,us+sy的参考值为80%,如果us+sy大于80%说明可能存在CPU资源不足。51Testing软件测试网 ]a@P8uaq0j5I

y+V+l:}4?$aI} ~0我们利用vmstat 1查看51Testing软件测试网;w4kMJ,N Rpn9G J

51Testing软件测试网;O(he x2b

wwwr很小,b0,证明cpu无压力

q2a i;D'WV3{D0

4atpI_$^;Dc051Testing软件测试网0q%o8xQY N6t/D

h!r B(S z(^T3pJ0再看一下plus的,r很大,证明很多个进程在一起跑,但是us+ys又没有超过30%b经常很大,比bbs的还大,表明正在等待I/O、或者内存交换等,看来是内存或者io出现了问题。bbsus+ys超过70%反而不用等待,纳闷51Testing软件测试网$h7L x:H{ G*Y E*j X

xgr Z5A R E0

9Ef"hA@ }kp0

 Bbs的虽然r很大,但是b很小,所以很少等待的进程,还有us+sy超过75了,cpu有压力

,uz!s*d\ tp0

PklM*NP0

h/it `O0

5c} N!glSBx0 (2)利用sar命令监控系统CPU51Testing软件测试网d E?`,l[

@YU Za j? Ct7~0 sar -u 1 5或者sar 1 551Testing软件测试网/bW+S6Uj k

51Testing软件测试网-Q\JB6W$Aj#O

对上面每项的输出解释如下:51Testing软件测试网8wh UB3Pun#\9g

51Testing软件测试网*[f!KJ)y

l      %user列显示了用户进程消耗的CPU时间百分比。51Testing软件测试网"y)`N&~ T1i;b.F

51Testing软件测试网 w1Z5n6s8Q8~wSP

l      %nice列显示了运行正常进程所消耗的CPU时间百分比。

v1mHG:bt%o?,BG7x0

#zH&e8a)Nc Ba W0l      %system列显示了系统进程消耗的CPU时间百分比。

c9e0yb l8m{U c)|0

WXYVK5l6k8i0l      %iowait列显示了IO等待所占用的CPU时间百分比51Testing软件测试网(a#Xi(i`Ec

51Testing软件测试网 T)y"qHj]pC*v

l      %steal列显示了在内存相对紧张的环境下pagein强制对不同的页面进行的steal操作 %idle列显示了CPU处在空闲状态的时间百分比。51Testing软件测试网t6H.O'YA?#i

$Xv#k a"p t&I0wwwio等待很小、Plusio等待最大、Bbsio等待都没有那么大51Testing软件测试网 j k#D"F(r&{z[d

51Testing软件测试网+n2Zs-LB

51Testing软件测试网/dz6L6i{/|2K@

pidstat要另外安装。

fHU)eI$p^[;x W051Testing软件测试网Rz;N?+RH\4m)@

pidstat 2 5 51Testing软件测试网~(odKJT(IatQk H
//每隔2秒,显示5次,所有活动进程的CPU使用情况51Testing软件测试网"@]JC4V XKk Z
pidstat -p 3132 2 5 
~NS)\*R/G:b \0//每隔2秒,显示5次,PID为3132的进程的CPU使用情况显示
+M2t3G7{!\9[~v0
pidstat -p 3132 2 5 -r51Testing软件测试网$]H`.K0`1ggG
//每隔2秒,显示5次,PID为3132的进程的内存使用情况显示 

QhRe(Q|g051Testing软件测试网&D.C|&iyd ^H

查看CPU使用情况 51Testing软件测试网(k7K0{(uD WV

dt:@f!N;{a?0sar 2 5
!l{6Wl H7k,w%N0//每隔2秒,显示5次,CPU使用的情况51Testing软件测试网K W#o4Imj

7x Dl1z8u+`&LYz0   %usr:CPU处在用户模式下的时间百分比。 
[_O7E.zr(P AV0%sys:CPU处在系统模式下的时间百分比。 51Testing软件测试网 y6P(X_Du
%wio:CPU等待输入输出完成时间的百分比。 51Testing软件测试网/P4Z,x3r#MJ-U;k$b)m
%idle:CPU空闲时间百分比。 
0f [\2H,RW[/P051Testing软件测试网(WHF JEo$ru$HC
在所有的显示中,我们应主要注意%wio和%idle,%wio的值过高,表示硬盘存在I/O瓶颈, %idle值高,表示CPU较空闲,如果%idle值高但系统响应慢时,有可能是CPU等待分配内存,此时应加大内存容量。%idle值如果持续低于10那么系统的CPU处理能力相对较低,表明系统中最需要解决的资源是CPU。 51Testing软件测试网*o9E;_%an8S w

51Testing软件测试网U'~&v^(PN1~

 sar 1 10 > data.txt
p%Sch5_"o2xG0//每隔1秒,写入10次,把CPU使用数据保存到data.txt文件中。51Testing软件测试网0m[o.G1R5~&S
sar 1 0 -e 15:00:00 > data.txt51Testing软件测试网M ]"c S&Na-w/X9t
//每隔1秒记录CPU的使用情况,直到15点,数据将保存到data.txt文件中。(-e 参数表示结束时间,注意时间格式:必须为hh:mm:ss格式)
+ZQk kM0
sar 1 0 -r -e 15:00:00 > data.txt
D7{E&q~WC`0//每隔1秒记录内存使用情况,直到15点,数据将保存到data.txt文件中。
smZs0r5T`\0
sar 1 0 -n DEV -e 15:00:00 > data.txt

0Z1q2L&Q-vaJ0//每隔1秒记录网络使用情况,直到15点,数据将保存到data.txt文件中。51Testing软件测试网(Jr4I#s.@Kc

P Jo3n^No0例二:使用命行sar -v t n 
3\1[1mR+v!pM0
jh@%W#c(x N)w2Y-i0例如,每30秒采样一次,连续采样5次,观察核心表的状态,需键入如下命令: 51Testing软件测试网"}I+R?o,}g Tq9G+q
51Testing软件测试网t"E~bC*sz3G-}8M
# sar -v 30 5 
)r!V0r;r]o'q4X051Testing软件测试网i7V8z"B` x
例三:使用命行sar -d t n 
xz_rXP9r^0
7G"Y mGB/F0例如,每30秒采样一次,连续采样5次,报告设备使用情况,需键入如下命令: 
#ZVS/N)C#}051Testing软件测试网S],bg~*v.T*oM
# sar -d 30 5 
n H A9rY `C5P:mg,a0
gS5iz a(h$Rq0例四:使用命行sar -b t n 
]+l.ry t-v051Testing软件测试网nL-i{S9o
例如,每30秒采样一次,连续采样5次,报告缓冲区的使用情况,需键入如下命令: 
/L d-or5Vk8y/`1u$L4S051Testing软件测试网| qw~N5W/_&K
# sar -b 30 5 

q Rj:K!Q5G!c~ t0

2.内存性能评估51Testing软件测试网:_ ^%LJ)Y

1利用vmstat命令监控内存51Testing软件测试网#K@ b!FW I

Vmstat 151Testing软件测试网n1s;h%p#A `0d

[root@node1 ~]# vmstat 2 3

m;^u*o5_] l iM0

procs -----------memory----------  ---swap--  -----io---- --system--  -----cpu------51Testing软件测试网{1G v'Ya"BW3i

 r  b   swpd   free      buff  cache   si   so    bi    bo       in     cs     us sy  id  wa st51Testing软件测试网Rj7Q/_.Ety

 0  0    0    162240   8304  67032   0    0    13    21   1007   23     0  1  98   0  0

)^6j xgH'z}0

 0  0    0    162240   8304  67032   0    0     1     0     1010   20     0  1  100 0  051Testing软件测试网lm'[D1Q5N

 0  0    0    162240   8304  67032   0    0     1     1     1009   18     0  1  99   0  051Testing软件测试网 EZ&r2^O!W-I

l      memory

*a.N~k9FI+A0

       swpd列表示切换到内存交换区的内存数量(以k为单位)。如果swpd的值不为0,或者比较大,只要siso的值长期为0,这种情况下一般不用担心,不会影响系统性能。

z]7n5~4e[ V0

       free列表示当前空闲的物理内存数量(以k为单位)

{Yo:T*s6Wo0

       buff列表示buffers cache的内存数量,一般对块设备的读写才需要缓冲。

+E!t*Q)C&E8fX0

       cache列表示page cached的内存数量,一般作为文件系统cached,频繁访问的文件都会被cached,如果cache值较大,说明cached的文件数较多,如果此时IObi比较小,说明文件系统效率比较好。51Testing软件测试网m[ PGzR3y

l      swap51Testing软件测试网nb8M;daP

si列表示由磁盘调入内存,也就是内存进入内存交换区的数量。51Testing软件测试网oP3w/|5Q0alw K V

so列表示由内存调入磁盘,也就是内存交换区进入内存的数量。

ZM s0n{0F T6ot9F0

一般情况下siso的值都为0,如果siso的值长期不为0,则表示系统内存不足。需要增加系统内存。

?;X5XCV,}!Vo051Testing软件测试网;z-R!Xzja Z

 

'h Y9g7K8O'y5p0

T4U(Q%n/N%~,w&}4@0 51Testing软件测试网E,l5{s;]T/]Ugv7_

3:磁盘I/O性能评估利用iostat评估磁盘性能51Testing软件测试网|[kTTI DD N

1)利用iostat评估磁盘性能51Testing软件测试网T*yt#s[_d2n w

[root@webserver ~]#   iostat -d 2 351Testing软件测试网/\+S6Iig$\%r$^Kc

Linux 2.6.9-42.ELsmp (webserver)        12/01/2008      _i686_  (8 CPU)51Testing软件测试网E)O?^P+R

Device:         tps   Blk_read/s   Blk_wrtn/s   Blk_read      Blk_wrtn51Testing软件测试网;Z$G3Nd Joo"Q$ng

sda               1.87         2.58       114.12        6479462     28653737251Testing软件测试网f+Gi"v5m?V6u

Device:         tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn

[&Vv1w5Yq8`k%QQ0

sda               0.00         0.00         0.00              0                0

]!dg_$lbDNf0

Device:         tps   Blk_read/s   Blk_wrtn/s   Blk_read    Blk_wrtn51Testing软件测试网-J3c1A%]3],hWZ

sda               1.00         0.00        12.00             0                2451Testing软件测试网uYjfMni'c

对上面每项的输出解释如下:

){(x:JKO.sEmZ0

Blk_read/s表示每秒读取的数据块数。51Testing软件测试网@(}A!_8Nx3w1c

Blk_wrtn/s表示每秒写入的数据块数。

$yM` Xjx{5XFU0

Blk_read表示读取的所有块数。51Testing软件测试网k-l{,bS!f

Blk_wrtn表示写入的所有块数。51Testing软件测试网 SCF6iK}wwDk

Ø           可以通过Blk_read/sBlk_wrtn/s的值对磁盘的读写性能有一个基本的了解,如Blk_wrtn/s值很大,表示磁盘的写操作很频繁,可以考虑优化磁盘或者优化程序,如果Blk_read/s值很大,表示磁盘直接读取操作很多,可以将读取的数据放入内存中进行操作。51Testing软件测试网 hu'i? Y(kV&H

    对于这两个选项的值没有一个固定的大小,根据系统应用的不同,会有不同的值,但是有一个规则还是可以遵循的:长期的、超大的数据读写,肯定是不正常的,这种情况一定会影响系统性能

?[bm*\0

iostat -d 2每两秒刷新一次

` Ye!] |n/ub.n0

www的,写才2000多.Plus4000,比www的还高,bbs的太牛了2w

*["Le0T:Oh0

 51Testing软件测试网N^7U1c3cC(V:?

2)利用sar评估磁盘性能

LM#v2Md/p0

需要关注的几个参数含义:51Testing软件测试网 o'v4gPU*Y

       await表示平均每次设备I/O操作的等待时间(以毫秒为单位)。51Testing软件测试网9`OC%O T q S}9E/k

       svctm表示平均每次设备I/O操作的服务时间(以毫秒为单位)。

8]/rvH9h!F N4P$]0

       %util表示一秒中有百分之几的时间用于I/O操作。51Testing软件测试网:~y'Ol0Y4|9Kl8\!~+V-Z

对以磁盘IO性能,一般有如下评判标准:

GH8MA1ecr0

      正常情况下svctm应该是小于await值的,而svctm的大小和磁盘性能有关,CPU、内存的负荷也会对svctm值造成影响,过多的请求也会间接的导致svctm值的增加。51Testing软件测试网| _0Ue.?

       await值的大小一般取决与svctm的值和I/O队列长度以及I/O请求模式,如svctm的值与await很接近,表示几乎没有I/O等待,磁盘性能很好,如果await的值远高于svctm的值,则表示I/O队列等待太长,系统上运行的应用程序将变慢,此时可以通过更换更快的硬盘来解决问题。51Testing软件测试网,B ZfSx;k"p

       %util项的值也是衡量磁盘I/O的一个重要指标,如果%util接近100%,表示磁盘产生的I/O请求太多,I/O系统已经满负荷的在工作,该磁盘可能存在瓶颈。长期下去,势必影响系统的性能,可以通过优化程序或者通过更换更高、更快的磁盘来解决此问题。 

e(`0b[s[0

wwwsvctm的值与await很接近,表示几乎没有I/O等待,plusawait的值远高于svctm的值,则表示I/O队列等待太长,bbssvctm的值与await很接近,表示几乎没有I/O等待51Testing软件测试网8n~9]E]_b2_ U7V


TAG:

 

评分:0

我来说两句

vprince

vprince

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

日历

« 2024-05-06  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

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

RSS订阅

Open Toolbar