查看 Java 进程:jps


jps -mlvV


Java常用问题排查工具_java


查找进程相关线程堆栈信息:jstack


普通用法

jstack PID

jstack 27860


Java常用问题排查工具_系统启动_02

jstack -m PID 

jstack能得到运行java程序的java stack和native stack的信息

jstack -m PID


Java常用问题排查工具_系统启动_03



查看系统启动参数 jinfo


jinfo -flags 27860


Java常用问题排查工具_java_04


查看堆的情况 jmap

jmap -heap 27860


Java常用问题排查工具_远程调试_05

导出dump 文件


jmap -dump:live,format=b,file=D://heap2.bin 27860


jmap -dump:format=b,file=D://heap3.bin 27860


查看堆被谁占用了


jmap -histo 27860



Java常用问题排查工具_系统启动_06


或者配合 zprofiler 和 btrace 、eclipseMAT分析 dump 文件


查看 GC 情况


jstat -gcutil 27860


Java常用问题排查工具_远程调试_07


参数说明


S0C、S1C、S0U、S1U:Survivor 0/1区容量(Capacity)和使用量(Used)
EC、EU:Eden区容量和使用量
OC、OU:年老代容量和使用量
PC、PU:永久代容量和使用量
YGC、YGT:年轻代GC次数和GC耗时
FGC、FGCT:Full GC次数和Full GC耗时
GCT:GC总耗时


调试工具 jdb


远程调试端口是8000


jdb -attach 8000


JVM  参数配置


应用宕了,生成dump 


-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/home/admin/logs/java.hprof


查看哪些类被加载


-XX:+TraceClassLoading



Java常用问题排查工具_远程调试_08