性能分析思路

1.检查是否是网络原因:

1)确认压测机和服务器是否在同一内网环境,没有走internet网络

2)检查压测机的服务器的网卡是否有带宽瓶颈,理论上不能超过最大带宽的70%

2.确认jmeter压测机是否存在压力不够,监控压测机的硬件资源,看占用是否偏高。可以通过以下方式提高压测机压力:

1)设置jmeter的jvm堆大小提高jmeter对压测机硬件资源利用率(一般为压测机内存的一半)。

2)部署jmeter压测机集群

3.分析是否是应用服务器问题

4.应用服务器硬件问题:

1)查看服务器CPU使用率是否偏高(>70%),CPU load负载是否大于CPU核数。

2)查看内存使用率是否偏高(>80%),注意服务器是否有把内存设置了swap缓存,如设置缓存使用率不超过70%。

3)查看磁盘使用率和磁盘IO是否异常偏高

5.应用服务器软件问题,主要有以下三个方面:

1)数据库和缓存问题

2)中间件(Tomcat)

3)业务逻辑和代码逻辑(第9步再分析)

6.数据库和缓存问题:

1)确认服务器是否开启了redis缓存或者本地缓存,根据经验redis缓存和本地可大幅提高TPS和降低响应时间(ps:本地缓存需根据具体业务评估是否可以开启,不具有普适性)

2)监控数据库连接数,看是否达到设定的最大值,可适当提高最大数据库连接数。

3)监控数据库,看是否存在慢的SQL语句,找出慢SQL的原因,进行优化。

4)监控全表扫描率,通过修改SQL语句尽量减少全表查询。

5)缓存命中率,检查系统是否启用查询缓存。此处可寻求DBA帮助,提高缓存命中率。

7.中间件(Tomcat),这主要监控服务器的TCP连接数和连接状态,看是否存在以下问题:

1)存在大量TIME_WAIT状态的连接,如果业务需要保持连接,则可通过开启服务器长连接优化此问题。

2)存在CLOSE_WAIT状态的连接,一般为代码问题,没有及时释放连接,需要具体分析。

3)连接数偏低,需要适当提高Tomcat线程池,和最大连接数,进行回归压测,寻找合适的配置。

8.如果以上指标都正常,监控查看Nginx各项指标,确认是否存在以下问题:

1)入口和出口流量是否达到带宽瓶颈

2)tcp连接数是否到了瓶颈,是否存在大量的TIME_WAIT状态的连接

3)响应时间是否偏高

4)负载均衡调度是否有问题

9.如果以上指标都正常的话,需要进一步分析业务逻辑和代码(eg:可以尽量减少不必要的日志打印)

报错问题分析

5XX错误:jmeter报告有5XX错误,需要开发或者运维查看Tomcat、Nginx日志,分析具体原因。

Non HTTP response code: java.net.ConnectException:一般是连接超时(查日志), 从几个方面排查,脚本问题、网络、服务器承受能力到了极限(监控系统资源),并发量超过系统处理能力会出现这种情况。

猜你喜欢

转载自www.cnblogs.com/lynnetest/p/10084197.html
今日推荐