性能调优解析
Posted 天阳科技
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了性能调优解析相关的知识,希望对你有一定的参考价值。
性能测试其实是一个很庞大的工程,一个完整的性能测试项目大致可分为以下五个阶段:
1.需求调研:包含待测交易的确认,性能指标敲定;
2.场景模型的建立:根据待测交易的交易量分布情况建立测试场景;
3.环境搭建、数据准备以及脚本开发:性能测试环境的搭建,存量数据以及测试数据的准备,分析系统,选取开发脚本的语言编写测试脚本;
4.测试执行、调优:根据设定的测试场景进行测试,发现问题进行调优以及复测;
5.数据收集、形成报告:经回归测试后形成测试报告。
性能测试项目与功能测试项目的区别是周期短但技术层面要求更高,它基本涵盖了代码编写、操作系统以及各种相关软件的安装配置、数据库的操作,还需对问题定位分析以及调优。因此性能测试人员需要有一个长期的知识储备的过程,才能在项目实施过程中如鱼得水。
性能测试中的每个要素都可以深入地剖析,这里针对性能调优谈谈我个人的看法。
性能测试的目的就是为了发现性能瓶颈并解决。性能分析是为了确定导致性能瓶颈的原因,而调优就是用来解决性能瓶颈的,通过某些手段来让系统的性能得到提升是性能调优的主要目的。
性能分析主要有以下两种方法:
一、指标达成法
将测试结果与用户需求进行比较,如达到测试指标则表示测试通过。
例如:
1.系统满足10万注册用户(其中活跃用户数为1万)访问;
2.系统处理能力:20个注册/秒、45个并发浏览/秒、30个登录操作/秒;
3.服务器资源利用率在满负荷的情况下,忙时峰值CPU负载不超过75%,内存占用不超过80%。
二、最优分析法
通过分析并消除系统性能瓶颈,使系统的处理能力最大化,系统资源实现充分利用。
对应的性能调优方法也分为两大方向,如下图所示:
性能调优方向
1.应用程序诊断
应用程序诊断是性能测试的最初目的。通过模拟多用户操作形成负载,检验应用程序是否满足用户性能需求。如果不能满足则定位应用瓶颈,并寻找解决该瓶颈的方案,确保系统在修正后能够满足用户需求。对于一个项目来说,一般都以应用诊断为主。
2.系统调优
性能测试的目的不是为了满足用户,而是超越自己,这时需要做的是让系统能够比以前更加优化地运行。通过生成负载,对测试结果进行分析,并且准备大量的软硬件环境进行迭代测试,找出影响性能的要素,最终提升系统的性能。一般产品都会采用系统调优的方式来逐步完善系统性能。
常见的性能瓶颈为:
1.硬件上的性能瓶颈
一般指的是CPU、RAM方面的问题,分为服务器硬件瓶颈、网络瓶颈(不考虑局域网问题)、服务器操作系统瓶颈(参数配置)、中间件瓶颈(参数配置、数据库、Web服务器等)、应用瓶颈(SQL语句、数据库设计、业务逻辑、算法等)。
2.应用软件上的性能瓶颈
一般指的是应用服务器、Web服务器等应用软件,还包括数据库系统。
例如:在WebLogic平台配置了JDBC连接池参数,最大连接数为50,最小连接数为5,增加量为10。在测试时发现,当负载增加时,现有的连接数不足,系统会动态生成10个新的连接,导致交易处理相应时间大大增加。这时可以认为在应用软件上出现了性能瓶颈。
3.应用程序上的性能瓶颈
一般指的是开发人员新开发出来的应用程序。
例如:某程序员开发了一个缴费处理程序。在测试时发现,这个缴费处理程序在处理用户并发缴费请求时,只能串行处理,无法并行处理,导致缴费交易的处理响应时间非常长,这时可以认为在应用程序上出现了性能瓶颈。
4.操作系统上的性能瓶颈
一般指的是Windows、UNIX、Linux等操作系统的性能瓶颈。
例如:在Windows操作系统中,对某软件进行性能测试,出现物理内存不足时,如果虚拟内存设置也不合理,虚拟内存的交换效率就会大大降低,从而导致行为的响应时间大大增加。这时可以认为在操作系统上出现了性能瓶颈。
5.网络设备上的性能瓶颈
一般指的是防火墙、动态负载均衡器、交换机等设备。
例如:在动态负载均衡器上设置了动态分发负载的机制,当发现某个应用服务器上的硬件资源已经达到极限时,动态负载均衡器将后续的交易请求发送到其他负载较轻的应用服务器上。在测试时发现,动态负载均衡器机制没有起到相应的作用,这时可以认为在网络设备上出现了性能瓶颈。
性能瓶颈出现的原因及其定位是十分复杂的,这里只是简单介绍一下常见的集中瓶颈类型和特征,而性能测试所需要做的就是根据各种情况综合考虑,然后协助开发人员一起定位性能瓶颈。
在此只是很粗浅地说明了性能调优关注的一些点和面,在实际的项目实施过程中,需要根据实际场景执行结果,透过现象看本质,根据执行的结果响应时间和TPS的曲线图分析性能瓶颈。
(后续具体分析几个项目的案例予以说明。)
【关注天阳】
方法二:扫描下方二维码
了解更多天阳动态请登录我们的官方网站:
http://www.tansun.com.cn
以上是关于性能调优解析的主要内容,如果未能解决你的问题,请参考以下文章
《高性能SQL调优精要与案例解析》一书谈SQL调优(SQL TUNING或SQL优化)学习
《高性能SQL调优精要与案例解析》一书谈主流关系库SQL调优(SQL TUNING或SQL优化)核心机制之——索引(index)
Android性能优化——360°全方面性能调优指南(含内存优化布局优化实战解析等)
Android性能优化——360°全方面性能调优指南(含内存优化布局优化实战解析等)