IT工程师必备技能_性能测试、分析、优化的方法论.pdf

IT工程师必备技能_性能测试、分析、优化的方法论.pdf

  1. 1、本文档共17页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

IT⼯程师必备技能_性能测试、分析、优化的⽅法论

导读

从性能测试到分析再到优化,考验的是工程师的综合IT技能,初入性能领

域的工程师可能感觉到无从下手。本文主要介绍相关性能测试、分析、优化的方

法论,以帮助工程师制定合理可行的性能测试计划,有针对性的进行性能分析,

发现系统真正的性能瓶颈,并最终能够进行有效的性能优化。

前言

理论来源于实践又服务于实践,在笔者多年的IT经验中,性能问题一直是

相对复杂的高阶问题,从性能测试到分析再到优化,考验的是工程师的综合IT

技能。一个系统整体的性能牵扯到方方面面,硬件配置、网络配置、操作系统、

中间件、应用架构、代码质量等等都会影响到系统的整体性能。初入性能领域的

工程师可能感觉到无从下手。本文主要介绍相关性能测试、分析、优化的方法论。

希望通过方法论的学习,可以帮助工程师在复杂纷乱的环境下明确性能目标,制

定合理可行的性能测试计划,有针对性的进行性能分析,发现系统真正的性能瓶

颈,并最终能够进行有效的性能优化。

1相关概念介绍

1.1软件测试分类

软件测试按照测试阶段、是否运行程序、是否查看源代码以及其他方式,可

以用下图所示来描述软件测试的各种分类。

1.2性能测试分类

系统的性能是一个很大的概念,覆盖面非常广泛,对一个软件系统而言,包

括:执行效率、资源占用、系统稳定性、安全性、兼容性、可靠性、可扩展性等。

性能测试是为描述测试对象与性能相关的特征并对其进行评价,而实施和执行的

一类测试。它主要通过自动化的测试工具模拟多种正常、峰值以及异常负载条件

来对系统的各项性能指标进行测试。通常大家把性能测试、负载测试、压力测试

统称为性能测试。

1.基准测试:在给系统施加较低压力时,查看系统的运行状况并记录相关数

作为基础。

2.负载测试:是指对系统不断地增加压力或增加一定压力下的持续时间,直

到系统的某项或多项性能指标达到安全临界值,例如某种资源已经达到饱和状态

等。

3.压力测试:压力测试是评估系统处于或超过预期负载时的运行情况,关注

点在于系统在峰值负载或超出最大载荷情况下的处理能力。

4.稳定性测试:在给系统加载一定业务压力的情况下,使系统运行一段时间,

以此检测系统是否稳定。

5.并发测试:测试多个用户同时访问同一个应用、同一个模块或者数据记录

时是否存在死锁或者其他性能问题。

1.3不同视角下的软件性能

用户视角的软件性能

从用户的角度来说,软件性能就是用户操作软件的响应时间;用户所体会到

的“响应时间”既有客观的成分,也有主观的成分。例如,用户执行了某个操作,

该操作返回大量数据,从客观的角度来说,事务的结束应该是系统返回所有的数

据响应时间应该是从用户操作开始到所有数据返回完成的整个耗时;但从用户的

主观感知来说,如果采用一种优化的数据呈现策略,当少部分数据返回之后就立

刻将数据呈现在用户面前,则用户感受到的响应时间就会远远小于实际的事务响

应时间。对于典型的交互系统,2s之内的响应时间通常是被用户所接受的;如果

响应时间为5s时,用户的满意程度将会受到一定的影响;当交易响应时间为10s

时,那么大多数用户将会不耐烦地关闭交易页面,显然这是非常糟糕的用户体验。

管理员视角的软件性能

管理员视角有时候也就是运维人员的视角。对于运维人员来说,响应时间当

然也很重要,运维方关注更多的是系统运行是否平稳(响应时间或者交易吞吐量

是否有剧烈波动),CPU、内存、存储等关键资源是否充足。另外,对于银行这样

拥有海量用户和较高交易吞吐量的企业来说,系统是否具有较好的可扩展性是很

关键的(这决定了是否能够通过资源调配和扩充平稳度过业务高峰),包括:

1.系统的响应时间

2.系统状态的相关信息,如CPU、内存、应用服务器状态、JVM可用内存、

数据库的状态等

3.系统的可扩展性,即处理并发的能力

4.系统可能的最大容量和可能的性能瓶颈,通过更换哪些设备或是进行哪

些扩展能够提高系统的性能。

5.长时间运行是否足够稳定,是否能够不间断地提供业务服务等。

开发视角的软件性能

开发人员对性能的关注点更多的是系统

您可能关注的文档

文档评论(0)

steven + 关注
实名认证
内容提供者

系统集成项目管理工程师、AMAC基金从业资格证持证人

该用户很懒,什么也没介绍

领域认证该用户于2023年08月23日上传了系统集成项目管理工程师、AMAC基金从业资格证

1亿VIP精品文档

相关文档