jcmd简介
在JDK1.7以后,Java新增了一个命令行工具jcmd。jcmd是一个多功能的工具,可以用来实现前面除了jstat之外所有命令的功能。比如:用它来导出堆、内存使用、查看Java进程、导出线程信息、执行GC、JVM运行时间等。
jcmd拥有jmap的大部分功能,并且在Oracle的官网上也推荐使用jcmd命令代替jmap命令。
官网:https://docs.oracle.com/en/java/javase/11/tools/jcmd.html
查看进程号(同jps)
查看指定的进程适用于哪些指令
查看线程信息(同jstack)
查看classs的直方图(同jmap -histo)
堆转储功能(同jmap -dump)
查看Java进程的运行时间
[root@bogon ~]# jstat -class -t 4622
Timestamp Loaded Bytes Unloaded Bytes Time
893.4 425 880.7 0 0.0 0.11
[root@bogon ~]# jcmd 4622 VM.uptime
4622:
897.023 s
打印系统的属性信息(jinfo -sysprops 进程号)
查看JVM启动后修改过的参数
jcmd 4622 VM.flags
jinfo -flags 4622