内置工具及常用命令
工具 | 用途 | 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)