线上功能出现卡顿如何排查?

线上功能出现卡顿如何排查?

1、首先通过查看微服务上的日志,通过查看代码段之间的耗时进行定位

2、拿线上卡顿功能的相关sql去生产环境跑一下,是否是慢sql,是否需要进行sql优化

3、排查哪里产生的大量对象。

​ 出现卡顿,可能是JVM触发了GC,那就是有大量对象生成,如何排查?

3.1、在生产环境通过 jmap -dump pid 生成dump文件放到jvisualvm查看

3.2、直接通过 jmap -histo pid 查看堆内存中对象的大小

如果通过3步骤查看的对象太靠后,甚至于找不到:

3.4、通过jstack pid | grep -A 10 thread pid的方式来定位出现问题的线程栈的10行代码;

3.5、也可以通过jvisualvm的抽样器中的cpu/内存来查看,哪个对象或者哪个方法占用的cpu时间比较多(因为生成对象多,说明占用的cpu也会对应变多)

posted @ 2022-12-14 20:47  寻找的路上  阅读(214)  评论(0编辑  收藏  举报