前言:
※性能测试的目的就是评估当前系统的指标,分析定位解决性能瓶颈,预防规避性能风险
※通过某些手段让系统性能得到提高,是性能调优的主要目的。
※性能分析是为了确定导致性能瓶颈的原因,而调优就是用来解决性能瓶颈。
一、性能调优
1.硬件上的瓶颈
一般指的是cpu \RAM的问题,分为服务器硬件瓶颈、网络瓶颈(对局域网可以不考虑)、服务器操作系统瓶颈(参数配置)、中间件瓶颈(参数配置、数据库、web服务器等),应用瓶颈(数据库设计、SQL语句、业务逻辑、算法等)
例如:确定了在服务器数据库上需要6个CPU、12GB内存,但是在测试时发现,CPU的持续利用率超过95%,这时可以认为在硬件上出现了性能瓶颈。
2.应用软件上的瓶颈
例如:在weblogic平台上配置了JDBC连接池的参数,最大连接数为50,最小连接数为5,增加量为10。测试时发现,当负载增加时,现有的连接数不足,系统会动态生成10个新的连接,导致交易处理的响应时间大大增加。这时可以认为在应用软件上出现了性能瓶颈。
JDBC数据库连接池的概念
※初始连接数:
你去火车站买票时,卖票窗口就已经存在了。
※最大连接数:
春运期间,去火车站买票的人很多,既有的窗口已经无法满足买票需求,就会新增窗口,但是新增窗口是有上限的,并不是无限新增,设置最多新增数20,即同时最多只能有20个窗口卖票。
连接池初始化时只有5个连接对象,将最大连接数设置为20个。当5个客户端 占有了5个连接对时,连接池中就没有连接对象了,这时第6个客户端,第7个客户端来获取连接对象时,就会在为它们新增2个连接对象,但是最多只能有20个
※最小连接数:
在不是旅游高峰期和春运时,买票人不是很多,尤其是在凌晨时,没有必要开5个卖票窗口,这时可以关闭3个窗口。只留下两个窗口
※最大等待时间:
当20个连接对象都被占有时,设置一个最大等待时间,如果过了最大等待时间,则提示系统繁忙
※最大连接时间:
避免占着茅坑不拉屎情况,如果20个 连接对象都被获取,而这20个连接一直什么都不做,也不归还连接对象,这样后边的客户端将陷入无须等待
3.操作系统上的性能瓶颈
一般指的是LInux windows unix等操作系统
例如:在windows上对某软件进行性能测试,出现物理内存不足时,如果虚拟内存设置也不合理,虚拟内存的交换效率就会大大降低,从而导致行为的响应时间大大增加。这时可以认为在操作系统上出现了性能瓶颈。
二、一般性能调优步骤
1.确定问题
*应用程序代码:很多情况下,很多程序的性能问题都是写出来的。因此,对于发现瓶颈的模块,首先应该检查一下代码。
*数据库配置:经常引起整个系统运行缓慢,一些诸如Oracle的大型数据库都是需要DBA进行正确的参数调整才能投产的。
*操作系统配置:不合理就可能引起系统瓶颈。
*硬件设置:硬盘速度、内存大小等都是容易引起瓶颈的原因,因此这也是分析的重点原因
*网络:网络负载过重会引起网络冲突和网络延迟。
2.确定原因
当确定了问题之后,我们要明确这个问题影响的是响应时间吞吐量还是其他的问题。是多数用户还是少数用户遇到这个问题。如果是少数用户,这几个用户的操作与其他人有什么不同。系统资源监控的结果是否正常?CPU的使用是否达到极限?I/O情况如何?问题是否集中在某一类模块中?是客户端还是服务器出现问题?系统硬件配置是否够用?实际负载是否超过了系统的负载能力?是否未对系统进行优化?
通过这些分析及与系统相关的问题,可以对系统瓶颈有更深入的了解,进而分析出真正的原因。
3.确定调整目标和解决方案
提高系统吞吐量,缩短响应时间,更好的支持并发。
4.测试解决方案
对通过解决方案调优后的系统进行基准测试。
5.分析调优结果
原文链接:https://blog.csdn.net/qq_39208536/article/details/79515225
网友评论