线上服务难免会有异常,由于平时工作量比较大,当线上出现预警的时候也没有尝试去排查,导致想排查的是不知道如何入手。
现在业务量较小时间较多,就尝试了一次现场CPU飙升的异常排查。
也算是初次使用jprofiler来定位问题(一次jprofiler的使用记录)
使用到的工具:
- Grafana
- Jprofiler_v11.0
现象:有报警机制,知道是哪个业务服务触发暴击,所以直接定位到问题服务。可以直接看到cpu直接冲上上100%
devops也直接dump下来了问题内存堆栈

找到dump下载下来,通过jprofiler工具开始定位
打开文件:
按size倒叙,看到有个对象快达2个G

进入这个对象查看

可以看到这个大对象是sql查询出来的,然后定位是哪个栈具体的业务点


然后点开Biggest Objects

接着查看来源,这是看到了具体栈线程

然后查看该线程的具体业务有哪些,这时就看到了具体的业务内容
