性能测试调整基础

原创 2007年09月27日 11:29:00
性能测试调整基础 1.1         性能测试调整基础
所谓性能调整是为了改善系统某些方面的性能而对系统软件或者硬件进行的修改。性能调整不是测试人员的职责,性能测试工程师的主要任务是发现并定位性能问题。对于性能测试中发现的问题,通常由性能测试工程师、DBA、系统管理员、开发人员共同来解决。但是对于测试人员,了解调整的相关知识则是十分必要的。
在性能测试工作中经常会提到“性能调优”或者“系统调优”等概念。实际上,“性能调优”或者“系统调优”只是性能调整的一部分内容。例如,可能为了让某些部分“更优”而把某些部分调的“不优”,因此本书使用“性能调整”这一说法。
本节主要讨论性能调整的基础知识。性能调整应该按照一定的顺序进行,主要包括下面五个步骤:
1、 确定问题
首先要根据测试结果确定系统是否存在问题,重点是发现系统的瓶颈。如果存在,就应该确定是什么问题,并对问题进行正确的定位。确定系统问题从下面几个方面入手:
l         应用程序代码:通常情况下,很多程序的性能问题都是“写”出来的。因此对于发现瓶颈的模块,应该首先检查代码;
l         数据库配置:数据库配置经常会引起整个系统运行缓慢,一些诸如Oracle的大型数据库都是需要DBA进行正确的参数调整才能投产;
l         操作系统配置:操作系统配置不合理也可能引起系统瓶颈;
l         硬件设置:磁盘速度、内存大小等都是容易引起瓶颈的原因,因此这些也是分析的重点;
l         网络:网络负载过重会导致网络冲突和网络延迟。
同时,还要对系统的使用情况进行调查,例如:
l         是否听到了很多用户的抱怨?
l         是否某些操作的响应时间随着使用时间越来越长?
l         CPU的使用率是否很低而I/O的使用率却很高?
l         使用过程中性能是否稳定?
系统性能问题不是显而易见的,要仔细地查找才能够进行正确的定位。
2、 确定原因
确定系统存在问题后就要仔细分析,进而确定引起问题的原因。确定原因很大程度上靠的是团队的经验和技术能力,涉及的知识有操作系统、数据库、网络、程序开发等许多方面。
和确定性能问题一样,确定原因仍然要广泛地搜集信息。通常要进行以下的分析:
l         问题的影响是什么:响应时间还是吞吐量,或者其它问题?
l         是大多数用户还是少数用户遇到了问题?如果是少数用户,这几个用户与其他用户的操作有什么不同?
l         系统资源监控的结果是否正常:CPU的使用是否到了极限?I/O情况如何?
l         问题是否集中在某一类模块中?
l         是客户端还是服务器出现问题?
l         系统硬件配置是否合理?
l         实际负载是否超过了系统的负载能力?
l         是否未对系统进行优化?
通过这些分析以及系统一些具体的表现,可以对系统瓶颈有更深入的了解,进而分析出真正的原因。
3、 确定调整目标和解决方案
在分析出问题的原因后,测试人员和系统调整人员首先要确定调整目标,然后设计解决方案。确定调整目标的主要作用是明确何时停止调整系统,否则工作将永无尽头。
每个系统都有不同的特点,因此调整目标可能各有不同。例如,下面这些都是系统的调整目标:
l         提高系统吞吐量;
l         缩短响应时间;
l         更好的支持并发;
设计解决方案的主要依据就是这些调整目标。有了明确的方案和目标,就可以进行后面的工作了。
4、 测试解决方案
实施解决方案后,就要对方案进行测试。可以使用以前的测试用例来进行测试,验证系统是否解决了性能问题。测试解决方案尽量要在仿真环境下进行,因为在生产环境下可能会带来破坏,除非充分估计了测试的风险,并且准备了万全的补救方案。
5、 分析调整结果
性能调整的最后一步是分析调整结果,如果问题没有得到解决,则要重复前面的工作。在测试系统调整方案过程中,要经常分析所做的工作。如果没能准确定位问题或者调整方案不正确,可能会达不到预期目标。要尽早发现这些错误,以使工作早些回到正确的轨道上来。
分析结果时主要考虑下面的问题:
l         系统调整是否达到或者超出了预定目标?
l         系统是整体性能得到了改善,还是牺牲了某部分性能来解决问题?
l         调整是否可以结束了?
 

Linux服务器性能评估与优化(一)

一、影响Linux服务器性能的因素  1. 操作系统级   Ø       CPU Ø       内存 Ø       磁盘I/O带宽 Ø       网络I/O带宽   2.        ...
  • hguisu
  • hguisu
  • 2015年01月18日 11:22
  • 33384

压力测试和性能测试的区别

性能测试就是用来测试软件在系统中的运行性能的。 性能测试可以发生在各个测试阶段中,即使是在单元层,一个单独模块的性能也可以使用白盒测试来进行评估,然而,只有当整个系统的所有成分都集成到一起之后,才能检...
  • niqinwen
  • niqinwen
  • 2013年04月07日 01:50
  • 2342

性能测试的目的与类型

1.1  性能测试目的 性能测试的最终目标是为了最大限度的满足用户的需求,我们通常为了达到以下目标而进行性能测试: (1)评估系统的能力:测试中得到的负荷和响应时间数据可以被用于验证所计划的模型的...
  • yuanjuxing
  • yuanjuxing
  • 2014年09月28日 11:27
  • 2006

常见的性能测试方法

负载、压力、并发、基准、稳定性、可恢复性(负压并基稳可) 1.负载测试 考察软件系统在既定负载下的性能表现指标。此指标一般体现为响应时间、交易容量、并发容量、资源使用率等。 2.压力测试 压力测试...
  • aa_moon
  • aa_moon
  • 2016年12月02日 15:53
  • 1274

测试-客户端性能测试(一)

2014年秋的时候,就开始打算写1个系列关于性能的,一直也比较懒。     游戏客户端性能这块话题还是很大的,首先从运行游戏的载体差异到,到用户觉察到版本交付时通过验收,到内存泄露,到场景设计. ...
  • jiazurongyu
  • jiazurongyu
  • 2015年11月27日 20:14
  • 1751

服务器性能测试

最近看了coolshell 上面一篇文章,《性能测试应该怎么做?》 原文链接如下:http://coolshell.cn/articles/17381.html?from=groupmessage&...
  • u201012980
  • u201012980
  • 2016年07月10日 23:04
  • 1932

性能测试应该怎么做?

偶然间看到了阿里中间件Dubbo的性能测试报告,我觉得这份性能测试报告让人觉得做这性能测试的人根本不懂性能测试,我觉得这份报告会把大众带沟里去,所以,想写下这篇文章,做一点科普。 首先,这份测试...
  • chenjian98306
  • chenjian98306
  • 2016年07月06日 14:53
  • 2628

性能测试方法(策略)

性能测试的层次是什么?软件开发中哪些要进行性能测试?
  • u012841352
  • u012841352
  • 2016年05月31日 20:34
  • 1555

Web性能测试工具推荐

WEB性能测试工具主要分为三种: 一种是测试页面资源加载速度的, 一种是测试页面加载完毕后页面呈现、JS操作速度的, 一种是总体上对页面进行评价分析 ~~~~如果谁有更好的工具也请一起分享下 ...
  • damys
  • damys
  • 2014年03月04日 11:40
  • 15456

性能测试1-分类和定义

本文是根据虫师博客的性能测试知多少系列,并结合自己实践经验修改后完成的,感谢虫师的分享。 性能测试常见分类                                        ...
  • u013121093
  • u013121093
  • 2017年02月25日 13:27
  • 445
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:性能测试调整基础
举报原因:
原因补充:

(最多只允许输入30个字)