交流经验,享受测试乐趣!!!

性能测试(并发负载压力)测试分析

上一篇 / 下一篇  2008-07-03 16:38:28 / 个人分类:LoadRunner

性能测试(并发负载压力)测试分析-简要篇
+\iqz c |;j0
!rPrGtP0作者:笑游天涯侠 51Testing软件测试网#_$`/Pd^

J]+E't x5L`0分析原则:51Testing软件测试网-Y)GPG*T2_
    • 具体问题具体分析(这是由于不同的应用系统,不同的测试目的,不同的性能关注点)51Testing软件测试网 g$[hI!O M6opbl
    • 查找瓶颈时按以下顺序,由易到难。51Testing软件测试网t&Q1H];p/R
    服务器硬件瓶颈-〉网络瓶颈(对局域网,可以不考虑)-〉服务器操作系统瓶颈(参数配置)-〉中间件瓶颈(参数配置,数据库web服务器等)-〉应用瓶颈(SQL语句、数据库设计、业务逻辑、算法等)51Testing软件测试网}c&W?;he4f4L2g
    注:以上过程并不是每个分析中都需要的,要根据测试目的和要求来确定分析的深度。对一些要求低的,我们分析到应用系统在将来大的负载压力(并发用户数、数据量)下,系统的硬件瓶颈在哪儿就够了。
bI$a9lYs,n0    • 分段排除法 很有效
u5C2C.G*k051Testing软件测试网 ji#zd w:y sPYI H0h
分析的信息来源:
;n [~j0{G/Cc9@.V0    •1 根据场景运行过程中的错误提示信息
0ak#A8y$W J(i0    •2 根据测试结果收集到的监控指标数据
'^] xm;J%T0
+E\ {yQ0一.错误提示分析
Qm b i6H@-\C0分析实例:
w1j0N7m|hw J2Y^01 •Error: Failed to connect to server "10.10.10.30:8080": [10060] Connection
0| rLb,j`,XCZ0  •Error: timed out Error: Server "10.10.10.30" has shut down the connection prematurely51Testing软件测试网Hq ve,u
51Testing软件测试网*Zy7i:RI5T%_}v
  分析:51Testing软件测试网;w8LlfAk3xG
•A、应用服务死掉。
@ch'Mr],z0   (小用户时:程序上的问题。程序上处理数据库的问题)
uR,S+D7o&T|0•B、应用服务没有死51Testing软件测试网]1B@LKduH
   (应用服务参数设置问题)51Testing软件测试网 qEq gF;Wh(L
    例:在许多客户端连接Weblogic应用服务器被拒绝,而在服务器端没有错误显示,则有可能是Weblogic中的server元素的AcceptBacklog属性值设得过低。如果连接时收到connection refused消息,说明应提高该值,每次增加25%
7f{)Jj3B W0•C、数据库的连接
1Ex7]w&Gj:S Lz~%P0   (1、在应用服务的性能参数可能太小了 2、数据库启动的最大连接数(跟硬件的内存有关))51Testing软件测试网H~|"G7Q#LK

7Q T-p%@YCl02  Error: Page download timeout (120 seconds) has expired 51Testing软件测试网T&n.`[ V}0z

1AN_~%Fdn0分析:可能是以下原因造成
^mx V,@B0•A、应用服务参数设置太大导致服务器的瓶颈51Testing软件测试网QW]5\{
•B、页面中图片太多
"N q,r:|-oJe0•C、在程序处理表的时候检查字段太大多51Testing软件测试网,D[/LEF#r,T&@L

-|&c0GEplE0二.监控指标数据分析51Testing软件测试网I:LNQ m qQ
1.最大并发用户数:51Testing软件测试网0F7eW {2BE|0b/j"^
应用系统在当前环境(硬件环境、网络环境、软件环境(参数配置))下能承受的最大并发用户数。51Testing软件测试网!VB1D3~w{HU
在方案运行中,如果出现了大于3个用户的业务操作失败,或出现了服务器shutdown的情况,则说明在当前环境下,系统承受不了当前并发用户的负载压力,那么最大并发用户数就是前一个没有出现这种现象的并发用户数。51Testing软件测试网UAqJJ X4Y`
如果测得的最大并发用户数到达了性能要求,且各服务器资源情况良好,业务操作响应时间也达到了用户要求,那么OK。否则,再根据各服务器的资源情况和业务操作响应时间进一步分析原因所在。51Testing软件测试网K7L6o$oJ'v5Q;C
51Testing软件测试网`R:D?%VWe#Gh
2.业务操作响应时间:
z3nS N6u(n SaX-v$v0• 分析方案运行情况应从平均事务响应时间图和事务性能摘要图开始。使用“事务性能摘要”图,可以确定在方案执行期间响应时间过长的事务。51Testing软件测试网m}&i2~fh]
• 细分事务并分析每个页面组件的性能。查看过长的事务响应时间是由哪些页面组件引起的?问题是否与网络或服务器有关?
4H:iW#\$k8hA.l8u0• 如果服务器耗时过长,请使用相应的服务器图确定有问题的服务器度量并查明服务器性能下降的原因。如果网络耗时过长,请使用“网络监视器”图确定导致性能瓶颈的网络问题
5D M? p$K03.服务器资源监控指标:51Testing软件测试网 R(Sx(lO m%|Q
内存:
p}UB!\4_8f`0    1 UNIX资源监控中指标内存页交换速率(Paging rate),如果该值偶尔走高,表明当时有线程竞争内存。如果持续很高,则内存可能是瓶颈。也可能是内存访问命中率低。51Testing软件测试网 Z&`k?{

"t m6r{z|m0    2 Windows资源监控中,如果Process\Private Bytes计数器和Process\Working Set计数器的值在长时间内持续升高,同时Memory\Available bytes计数器的值持续降低,则很可能存在内存泄漏。51Testing软件测试网R)E O*bt!R
51Testing软件测试网/U Yb1D9?
内存资源成为系统性能的瓶颈的征兆:51Testing软件测试网;j} ^5r3k8^
    很高的换页率(high pageout rate);
AW-U|,{1S1PF.?C0    进程进入不活动状态;
4[f#|1o HVh wG t0    交换区所有磁盘的活动次数可高;
R L-FmXyp0    可高的全局系统CPU利用率; 
Kp Ra/~`0    内存不够出错(out of memory errors) 
KW;MI oJ,e051Testing软件测试网 P} j6p%}(fJ#E[
处理器:51Testing软件测试网%D}`0p*R1C^-a9b$X
    1 UNIX资源监控(Windows操作系统同理)中指标CPU占用率(CPU utilization),如果该值持续超过95%,表明瓶颈是CPU。可以考虑增加一个处理器或换一个更快的处理器。如果服务器专用于SQL Server,可接受的最大上限是80-85% 
:t#R0[0Lgt0    合理使用的范围在60%至70%。51Testing软件测试网%C5I0QF?t)K-X
    2 Windows资源监控中,如果System\Processor Queue Length大于2,而处理器利用率(Processor Time)一直很低,则存在着处理器阻塞。51Testing软件测试网,}LY"Czy7tjes7IB
51Testing软件测试网 BiY p;oUT
CPU资源成为系统性能的瓶颈的征兆:   51Testing软件测试网3Z0k8O#x T4K"p#^
     很慢的响应时间(slow response time) 51Testing软件测试网oF:[:PE
     CPU空闲时间为零(zero percent idle CPU) 
-|/nY^n'n;Y0     过高的用户占用CPU时间(high percent user CPU) 51Testing软件测试网)? ]xm \ev b(x
     过高的系统占用CPU时间(high percent system CPU) 
q hWd |L%S0    长时间的有很长的运行进程队列(large run queue size sustained over time) 
uXM3d~Ql0\|a0
(e5K%\8SLl(}#{0磁盘I/O:
Q'E&l?,@0    1 UNIX资源监控(Windows操作系统同理)中指标磁盘交换率(Disk rate),如果该参数值一直很高,表明I/O有问题。可考虑更换更快的硬盘系统。51Testing软件测试网$z `C;MLy
    2 Windows资源监控中,如果 Disk Time和Avg.Disk Queue Length的值很高,而Page Reads/sec页面读取操作速率很低,则可能存在磁盘瓶径。 51Testing软件测试网U q/T8` L w*o7`?
51Testing软件测试网p'Fx reb!| q
I/O资源成为系统性能的瓶颈的征兆 :51Testing软件测试网5w%C"ik%J
     过高的磁盘利用率(high disk utilization) 51Testing软件测试网NaS,CuHx'l
    太长的磁盘等待队列(large disk queue length) 
hr}%R7^7} |I'w2j0    等待磁盘I/O的时间所占的百分率太高(large percentage of time waiting for disk I/O) 
D-O:n6RH}*z0    太高的物理I/O速率:large physical I/O rate(not sufficient in itself) 
!_)N e'`0P;T.X s x/q0    过低的缓存命中率(low buffer cache hit ratio(not sufficient in itself)) 
dc#|*G2s3WvY B0    太长的运行进程队列,但CPU却空闲(large run queue with idle CPU) 51Testing软件测试网O Etk(c1HBI A)s

M1X?zR-A04.数据库服务器:51Testing软件测试网4[ ~5EYe-W
SQL Server数据库:
\v*q!^JUup6j0    1 SQLServer资源监控中指标缓存点击率(Cache Hit Ratio),该值越高越好。如果持续低于80%,应考虑增加内存。51Testing软件测试网l y)s$p$_#L$\"S#py;b
    2 如果Full Scans/sec(全表扫描/秒)计数器显示的值比1或2高,则应分析你的查询以确定是否确实需要全表扫描,以及SQL查询是否可以被优化。 51Testing软件测试网/QD$C@vq6zB7Tj
    3 Number of Deadlocks/sec(死锁的数量/秒):死锁对应用程序的可伸缩性非常有害,并且会导致恶劣的用户体验。该计数器的值必须为0。51Testing软件测试网p+p-R5@Kb
   4 Lock Requests/sec(锁请求/秒),通过优化查询来减少读取次数,可以减少该计数器的值。51Testing软件测试网){fH)@y

+]l'f}k)Qt G0Oracle数据库:
x$\bO8C]0  1 如果自由内存接近于0而且库快存或数据字典快存的命中率小于0.90,那么需要增加SHARED_POOL_SIZE的大小。
f;O,R0TyX0    快存(共享SQL区)和数据字典快存的命中率: 
sB"pM#\ hy0   select(sum(pins-reloads))/sum(pins) from v$librarycache; 51Testing软件测试网i o fm%~"\
    select(sum(gets-getmisses))/sum(gets) from v$rowcache; 
K0Y.X~0jYW[!w7p0    自由内存:    select * from v$sgastat where name=’free memory’; 51Testing软件测试网I&IzQ'J
2 如果数据的缓存命中率小于0.90,那么需要加大DB_BLOCK_BUFFERS参数的值(单位:块)。51Testing软件测试网P []N"nz
  缓冲区高速缓存命中率:51Testing软件测试网n\(P;M6}-G t
    select name,value from v$sysstat where name in ('db block gets’,51Testing软件测试网Zz-D*L(@+E/@[
    'consistent gets','physical reads') ; 
^*V.mV8d'sx3S E1w0    
3`0yj]wo2I0    Hit Ratio = 1-(physical reads / ( db block gets + consistent gets))51Testing软件测试网)@L8br:oh
3 如果日志缓冲区申请的值较大,则应加大LOG_BUFFER参数的值。51Testing软件测试网g|5S!j8hWO6x%A
    日志缓冲区的申请情况 :51Testing软件测试网._7j&Qq|sx0Ut{q]h
     select name,value from v$sysstat where name = 'redo log space requests' ;51Testing软件测试网qC4X T:\o$f BpF
4 如果内存排序命中率小于0.95,则应加大SORT_AREA_SIZE以避免磁盘排序 。
i;r?q}*c0   内存排序命中率 :51Testing软件测试网e-lBtAv,N
     select 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)' 
4m(i)~,Z ]#H j[-x m0   
U$I4G#AS Qc)K7@q/V1{8Kp0   

TAG: LoadRunner

 

评分:0

我来说两句

日历

« 2024-04-29  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 12400
  • 日志数: 22
  • 图片数: 4
  • 建立时间: 2008-06-13
  • 更新时间: 2009-04-30

RSS订阅

Open Toolbar