1. 背景
线上应用服务单台机器的qps达到1w+。下游调用系统对于rt比较敏感,偶尔会出现熔断。导致大面积的报警。
2.监控分析
通过监控发现有一台机器的gc时间达到3ms,导致服务出现报警。
我们先用常规的方案来分析一下线上线程以及堆栈的信息,详细如下:
##查找进程里面cpu占用最高的线程
top -Hp pid
##top 线程
printf "%x\n" tid
## 查看线程是否有lock or waiting 的thread
jstack pid | grep tid
## jstat 查看gc的频次
通过 jstat -gcutil pid 时间间隔
## jmap 导出堆栈信息
jmap -dump:format=b,file=name.hprof pid
1.jstack分析线程的信息
直接通过 gceasy heaphero heapdump
三个网站分析即可。