电脑技术学习

性能测试是系统优化的有效手段

dn001

作者:郭松

对于一个比较成熟的业务系统来说,功能已经相对完善。但是在大业务量的情况下往往出现各种异常情况,这就需要通过修改系统配置或者调整产品框架来优化系统。

在优化系统的过程中,最有效的手段就是对系统进行性能测试。然后对测试过程中收集的数据进行分析,找出问题所在,不断对系统进行优化,最终达到系统在大业务量时稳定运行的目的。

1、明确测试方法

测试方法主要是通过测试步骤体现出来的。测试步骤不是一成不变的,而是根据每次的测试结果不断调整和完善。开始性能测试之前必须确定以下两个任务。

(1)建立业务模型。根据业务的开展情况,建立科学的业务模型。

(2)设置性能指标。性能指标作为判定设计和实际性能处理的基准值,必须在测试之前明确。

确定以上两点后就可以开始调整循环,进行一系列重复和受控的性能测试。调整循环步骤如图1所示。测试时需重复图1中的4个阶段,直到获得初始建立的系统性能目标。

性能测试是系统优化的有效手段

图1; 调整循环的4个阶段

2、测试

测试阶段是调整循环操作的起点,是根据测试要求进行的相关操作,并为结果统计提供相应的测试数据。该阶段需要考虑环境配置和测试用例两个方面。

2.1环境配置

不同的测试环境会产生不同的测试结果,因此测试前需要对环境配置进行具体的检查。主要检查以下几个方面。

(1)网络连通性。网络是否通畅是测试能否正常进行的基本前提。

(2)流量模型是否超出系统负荷。假如测试时施加的业务量远大于系统所能承受的负荷,则会对系统产生损伤,并在测试过程中出现宕机、告警等异常情况。

(3)被测系统的系统配置。系统配置包括软件和硬件两个方面。由于不同的系统配置会产生不同的测试结果,因此测试之前应对被测系统进行严格的核对,检查其是否符合测试要求。

(4)测试工具的参数配置。对于一个功能相对完善的测试工具来说,不但应能模拟大业务量,还应能配置压力递增方式、压力大小以及压力持续时间等参数,因此在测试之前需要检查相应的参数配置能否满足测试要求。

2.2测试用例

性能测试用例大体分为环境配置、预置条件、测试步骤、预期结果、判定原则和测试结果6个方面。

(1)环境配置是指依照测试需求配置测试环境,包括网络组网和系统参数配置等。

(2)预置条件是指为了真实模拟某些场景而需要在测试前预置的条件。

(3)测试步骤是指在环境配置和预置条件完成后,如何对系统加压的过程。一般来说,首先确定压力的生成形式(如阶梯递增、二次曲线递增等),然后确定压力递增的时间,最后确定压力保持时间。

(4)预期结果是指通过理论及经验分析,对实际测试结果的预期指标或现象。此内容是检验测试结果的依据。

(5)判定原则是制定标准以判定测试是否满足要求。判定原则的制定在很大程度上依靠于测试的预期结果。

(6)测试结果是根据实际的测试情况、预期结果以及判定原则等对性能测试作出的总体结论。

3、结果统计

结果统计是将测试结果进行统计的过程,此过程是调整循环中承上启下的阶段。此阶段统计的数据来源于上一次的测试结果,并为后续的数据分析提供依据。结果统计的数据可以来源于被测系统和测试工具两个方面,因此在统计过程中不但要考虑从被测系统获取的统计数据,还要兼顾测试工具本身的数据统计。从被测系统可以直接获取通过系统日志统计出的系统资源消耗;从测试工具本身可以统计压力大小、业务处理时延和业务处理成功率等。

4、结果分析

收集好系统所需的性能数据后,再对这些数据进行分析以确定系统瓶颈。需要明确的是,统计数据仅具有指示性,并不一定能准确地确定实际瓶颈的位置。因为性能问题可由多种原因引起,这就需要从系统角度来分析和查找原因。例如,对某邮件系统进行邮件转发业务流程测试过程中,在保持最大在线并发用户数时系统资源消耗在50%左右,假如单从这个数据表面来看,此邮件系统性能良好,即在保持最大用户数时系统资源还有很大的可利用空间,但是假如进一步分析就会发现此系统的邮件转发业务流程设计不太合理,还有很大的系统优化空间。因为对一个优化的系统来说,当其保持最大用户数时,系统资源消耗应在80%以上。

在进行结果分析时应注重以下几点。

(1)数据发现的敏感性。能够主动发现一些貌似“合理”的数据问题。

(2)数据分析的系统性。能够通过测试数据的表面,从系统角度对数据进行分析,尽快发现系统瓶颈。


;(3)数据合理的疑问性。测试的目的是发现问题,进而优化系统。因此应该抱着怀疑的态度分析测试数据,这样才能做到不遗漏任何“可疑”的数据。

(4)结果分析的分步性。根据测试经验,对测试结果的分析可以分为观察、初步假设、猜测、测试、控制和结论6步进行。结论由该过程积累的最佳证据集合所支持的假设组成。

5、系统优化

在循环调整过程中,前三个阶段的目的是对系统进行优化,因此系统优化的依据直接来源于对测试结果的分析。在通常情况下,对于一个比较成熟的系统来说,系统的绝大多数优化工作是对系统配置的优化,只有少部分是对系统设计的修改。

通过结果分析可大体定位系统出现问题的位置,随后就需要对系统配置进行更改。此优化过程大部分工作是尝试性和不间断性的,因此需要不断尝试改变参数配置,然后验证修改后的配置是否达到预期目的。假如没有达到预期目的,则需要进一步对配置进行修改和验证。根据测试经验,参数配置更改的原则是“一次仅实现一个配置的更改”。原因是对于系统某一个模块/单元出现的问题可能是由涉及多个模块/单元的瓶颈引起的,因此分别对问题进行处理很重要。假如同时进行多个更改,则难以准确地评定每次更改的影响。

配置更改后必须对修改后的系统进行测试,以确定更改对调整后的系统所产生的影响。假如性能达到预期水平,便结束测试;否则必须重新进入下一个调整循环阶段。