一、linux 命令
1、top -c ---》打印进程的Gc情况
2、top -Hp 21398 ---》21398 为进程id ,可以查出进程下消耗最高的线程
3、jstack 23519 | grep '6D6C' -A20 ---》23519 为进程id ,6D6C 为线程id 转换为十六进制的数
4、通过命令 jstack 进程id > txt文件 ---》 将对应的进程id生成到对应的txt文件(这种相对于第三种是将日志打印在了txt文件)
第三和第四可以直接定位到代码行数
ps:
查看内存情况
jmap -heap 2422
jmap -dump:format=b,file=fileName.hprof 进程号(生成dump文件)
生产慢sql排查(dba有监控应该不用我们直接操作)
1、show profiles
2、show profile for query query_Id