• 性能分析思路


    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:一般是连接超时(查日志), 从几个方面排查,脚本问题、网络、服务器承受能力到了极限(监控系统资源),并发量超过系统处理能力会出现这种情况。

  • 相关阅读:
    HTTP协议中GET、POST和HEAD的介绍
    Django model 字段类型清单
    MySQL的菜鸟级操作
    windows7下将Cygwin加入右键菜单,并从当前目录打开
    数组指针和指针数组的区别
    const引用与非const引用
    printf("33[1;33m ***** 33[0m ");
    C语言可变参数函数详解示例
    机顶盒demux的工作原理
    机顶盒的工作原理
  • 原文地址:https://www.cnblogs.com/lynnetest/p/10084197.html
Copyright © 2020-2023  润新知