jps:
主要用来输出JVM中运行的进程状态信息
option:
-q 忽略输出的类名、Jar名以及传递给main方法的参数,只输出pid。
-m 输出传递给main方法的参数,如果是内嵌的JVM则输出为null。
-l 输出应用程序主类的完整包名,或者是应用程序JAR文件的完整路径。
-v 输出传给JVM的参数。
-V 输出通过标记的文件传递给JVM的参数(.hotspotrc文件,或者是通过参数-XX:Flags=<filename>指定的文件)
jstat:
jstat -<option> [-t] [-h<lines>] <vmid> [<interval> [<count>]]
-gcutil 统计heap的gc情况
-t 在第一列输出时间戳。该时间戳从jvm启动开始
-h3 每隔N行输出一次列表头
$PID 进程号
interval 输出间隔时间,单位毫秒
count 输出次数
Demo:
jstat -gcutil -t -h5 7919 1000 50
jinfo
观察运行中的java程序的运行环境参数:参数包括Java System属性和JVM命令行参数
Demo:
jinfo 14352
jinfo -sysprops 14352
jinfo -flags 14352
jinfo -flag MaxPermSize 14352
jmap
用来查看堆内存使用状况
Demo:
jmap -histo $PID 展示class的内存情况
jmap -heap $PID 展示Java堆详细信息
jstack [option] pid
主要用来查看某个Java进程内的线程堆栈信息
Option:
-F: 强制产生一个线程dump
-m: 打印java和native frames
-l: 打印关于锁的附加信息
Demo:
jstack -F $PID