性能瓶颈定位思路
性能瓶颈定位思路
整体思路:从前到后,从表象到内部
1.首先排查压力机自身的问题,如CPU、内存、网络、脚本
2.监控中间件的访问日志,观察相应时间耗时,出现在哪一个环节。Tomcat、nginx、apache、mysql
3.排查网络问题,监控压力机到后端服务器的网络是否出现瓶颈
4.监控服务端的所有机器(Tomcat、nginx、apache、mysql)的操作负载,CPU、内存、网络、磁盘是否达到瓶颈
5.监控应用服务器日志,查看是否存在ERROR、timeout、等报错
6.监控中间件连接数是否达到上线,比如tomcat、nginx、mysql连接数是否达到上线
7.监控应用程序的线程状态,使用jstack、jvisualvm查看是否有死锁、阻塞等情况
8.监控应用程序的jvm,使用jstat、jamp查看gc情况,是否存在内存泄漏
9.监控耗时比较长的代码方法,使用jprofiler监控应用程序
10.监控数据库,是否存在慢查询,一般数据库CPU高都是因为sql语句效率低
11.监控数据库的执行计划,是否有全表扫描,预计索引不生效的情况
12.检查系统外部依情况,如果外部依赖系统性能差,也会造成本系统性能低
13.对于不好定位的问题,可以考虑采用模块隔离法来确定问题