JAVA 线上故障分析

内置工具及常用命令


工具 用途 Command Paremeters
jps 列出已装载的JVM    
jstack     打印线程堆栈信息

jstack [option] pid

-l 打印额外的锁信息

-m 输出C/C++信息
jstat JVM监控统计信息    
jmap     打印JVM堆内对象情况 jmap [option] pid -permstat 查看永久代对象信息
-heap 查看进程堆内存使用情况,包括使用的GC算法
-dump:format=b,file=dumpFileName 用jmap把进程内存使用情况dump到文件中,再用jhat分析查看
jinfo     输出JVM配置信息    
jconsole     GUI监控工具    
jvisualvm     GUI监控工具    
jhat     堆离线分析工具    
jdb     Java进程调试工具    
jstatd     远程JVM监控统计信息    
sudo -u \#2031 以2031的用户运行    
sudo chmod 777 filename      
zip myfile.zip filename.txt      
Case  
查找最耗费CPU资源的线程

top -Hp 30086 (最耗费CPU的线程)

printf "%x\n" 30531(转为十进制值)

jstack 30531| grep 7743(根据线程ID查找)

查看对象的内存使用情况 jmap -heap pid(查看堆使用情况)
jmap -histo:live pid(查看实例数和实例所占内存大小)
jmap -histo:live 17863|awk ‘{if(NR>3)a+=$3}END{print a}’ (统计所有实例所占内存大小)

 

GCViewer


 

BTrace


 

JMC, JFR(Java Flight Recorder)



 

你可能感兴趣的:(调试分析)