老李在poptest的性能测试课上经常讲,想要做好性能测试要有方法论指导,另外要掌握技术细节,在调优的问题上,我们有了思路指引,工作开展起来就会很顺利。很多测试工程师都希望在性能调优方面深入学习,积累经验,下面提供一个思路。
性能调优是项目重要的一环,性能调优也是非常难的,因为性能调优涵盖的面太广,对于测试人员的要求非常高。(但是我们把思路和技术整合在一起,就变得很容易) 有些方法掌握了可以应用在不同的领域,比如说我们知道PDCA又称戴明环,在ISO9001:2008标准0.2过程方法中表述如下: “ PDCA”的方法可适用于所有过程。PDCA模式可简述如下: P——策划:根据顾客的要求和组织的方针,为提供结果建立必要的目标和过程; D——实施:实施过程; C——检查:根据方针、目标和产品要求,对过程和产品进行监视和测量,并报告结果; A——处置:采取措施,以持续改进过程业绩。
利用这个方法,我们来看如何做调优:
第一步(plan)确定性能调优的目标
性能调优,首先是要确定性能调优的目标是什么,如果现在应用已经满足了需求,就没必要去做性能调优了,毕竟不经过一个系统的过程,其实是无法确定你所做的性能调整是否真的调优了性能,是否没有造成应用中其他的问题,所以确定性能目标是非常重要的,在定义性能目标的时候通常这么定义的呢: 1、最大并发数 2、Quality of Service:服务的质量,在软件系统方面我们认为主要表现在请求的出错率,系统的load等 3、最长响应时间:对于任何请求所能承受的最大响应时间。 4、TPS:每秒需要支持的最大事务数,最典型的指标是:“某页面最高需要支撑每秒7000次的访问次数”
如:web系统,定义出性能目标: 并发目标:支撑200并发; QoS:出错率控制在千分之0.1,系统的load最高只能到达10; TPS:每秒完成1w次请求的处理; 响应时间:响应时间3秒内。 (性能调优一般不会定义响应时间,因为要求TPS,响应时间是必须要达到的,而且响应时间随着高并发是会出现劣化的)
第二步(do)测量系统性能:
分为两种类型: a.新系统:评估出其正式运行时的数据量增长情况; 对于新系统而言,很简单,因为此时系统通常较为单纯,数据量的增长也不可能是一夜之间增长的,因此基本可以按照一种正常的方法在测试环境评估出其正式运行的性能。
b.老系统:监控获取到系统的运行数据(例如高峰并发数、系统的响应速度情况、系统的load、网络流量、每类请求在总的请求中所占的百分比等)。
老系统比较复杂,因为通常来讲要在测试环境中模拟正式运行环境基本是不太可能的,因此这个时候通常要采取一些模拟的方法或更高压力的方法来尽量更为准确的评估出系统的性能。
测试系统性能方法: 1、单元测试;测试某个请求的性能; 2、压力测试;根据定义的性能目标对系统进行压力测试,以确定系统是否满足性能要求,同时也可以根据压力测试的结果来分析系统的瓶颈,进而进行对应的调优,可用于做压力测试的工具还是不少的,像loadrunner、jmeter等
第三步(check)分析系统瓶颈
根据测量系统性能的结果,多数是可以分析出系统性能的瓶颈,同时还可以结合像jvm堆栈、jprofiler、系统日志等来进行进一步的确定,另外也可以根据性能调优人员的经验,例如可以去了解开发人员是否采用了不适合的数据结构等
第四步(action)调优
分析出系统性能的瓶颈后,其实这一步相对来说还好做些,当然,需要建立在对软硬件知识都有很好的深入了解的基础上,在这里列举一些比较常见的性能调优的手段 a.Redhat Linux内核 b.JVM c.sql d.硬件等等
poptest性能测试讨论qq群:450192312
原文链接:http://www.cnblogs.com/laoli0201