一般会遇到以下几种问题:
1.CPU突然标高了,如何定位?
步骤:
1.找CPU 高的:得到进程ID
2.看进程信息:
3.定位到线程或者是函数
4.进程信息分两类:业务线程 和JVM的线程
4.1业务线程:查线程池
4.2 JVM:一定是GC
2.JVM静悄悄的退出了,没有报错,如何排查?
可能性:
1.JVM自身的OOM(内存溢出): 直接 heap dump on oom
2.JVM自身故障:
查crash线程信息
safepoint信息
锁信息
gc记录
JVM内存映射
native code cache
3.被Linux OOM killer 杀死
查日志:/var/log/messages
egrep -i 'killed process' /var/log/messages
3.如何排查对外内存?
工具:gperfttools
4.系统里的死锁?
用下面两种方法查看死锁:
4.1JVM 自带的 命令:jstack
4.2 arthas 命令:thread -b
5.日志分析工具
gceasy