jps
-l:输出进程的全类名,如果是jar包,则输出jar完整路径
-m:输出虚拟机进程启动时传递给主类main()的参数
-v:列出虚拟机进程启动时的jvm参数
注意:如果某java进程关闭了默认开启的UsePerfData参数(即使用参数-XX:-UsePerfData),那么jps命令(以及jstat)将无法探知该进程

jstat是用于监视虚拟机各种运行状态信息的命令行工具。它可以显示本地或者远程虚拟机进程中的类装载、内存、垃圾收集、JIT编译等运行数据。在没有GUI图形界面时,它将是运行期定位虚拟机性能问题的首选工具,常用于检测垃圾回收问题以及内存泄漏问题。
jstat -gc pid 1000 10 每隔1秒打印1次,共打印10次
各个参数含义:
新生代相关:
S0C:幸存区一的大小(字节)
S1C:幸存区二的大小(字节)
S0U:幸存区一已使用的大小(字节)
S1U:幸存区二已使用的大小(字节)
EC: Eden空间的大小(字节)
EU:Eden空间已使用的大小(字节)
老年代相关:
OC:老年代的大小(字节)
OU:老年代已使用的大小(字节)
方法区(元空间)相关:
MC:方法区的大小
MU:方法区已使用的大小
CCSC:压缩类空间的大小
CCSU:压缩类空间已使用的大小
其它
YGC:是指从启动到当前时刻young gc次数
YGCT:是指从启动到当前时刻young gc消耗的时间(秒)
FGC: 是指从启动到当前时刻full gc次数
FGCT:是指从启动到当前时刻full gc消耗的时间(秒)
GCT:是指从用启动到当前时刻gc消耗的总时间
jstat -gccapacity pid 1000 10显示与-gc基本相同,但输出关注Java各个区域使用到的最大,最小空间。
jstat -gcutil pid 1000 10显示内容与-gc基本相同,输出百分占比,例如:

jstat -gccause pid 1000 10该命令会额外展示gc产生的原因

jstat -gcnew pid 1000 10-gcnew:显示新生代gc状况
-gcnewcapacity:与上面基本相同,主要关注使用到的最大、最小空间
jstat -gcold pid 1000 10 -gcold:显示老年代gc状况
-geoldcapacity:与gcold基本相同,注意关注使用到的最大、最小空间
jstat -gcpermcapacity pid 1000 10该命令显示永久代使用到的最大最小空间。
jinfo是jdk提供的一个可以实时查看和修改java虚拟机各种配置参数和系统属性的命令工具。使用jps -v可以查看Java虚拟机启动时显示指定的参数,查看没有显示指定的参数就可以使用jinfo指令进行查看。
jinfo -flag name pid 查看指定的参数jinfo -flag MaxHeapSize 123 --查看进程123的堆区的最大值
jinfo -flag name=value pid 修改指定名称的参数,不需要重启jvm虚拟机jinfo -flag MaxHeapSize=2g 123 --设置进程123的堆区最大为2g
jamp的作用一方面是获取dump文件(堆转储快照文件,二进制文件),它还可以获取目标java进程的内存相关信息,包含java堆区各区域的使用情况,堆中对象的统计信息,类加载信息等
jmap -dump:live,format=b,file=filename.hprof pid 生成dump文件live:仅将存活的对象dump出
format:编码格式
flie:生成的文件名和路径