zoukankan      html  css  js  c++  java
  • 性能测试如何定位(思路)

    背景:上一篇写了一个如何开展测试,这篇就补充下如何定位性能问题,权当是一种思路;

    思路如下:(从前到后,从表象到内部)

    1. 首先排除压力机自身的问题,如CPU、内存、网络、脚本、应用环境等问题;
    2. 监控中间件的访问日志,观察响应时间,大体确定耗时处于哪一个阶段(把范围缩小);
    3. 排查网络问题,监控压力机到后端服务的网络,以及各服务间的网络,是否达到网络上线(网络问题一般不会出现,但是容易被忽略,条件允许的话,性能测试的网路独立);
    4. 监控服务端所有机器的操作系统负载,如CPU,内存,磁盘,网络是否达到瓶颈(这块主要监控应用服务器和数据库服务器操作系统级别的);
    5. 监控应用服务的日志,查看是否有ERROR,或者timeout级别的报错(主要打开部署应用,动态监控);
    6. 监控中间件的连接数,如Nginx、tomcat、MySQL 是否达到上限(目前项目中我就是查看了MySQL的连接数:show variables like '%connections%'和show status like '%thread%')
    7. 监控应用程序线程状态,使用jstack和jvisualvm查看是否有死锁、阻塞情况;(监控的方法关注后面的blog);
    8. 监控应用程序的jvm,使用jstat和jmap查看GC情况,是否有内存泄漏情况;
    9. 使用jprofiler监控应用程序,可以查看耗时时间比较长的代码(这个工具需要破解,在公司慎重使用,万一被安排上了,哈哈)
    10. 监控数据库,是否有慢查询,一般数据库cpu过高的原因都是慢查询(这个一般阿里云会提供这种服务,可以随时监控);
    11. 监控数据库执行计划,是否有全表扫描,以及索引不生效的情况;
    12. 检查系统是否有外部依赖情况,如果外部依赖性能很差,也会造成性能低下(这此压测主要的问题,就是因为外部依赖性能差的原因);
    13. 对于不好定位的问题,可以采用模块隔离的方法来确定问题
    14. ps :以上的思路都是理论,如何实践,还需要做项目时,亲自体会
  • 相关阅读:
    windows2008英文版设置文件夹选项
    vmware的使用技巧:将鼠标光标移回所在系统
    java最简代码规范总结
    oracle sql developer工具的使用
    java生成自定义证书图片4
    java生成自定义证书图片3
    java使用resource时,使用try-with-resources代替try-catch-finally
    java中利用BigDecimal进行精确计算
    mybatis分页插件pagehleper的基本使用
    mybatis中mapper映射文件中>=和<=等特殊符号的写法
  • 原文地址:https://www.cnblogs.com/Slowfish/p/11731036.html
Copyright © 2011-2022 走看看