1.1性能测试调整基础
所谓性能调整是为了改善系统某些方面的性能而对系统软件或者硬件进行的修改。性能调整不是测试人员的职责,性能测试工程师的主要任务是发现并定位性能问题。对于性能测试中发现的问题,通常由性能测试工程师、DBA、系统管理员、开发人员共同来解决。但是对于测试人员,了解调整的相关知识则是十分必要的。
在性能测试工作中经常会提到“性能调优”或者“系统调优”等概念。实际上,“性能调优”或者“系统调优”只是性能调整的一部分内容。例如,可能为了让某些部分“更优”而把某些部分调的“不优”,因此本书使用“性能调整”这一说法。
本节主要讨论性能调整的基础知识。性能调整应该按照一定的顺序进行,主要包括下面五个步骤:
1、 确定问题
首先要根据测试结果确定系统是否存在问题,重点是发现系统的瓶颈。如果存在,就应该确定是什么问题,并对问题进行正确的定位。确定系统问题从下面几个方面入手:
应用程序代码:通常情况下,很多程序的性能问题都是“写”出来的。因此对于发现瓶颈的模块,应该首先检查代码;
数据库配置:数据库配置经常会引起整个系统运行缓慢,一些诸如Oracle的大型数据库都是需要DBA进行正确的参数调整才能投产;
操作系统配置:操作系统配置不合理也可能引起系统瓶颈;
硬件设置:磁盘速度、内存大小等都是容易引起瓶颈的原因,因此这些也是分析的重点;
网络:网络负载过重会导致网络冲突和网络延迟。
同时,还要对系统的使用情况进行调查,例如:
是否听到了很多用户的抱怨?
是否某些操作的响应时间随着使用时间越来越长?
CPU的使用率是否很低而I/O的使用率却很高?
使用过程中性能是否稳定?
系统性能问题不是显而易见的,要仔细地查找才能够进行正确的定位。
2、 确定原因
确定系统存在问题后就要仔细分析,进而确定引起问题的原因。确定原因很大程度上靠的是团队的经验和技术能力,涉及的知识有操作系统、数据库、网络、程序开发等许多方面。
和确定性能问题一样,确定原因仍然要广泛地搜集信息。通常要进行以下的分析:
问题的影响是什么:响应时间还是吞吐量,或者其它问题?
是大多数用户还是少数用户遇到了问题?如果是少数用户,这几个用户与其他用户的操作有什么不同?
系统资源监控的结果是否正常:CPU的使用是否到了极限?I/O情况如何?
问题是否集中在某一类模块中?
是客户端还是服务器出现问题?