《Web性能测试实战》读书笔记--性能调整基础知识

一、性能分析的基本原则

确定测试结果有效之后,接下来就要开始对测试数据进行深入的挖掘了。面对测试工具产生的纷繁复杂的原始测试数据,如何来进行分析呢?一个普遍遵循的原则是“由外而内,由表及里,层层深入”,如下图所示。

                                                          

对于一个应用系统,性能开始出现下降的最直接表象就是系统的响应时间变长。于是,系统响应时间成为分析性能的起点。性能分析的原则如图5-1所示,首先应该从原始测试数据中查看系统响应时间,判断它是否满足用户性能的期望。如果不能满足,则说明系统的性能出现了问题。发现系统存在问题后,就要判断系统在哪个环节出现了瓶颈。

现在的IT系统架构极其复杂,任何一个环节出现瓶颈,都会导致系统出现性能问题。要准确地判断瓶颈在什么地方,的确是一个棘手的问题。不过,任何复杂的系统都分为网络和服务器两部分。因此要考察的第二个问题就是:系统的瓶颈是出现在网络环节,还是服务器环节?

如下图所示,用户从客户端发起的请求数据包经过网络,传递到应用服务器,最后到达数据库服务器,服务器处理完毕后按原路返回到客户端。在这个处理过程中,可以把整个时间分为两段:一段是Tn,即网络的响应时间;一段是Ts,即服务器的响应时间,包括应用服务器和数据库服务器的响应时间。对比TnTs,就很容易知道系统在哪些环节的响应时间比例较大。

                                  

只要判断出系统的瓶颈是出现在网络或是服务器段,就可以层层推进对相应环节的组件响应时间进行深入分析,直到最后找到造成性能问题的根本原因。

二、性能测试调整

所谓性能测试调整是为了改善系统某些方面的性能而对系统软件或硬件进行的修改。性能调整不是测试人员的职责,性能测试工程师的主要任务是发现并定位性能问题。对于性能测试中发现的问题,通常由性能测试工程师、DBA、系统管理员、开发人员共同来解决。但是对于测试人员,了解调整的相关知识则是十分必要的。

在性能测试工作中经常会提到“性能调优”或“系统调优”等概念。实际上,“性能调优”或“系统调优”只是性能调整的一部分内容。例如,可能为了让某些部分“更优”而把某些部分调得“不优”,因此本书使用“性能调整”这一说法。

性能调整应该按照一定的顺序进行,主要包括下面五个步骤:

(1) 确定问题

首先根据测试结果确定系统是否存在问题,重点是发现系统的瓶颈。如果存在,就应该确定是什么问题,并对问题进行正确的定位。

确定系统问题可从下面几个方面入手:

 1)  检查应用程序代码:通常情况下,很多程序的性能问题都是“写”出来的。因此对于发现瓶颈的模块,应该首先检查代码;

 2)  调整数据库配置:数据库配置经常会引起整个系统运行缓慢,一些诸如Oracle的大型数据库都需要DBA进行正确的参数调整才能投产;

 3)  调整操作系统配置:操作系统配置不合理也可能引起系统瓶颈;

 4)  检查硬件设置:磁盘速度、内存大小等都是引起瓶颈的原因,因此这些也是分析的重点;

 5)  检查网络:网络负载过重会导致网络冲突和网络延迟。

 同时,还要对系统的使用情况进行调查,例如:

 1)  是否听到了很多用户的抱怨?

 2)  某些操作的响应时间是否随着使用时间的增长而增长?

 3)  CPU的使用率是否很低而I/O的使用率却很高?

 4)  使用过程中性能是否稳定?

系统性能问题不是显而易见的,要仔细查找才能正确地定位。

(2) 确定原因

确定系统存在问题后就要仔细进行分析,进而确定引起问题的原因。确定原因很大程度上靠的是团队的经验和技术能力,涉及的知识有操作系统、数据库、网络、程序开发等许多方面。

和确定性能问题一样,确定原因仍然要广泛地搜集信息。通常要进行以下的分析:

 1)  问题的影响是什么:响应速度还是吞吐量,或者其他问题?

 2)  是大多数用户还是少数用户遇到了问题?如果是少数用户,这几个用户与其他用户的操作有什么不同?

 3)  系统资源监控的结果是否正常,如CPU的使用是否到了极限?I/O情况如何?

 4)  问题是否集中在某一类模块中?

 5)  是客户端还是服务器出现问题?

 6)  系统硬件配置是否合理?

 7)  实际负载是否超过了系统的负载能力?

 8)  是否未对系统进行优化?

通过这些分析以及系统的一些具体表现,可以对系统瓶颈有更深入的了解,进而分析出真正的原因。

(3) 确定调整目标和解决方案

在分析出问题发生的原因后,测试人员和系统调整人员首先要确定调整目标,然后设计解决方案。确定调整目标的主要作用是明确何时停止系统调整,否则工作将永无尽头。

每个系统都有不同的特点,因此调整目标可能各有不同。例如,下面这些都是系统的调整目标:

 1)  提高系统吞吐量;

 2)  缩短响应时间;

 3)  更好地支持并发;

设计解决方案的主要依据就是这些调整目标。有了明确的方案和目标,就可以进行后面的工作了。

(4 ) 测试解决方案

实施解决方案后,就要对方案进行测试。可以使用以前的测试用例来进行测试,验证系统是否解决了性能问题。测试解决方案尽量要在仿真环境下进行,因为在生产环境下可能会带来破坏,除非充分估计了测试的风险,并且准备了万全的补救方案。

(5) 分析调整结果

性能调整的最后一步是分析调整结果,如果问题没有得到解决,则要重复前面的工作。在测试系统调整方案过程中,要经常分析所做的工作。如果没能准确定位问题或调整方案不正确,可能会达不到预期目标。要尽早发现这些错误,以使工作早些回到正确的轨道上来。

分析结果时主要考虑下面的问题:

 1)  系统调整是否达到或超出了预定目标?

 2)  系统是整体性能得到了改善,还是牺牲了某部分性能来解决问题的?

 3)  调整是否可以结束了?

达到预期目标后,调整工作基本就可以结束了。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值