性能调整基础知识--摘自《Web性能测试实战》第一章

news/2025/2/12 18:50:45

性能调整基础知识

所谓性能调整是为了改变系统特性而对系统软件或者硬件进行的修改,性能调整不是测试人员的职责,性能测试工程师的主要任务是发现并定位性能问题。对于性能测试中发现的问题,通常由性能测试工程师、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         调整是否可以结束了?

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



Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1526000



https://dhexx.cn/news/show-3787646.html

相关文章

大数据开发零基础需要学习什么内容?Storm实时开发

前面我们说到0基础学习大数据开发需要的Java基础、大数据基础和大数据技术学习的重点:Hadoop、Spark,今天继续来介绍大数据学习的重点之三:Storm实时计算。 Storm实时计算平台 (1)Storm简介: Storm是一个…

推荐一个正在发展的论坛--测试论坛中的《读者》

中国QA在线论坛(http://www.cnqa.cn/bbs/ )是由几个热爱软件测试事业的人士联合成立的论坛,其目的是把它做成一个像《读者》一样的精华文摘论坛,这样广大测试人员就可以快速找到精华资料,共同在一个好的论坛环境学习成长!论坛的创…

北京人均GDP破6000美元

北京人均GDP突破6000美元 住房汽车娱乐贡献稳增2007-01-25 00:14:17 来源: 中华工商时报  黑马推荐北京去年人均GDP突破6000美元,按北京常住人口1581万人计算,全市人均GDP达到49505元,按平均汇率折算为6210美元,按可比价格计算比…

HTML DIV+CSS 命名规范大全

END 碧茂课堂精彩课程推荐: 1.Cloudera数据分析课; 2.Spark和Hadoop开发员培训; 3.大数据机器学习之推荐系统; 4.Python数据分析与机器学习实战; 详情请关注我们公众号:碧茂大数据-课程产品-碧茂课堂 …

项目中的软件质量管理

项目中的软件质量管理本文发表于《软件世界》07年1月杂志,转载请注明。提起软件质量管理,人们更多地会想起ISO9001、CMM、CMMI这些“质量管理圣经”。但国内企业做了这么多年的质量认证,却没有使软件质量有大幅度地提高。实际上,很…

反思深度学习与传统计算机视觉的关系

如今,深度学习在众多领域都有一席之地,尤其是在计算机视觉领域。尽管许多人都为之深深着迷,然而,深网就相当于一个黑盒子,我们大多数人,甚至是该领域接受过培训的科学家,都不知道它们究竟是如何…

搭建Spring、Spring MVC、Mybatis和Freemarker

搭建Spring、Spring MVC、Mybatis和Freemarker 1、pom文件 <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/POM/4.0.0 http://maven.apach…

某公司盗用我的名字做虚假宣传

在2005年12月31日之前从Sun 中国技术社区下载中心&#xff08;http://gceclub.sun.com.cn/download.html&#xff09;下载NetBeans 4.1简体中文版并试用5 次以上的开发人员均会被自动加入Sun 中国技术社区的iPod抽奖名单。在2006年1 月1 日我们的系统会自动地从该名单中随机抽取…

《Pro ASP.NET MVC 3 Framework》学习笔记之八【Ninject的使用-上】

本次的笔记分为三个部分&#xff1a;Ninject(依赖注入容器&#xff0c;前面有介绍的&#xff0c;如果你第一次路过这里&#xff0c;可以先看下我前面的笔记)&#xff0c;NUnit(单元测试工具)&#xff0c;Moq(用来模拟在单元测试中的接口实现).今天我做的笔记是关于第一部分:Nin…

TensorFlow图像分类教程

深度学习算法与计算机硬件性能的发展&#xff0c;使研究人员和企业在图像识别、语音识别、推荐引擎和机器翻译等领域取得了巨大的进步。六年前&#xff0c;视觉模式识别领域取得了第一个超凡的成果。两年前&#xff0c;Google大脑团队开发了TensorFlow&#xff0c;并将深度学习…