案例
压测过程中,某个接口,30个线程测试,平均响应时达到300多毫秒,TPS是70多,但是此时服务器资源占用都比较低。
问题分析 通过Jprofiler定位响应时间长的问题
1、Jprofiler安装配置
https://www.cnblogs.com/daydayup-lin/p/16147038.html
2、定位方法
(1)使用jprofiler的方法耗时统计功能,可以统计出每个方法的耗时:
(2)点击CPU views — Method Statistics
(3)点击监控按钮,开始监控进程的方法耗时
(4)等待30s(时间太短分析样本太少),点击停止监控按钮
(5)查看表格中的各方法耗时和调用次数
3、分析过程
(1)查看总览数据,数据正常
(2)线程多数是等待状态
(3)查看内存图,已使用内存(蓝色)走势也会比较正常的
(4)查看CPU,CPU消耗不算大
(5)下面查看method statistics,抓取30秒数据
从图中可以看出doFilter主要调用了time这个方法,从上到下一步步调用
上图中可以查看耗时比较长的是getDataFromDb/getDataFromRedis两个方法。
此时已经找到了有问题的方法,直接看源码找到这两个方法分析下或者直接反馈给开发
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/245278.html