软件测试中性能调优的过程解析
上一篇 / 下一篇 2011-12-14 16:29:21 / 个人分类:性能测试
性能调优无疑是个庞大的话题,也是很多项目中非常重要的一环,性能调优的难做是众所周知的,毕竟性能调优涵盖的面实在是太多了,在这篇文章中我们蜻蜓点水般的来看看性能调优这项庞大的工程都有些什么过程,同时也看看这些过程中常见的一些做法。
Opdq!p w2ea?051Testing软件测试网] Ob|{.?确定性能调优的目标
&b2JMtJR051Testing软件测试网/m_O'|5V7x9ob性能调优,首先是要确定性能调优的目标是什么,如果现在应用已经满足了需求,就没必要去做性能调优了,毕竟不经过一个系统的过程,其实是无法确定你所做的性能调整是否真的调优了性能,是否没有造成应用中其他的问题,所以确定性能目标是非常重要的,在定义性能目标的时候通常这么定义的呢:51Testing软件测试网{ m4[~7H m
51Testing软件测试网2Kwl d|1、最大并发数
4_\8ZgF*S)y$s$K0Bv,B m @ xD02、Quality of Service51Testing软件测试网/k~w+e$Z.d4p
y%v#WU\+wK(@5E@1f0服务的质量,在软件系统方面我们认为主要表现在请求的出错率,系统的load等。51Testing软件测试网;[4n2GS#X{7sr
51Testing软件测试网6?g?FJ3、最长响应时间51Testing软件测试网 b E3kuyveNY
51Testing软件测试网#^Q/e)h+CG对于任何请求所能承受的最大响应时间。51Testing软件测试网.T-|m MD#^)t#n
z'K _1tJ04、TPS
^ wDW5z9PZ051Testing软件测试网W,Q a eA%yp.r每秒需要支持的最大事务数,最典型的指标是:“某页面最高需要支撑每秒7000次的访问次数”。51Testing软件测试网o8|UJE"z'?
#r#f I z'g5PLW,q0例如一个web系统,需要定义出来的目标是:
%C`sm}:`5r~ f051Testing软件测试网m uc(t2S-Qo.~At7g并发目标:最高支撑200并发;
X:S*z{ C^ g05G @Sx[8z)l0QoS:出错率须控制在万分之一,系统的load最高只能到达10;51Testing软件测试网b&F tn8{$Z.]r$|
L.m |fMY8a0TPS:每秒完成7000次请求的处理;51Testing软件测试网NA)sP2H,P
z;j%@]IQ0最大响应时间:最长允许的响应时间为5秒。51Testing软件测试网5I_q9U y^W
_/|P%sbhU2_,e*fY0至于请求的平均响应时间这些就不在性能调优目标中定义,因为要达到TPS的要求,响应时间是必须要达到一个级别的,而且响应时间随着高并发是会出现劣化的。
eM:M)jZFD'M051Testing软件测试网|y:} @M5A o当然,还可以把性能指标定到更为细节,例如某个方法的TPS在100并发时需要达到多少。
#kp.X R|-o051Testing软件测试网bD!B Vay%M在确定好了性能目标后,重要的就是如何来测量系统的性能了。
Wn`g @0Ss,F6`_%Gtb;T0测量系统性能51Testing软件测试网I&m%fLgqga6U6h
51Testing软件测试网h(s'c?9BUG8b对于新系统而言,需要评估出其正式运行时的数据量的增长情况;而对于已运行的系统,则需要根据监控获取到系统的运行数据(例如高峰并发数、系统的响应速度情况、系统的load、网络流量、每类请求在总的请求中所占的百分比等)。
*hTD ]Te0.LJ9b$xa.uYZS`0对于新系统而言,要评估出具体的性能相对来说稍微好做一点,因为此时系统通常较为单纯,数据量的增长也不可能是一夜之间增长的,因此基本可以按照一种正常的方法在测试环境评估出其正式运行的性能。
7ZnT!I?)kQj02o#Ll6M$ZtC i.R0而对于已运行的系统而言,则较为麻烦,因为通常来讲要在测试环境中模拟正式运行环境基本是不太可能的,因此这个时候通常要采取一些模拟的方法或更高压力的方法来尽量更为准确的评估出系统的性能。51Testing软件测试网zd ]{ q:b