jps -- Java Virtual Machine Process Status Tool
可以列出本机所有java进程的pid
jps [ options ] [ hostid ]
-q 仅输出VM标识符,不包括class name,jar name,arguments in main method
-m 输出main method的参数
-l 输出完全的包名,应用主类名,jar的完全路径名
-v 输出jvm参数
-V 输出通过flag文件传递到JVM中的参数(.hotspotrc文件或-XX:Flags=所指定的文件
-Joption 传递参数到vm,例如:-J-Xms48m
hostid:
[protocol:][[//]hostname][:port][/servername]
输出格式:
lvmid [ [ classname | JARfilename | "Unknown"] [ arg* ] [ jvmarg* ] ]
样例:
jps -v
jps -lv
====================================================
jstack -- Stack Trace
此命令打印java线程的堆栈跟踪,可以得知哪些线程被阻塞或正等待,以便于查找原因
jstack [ option ] pid
-m 打印混合模式(java,c/c++ stack trace)
样例:
jstack pid
====================================================
jmap -- Memory Map
此命令打印java的共享对象内存map和堆内存的细节
jmap [ option ] pid
-- 打印共享对象mapping
-dump:[live,]format=b,file= -- dump堆中的对象到文件
-finalizerinfo 打印等待回收对象的信息
-heap 打印堆总结
-histo[:live] 打印堆的对象统计,包括对象数、内存大小等等
-permstat 打印java堆perm区的classloader统计
-F 强制,在jmap -dump或jmap -histo中使用,如果pid没有相应的回复
-J 提供jvm选项,如:-J-Xms256m
样例:
jmap -heap pid
jmap -dump:live,file= dump堆中的live对象到文件
jmap -dump:file= dump堆中的所有对象
jmap -dump:live,format=b,file= 以二进制格式dump
========================================
jhat -- Java Heap Analysis Tool
-port jhat的http server端口号
-J 提供jvm选项
jmap -dump:live,file= -- dump堆中live对象到文件,可以利用jhat去查看dump文件
jhat 并且访问网址http://localhost:7000/
如果报内存不够,则用jhat -J-Xmx256m 即可
========================================
jconsole
使用JTop插件
<JDK6>/bin/jconsole -pluginpath <JDK6>/demo/management/JTop/JTop.jar