本站内容均来自网络转贴内容,如涉及版权问题,请及时联系我,我会及时删除。。。

性能测试(并发负载压力)测试分析-简要篇(转叶帆小筑)

上一篇 / 下一篇  2007-04-03 11:05:26

 
   在论坛混了多日,发现越来越多的性能测试工程师基本上都能够掌握利用测试工具来作负载压力测试,但多数人对怎样去分析工具收集到的测试结果感到无从下手,下面我就把个人工作中的体会和收集到的有关资料整理出来,希望能对大家分析测试结果有所帮助。51Testing软件测试网T#N(H"~7q9A?7H['K

分析原则:51Testing软件测试网4c6drg&[ A0Z\

51Testing软件测试网 x6])vQ}"r

• 具体问题具体分析(这是由于不同的应用系统,不同的测试目的,不同的性能关注点)51Testing软件测试网[1|$Vk6jH'a(of

51Testing软件测试网S8Zr:V9{o

• 查找瓶颈时按以下顺序,由易到难。

]fE(z:q4M/g%|~051Testing软件测试网z%~J3jEv_

    服务器硬件瓶颈-〉网络瓶颈(对局域网,可以不考虑)-〉服务器操作系统瓶颈(参数配置)-〉中间件瓶颈(参数配置,数据库,web服务器等)-〉应用瓶颈(SQL语句、数据库设计、业务逻辑、算法等)51Testing软件测试网(l H3X B([

51Testing软件测试网e ` D"n-|b2U0O*yL

    注:以上过程并不是每个分析中都需要的,要根据测试目的和要求来确定分析的深度。对一些要求低的,我们分析到应用系统在将来大的负载压力(并发用户数、数据量)下,系统的硬件瓶颈在哪儿就够了。

$\"S{v!h_h)Sgn0

+o-nosL };AHK0• 分段排除法 很有效51Testing软件测试网U+Fq#e.e'V K|

51Testing软件测试网R3Q1p4Ut!pK!D

分析的信息来源:

YZk*A^%gl8n J`0

@5\x!ho}J0•1 根据场景运行过程中的错误提示信息

3D5w/~'V}Q{0

_6|Q0m0?t#wjaH0•2 根据测试结果收集到的监控指标数据

#S0N p}K"Ss^051Testing软件测试网]iT6j~ `l1u

一.错误提示分析

*^o.ZI*{\0

k5P S@Xh(Jf0分析实例:

0[3R2UQM} hd051Testing软件测试网"Z(V0Xm3@

1 •Error: Failed to connect to server “10.10.10.30:8080″: [10060] Connection51Testing软件测试网)E V'^[(v[ @*M

51Testing软件测试网I+R`d4@

•Error: timed out Error: Server “10.10.10.30″ has shut down the connection prematurely51Testing软件测试网|aW2N0fOyK

51Testing软件测试网3~sVI&_kps&_

分析:51Testing软件测试网,rj,wib/{

9I%\~ `F0S(XI0•A、应用服务死掉。51Testing软件测试网%Abp!Zbq/P

:[,_^em'a.V ?0(小用户时:程序上的问题。程序上处理数据库的问题)51Testing软件测试网UA$J.^#b(Vr JX

?]}g@2QQ0•B、应用服务没有死51Testing软件测试网on3U%QS'G

51Testing软件测试网1qOL k |}i)f'I

(应用服务参数设置问题)51Testing软件测试网6Y2|&{5C,e;e:lc

:X'n?^1[l^I3Y2v'k0    例:在许多客户端连接Weblogic应用服务器被拒绝,而在服务器端没有错误显示,则有可能是Weblogic中的server元素的AcceptBacklog属性值设得过低。如果连接时收到connection refused消息,说明应提高该值,每次增加25%51Testing软件测试网zV6A5I8s;z[N%|

51Testing软件测试网 Hq s/q6?6HXw1fr7u+R

•C、数据库的连接51Testing软件测试网L\(w:d-^E1p0[

^[~1Z3q0~Q0(1、在应用服务的性能参数可能太小了 2、数据库启动的最大连接数(跟硬件的内存有关))51Testing软件测试网 {'M*p ZHUNvQ!^

51Testing软件测试网 |?/L6E0J

2 Error: Page download timeout (120 seconds) has expired51Testing软件测试网TXfmj-wVT3[N7a

JV&^ rO0分析:可能是以下原因造成51Testing软件测试网K?#j-y Y#f1Y;C/K

M'eC/Oo1P5D3P0•A、应用服务参数设置太大导致服务器的瓶颈51Testing软件测试网C,j FSac't {b

p8jWK)o,T/w0•B、页面中图片太多

8H3h!jF)f Q0

cik"v:o9` ^2\0•C、在程序处理表的时候检查字段太大多51Testing软件测试网Lwh ^,Fx&~C_

51Testing软件测试网M+U v5Rx'B

二.监控指标数据分析

_3e/Com0

0o&~l M-P+A:Z m)b%b01.最大并发用户数:

5_,CwFwS#~i x051Testing软件测试网Ut DR:_y:d$o@g

应用系统在当前环境(硬件环境、网络环境、软件环境(参数配置))下能承受的最大并发用户数。

dq9^!Kg#g051Testing软件测试网Q+d4cm?;bE8bO

    在方案运行中,如果出现了大于3个用户的业务操作失败,或出现了服务器shutdown的情况,则说明在当前环境下,系统承受不了当前并发用户的负载压力,那么最大并发用户数就是前一个没有出现这种现象的并发用户数。

;YyJ&DW6g,f%s051Testing软件测试网$iEO} f_YF8^-h#I

    如果测得的最大并发用户数到达了性能要求,且各服务器资源情况良好,业务操作响应时间也达到了用户要求,那么OK。否则,再根据各服务器的资源情况和业务操作响应时间进一步分析原因所在。51Testing软件测试网%oE5oAH

51Testing软件测试网)jvT.VD

2.业务操作响应时间:51Testing软件测试网1};Kip Di5o ?

51Testing软件测试网o7~~+R"w5cG

    • 分析方案运行情况应从平均事务响应时间图和事务性能摘要图开始。使用“事务性能摘要”图,可以确定在方案执行期间响应时间过长的事务。

4FK9C"]%y(D:w$]051Testing软件测试网~rv g1H]5O

• 细分事务并分析每个页面组件的性能。查看过长的事务响应时间是由哪些页面组件引起的?问题是否与网络或服务器有关?51Testing软件测试网/d(S2f"c*P$x;@1t,x

51Testing软件测试网c3a0w-f Cy0V/G!U+m2E

• 如果服务器耗时过长,请使用相应的服务器图确定有问题的服务器度量并查明服务器性能下降的原因。如果网络耗时过长,请使用“网络监视器”图确定导致性能瓶颈的网络问题

e)`8Hh4?E&kjY051Testing软件测试网\OAa7G-p

3.服务器资源监控指标:51Testing软件测试网/}oj#@D

51Testing软件测试网7U1}|:R#wM w-qe-`R

内存:51Testing软件测试网!Sa7QA8z)EPH$p

:m0fJ6OE%G01 UNIX资源监控中指标内存页交换速率(Paging rate),如果该值偶尔走高,表明当时有线程竞争内存。如果持续很高,则内存可能是瓶颈。也可能是内存访问命中率低。51Testing软件测试网#C`G'bom)|

51Testing软件测试网0b7Zk#M8Yn0F9c

2 Windows资源监控中,如果Process\Private Bytes计数器和Process\Working Set计数器的值在长时间内持续升高,同时Memory\Available bytes计数器的值持续降低,则很可能存在内存泄漏。

kxWMw S/z0

?{l_atU-|0内存资源成为系统性能的瓶颈的征兆:

:b9HhU5wL|"?051Testing软件测试网h;?+Rt;b.w.O

很高的换页率(high pageout rate);51Testing软件测试网Z"P#d)K;U(Z,F.z

w7_ o)~!x Z7UV&ZW)Q0进程进入不活动状态;51Testing软件测试网%evf5]/X!J^-b:Of7h

51Testing软件测试网g@(o)?~`Q

交换区所有磁盘的活动次数可高;

#o7l&DX {9[p s0

8Q[L HGQ!h0可高的全局系统CPU利用率; 51Testing软件测试网Ar[J+y&t9A

51Testing软件测试网e-S`rv9bt!\y W

内存不够出错(out of memory errors)

d~g;T5w {0

JY.r.PuO0处理器:

NB4K6o `5Arp051Testing软件测试网5G9C*vLwL6u9s [ieG L

1 UNIX资源监控(Windows操作系统同理)中指标CPU占用率(CPU utilization),如果该值持续超过95%,表明瓶颈是CPU。可以考虑增加一个处理器或换一个更快的处理器。如果服务器专用于SQL Server,可接受的最大上限是80-85% 

)G8e+aP#g7@4T0

PpRX"}(mZ+T0合理使用的范围在60%至70%。

c+r.T$?V051Testing软件测试网3Zek$GCuI"d`Pl

2 Windows资源监控中,如果System\Processor Queue Length大于2,而处理器利用率(Processor Time)一直很低,则存在着处理器阻塞。

5G%_h'sKc0

{{Uj B-aIm0CPU资源成为系统性能的瓶颈的征兆: 51Testing软件测试网3D1h6B VG o"y

51Testing软件测试网-^LyqjNa&I^4\ h~

很慢的响应时间(slow response time) 

m4a"[.J4@ `(zs Zd4L;P0

0\R5S5z8j%m3kUs']+E'e0CPU空闲时间为零(zero percent idle CPU) 

&A;` n4i)w q8k'C2peP B0

F JDI?1@0过高的用户占用CPU时间(high percent user CPU) 

)n r ?0F9|"N^4^051Testing软件测试网)a"a)c ^,]

过高的系统占用CPU时间(high percent system CPU) 

eZJH0Ht0

7lv oG(u6u X,F6T0长时间的有很长的运行进程队列(large run queue size sustained over time)

,] HO1h+N{051Testing软件测试网6J!Lq'rL Oo

磁盘I/O:51Testing软件测试网V F _R,v"D%yJa,utr

51Testing软件测试网k`SdS!Q{P0U

1 UNIX资源监控(Windows操作系统同理)中指标磁盘交换率(Disk rate),如果该参数值一直很高,表明I/O有问题。可考虑更换更快的硬盘系统。

Y]7?,byG_ H\051Testing软件测试网1UR&XS.j \Q;@.{U;_

2 Windows资源监控中,如果 Disk Time和Avg.Disk Queue Length的值很高,而Page Reads/sec页面读取操作速率很低,则可能存在磁盘瓶径。51Testing软件测试网D f@ O,M5U7R5qk

51Testing软件测试网N"U ^4C0X

I/O资源成为系统性能的瓶颈的征兆 :

/~|N*eAB2K.tp0

Y7l0L J6KK0过高的磁盘利用率(high disk utilization) 

9Qmg|6H ]"I;L N;N051Testing软件测试网oGA,Z.fl)F!F

太长的磁盘等待队列(large disk queue length) 

d]U+gQ0

mt3jJG9I0等待磁盘I/O的时间所占的百分率太高(large percentage of time waiting for disk I/O) 51Testing软件测试网"KH%L;Gu2yml-Z;u

:]Fy,Z l;o0太高的物理I/O速率:large physical I/O rate(not sufficient in itself) 

z!\C jT0

6]5M3B)]0b'g3S0过低的缓存命中率(low buffer cache hit ratio(not sufficient in itself)) 51Testing软件测试网(d4w(WKq5i?

51Testing软件测试网9o5z&S,W9ks

太长的运行进程队列,但CPU却空闲(large run queue with idle CPU)51Testing软件测试网],fi2?+G Tn

`'Z.?f(B#s04.数据库服务器:

X~t!Uv051Testing软件测试网!Q cWG R

SQL Server数据库:51Testing软件测试网,{^z1jg'u8D

;V&xaX9?~+f}01 SQLServer资源监控中指标缓存点击率(Cache Hit Ratio),该值越高越好。如果持续低于80%,应考虑增加内存。51Testing软件测试网t/a~9[Y/X st-i3eF

8~3q:lO h M:W:N02 如果Full Scans/sec(全表扫描/秒)计数器显示的值比1或2高,则应分析你的查询以确定是否确实需要全表扫描,以及SQL查询是否可以被优化。 51Testing软件测试网p| Ref1O

KJX2q2p-a1x)JM03 Number of Deadlocks/sec(死锁的数量/秒):死锁对应用程序的可伸缩性非常有害,并且会导致恶劣的用户体验。该计数器的值必须为0。51Testing软件测试网D!dO!X8[0V

rS6zx`poV04 Lock Requests/sec(锁请求/秒),通过优化查询来减少读取次数,可以减少该计数器的值。51Testing软件测试网%W_b8d*~/T0B

51Testing软件测试网U.THeJ7tBM

Oracle数据库:51Testing软件测试网K,_ F(R+i&lhg

51Testing软件测试网Af)eB[B|qz*s

1 如果自由内存接近于0而且库快存或数据字典快存的命中率小于0.90,那么需要增加SHARED_POOL_SIZE的大小。

(] p S@?;v`5uN051Testing软件测试网-~*i/@*Xx$}V

快存(共享SQL区)和数据字典快存的命中率: 

S#I.V+b8cf O V D#M0

T6fN1my;aY0select(sum(pins-reloads))/sum(pins) from v$librarycache; 

:_-S/yT%T'y1d0

s9QQB'H7G0uq2x0select(sum(gets-getmisses))/sum(gets) from v$rowcache; 51Testing软件测试网PcO L.T/|ftZY

*A4Z1Z'](Wx/X0w4g0自由内存: select * from v$sgastat where name=’free memory’; 51Testing软件测试网.urEm X$B

)e2FRse/S1\&x02 如果数据的缓存命中率小于0.90,那么需要加大DB_BLOCK_BUFFERS参数的值(单位:块)。51Testing软件测试网:P"ptlE0\$wr8d

51Testing软件测试网:H&wWp-b6X

缓冲区高速缓存命中率:

}1l1y6h#U {M6Z051Testing软件测试网q \2qQux O |

select name,value from v$sysstat where name in (’db block gets’,51Testing软件测试网"o)e-WY/iz(mGH'c'h:T

51Testing软件测试网;JhYU.M5ty

‘consistent gets’,'physical reads’) ;

|#tGS!R0

y8_:K5R0b"xf0Hit Ratio = 1-(physical reads / ( db block gets + consistent gets))51Testing软件测试网/h n8[$^im$\

51Testing软件测试网bH\.xp.rz

3 如果日志缓冲区申请的值较大,则应加大LOG_BUFFER参数的值。

x#])ux!UokJK0

"jtL9l_pkD a/QX0日志缓冲区的申请情况 :51Testing软件测试网Xa R].Ct

51Testing软件测试网|]?,A? rU

select name,value from v$sysstat where name = ‘redo log space requests’ ;51Testing软件测试网+dh0il'hs5C

51Testing软件测试网6\/|D)~+P g

4 如果内存排序命中率小于0.95,则应加大SORT_AREA_SIZE以避免磁盘排序 。51Testing软件测试网)~)y,O X }%e9s'S

@T%o;hT"i4Fc1p`gu3f0内存排序命中率 :51Testing软件测试网n3y*f}l6W&yu:Re

;Z1R"xM ]0select round((100*b.value)/decode((a.value+b.value), 0, 1, (a.value+b.value)), 2)from v$sysstat a, v$sysstat b where a.name=’sorts (disk)’ and b.name=’sorts (memory)’51Testing软件测试网 _s"M#[9_$nb#Q1ko

51Testing软件测试网R6F-|o[gR

注:上述SQL Server和Oracle数据库分析,只是一些简单、基本的分析,特别是Oracle数据库的分析和优化,是一门专门的技术,进一步的分析可查相关资料。

ct%J^ `'a&_ Jk2W,_0

TAG:

zhao119843469的个人空间 引用 删除 zhao119843469   /   2012-02-01 13:56:03
5
good good study ,day day up! 引用 删除 ylian   /   2007-10-31 12:08:27
好。。。最近都在找这样一篇文章!谢谢!·
 

评分:0

我来说两句

Open Toolbar