基于 @EricWang's answer、HotSpot diagnostic command sources 和个人经验,我创建了 JDK 8u121 中可用的 jcmd 命令的完整列表以及有关要求等的其他详细信息。
帮助 [选项] []
有关特定命令的更多信息,请使用help <command>。如果没有参数,这将显示可用命令的列表。 help -all 将显示所有命令的帮助。
Arguments:
command name : [optional] The name of the command for which we want help (STRING, no default value)
Options: (options must be specified using the <key> or <key>=<value> syntax)
-all : [optional] Show help for all commands (BOOLEAN, false)
VM.uptime [选项]
打印虚拟机正常运行时间。
Options: (options must be specified using the <key> or <key>=<value> syntax)
-date : [optional] Add a prefix with current date (BOOLEAN, false)
VM.flags [选项]
打印 VM 标志选项及其当前值。
Options: (options must be specified using the <key> or <key>=<value> syntax)
-all : [optional] Print all flags supported by the VM (BOOLEAN, false)
VM.system_properties
打印系统属性。
VM.command_line
打印用于启动此 VM 实例的命令行。
虚拟机版本
打印JVM版本信息。
VM.native_memory [选项]
打印本机内存使用情况。
- 影响:中等
- 需要:
-XX:NativeMemoryTracking=[summary|detail]
Options: (options must be specified using the <key> or <key>=<value> syntax)
summary : [optional] request runtime to report current memory summary, which includes total reserved and committed memory, along with memory usage summary by each subsytem. (BOOLEAN, false)
detail : [optional] request runtime to report memory allocation >= 1K by each callsite. (BOOLEAN, false)
baseline : [optional] request runtime to baseline current memory usage, so it can be compared against in later time. (BOOLEAN, false)
summary.diff : [optional] request runtime to report memory summary comparison against previous baseline. (BOOLEAN, false)
detail.diff : [optional] request runtime to report memory detail comparison against previous baseline, which shows the memory allocation activities at different callsites. (BOOLEAN, false)
shutdown : [optional] request runtime to shutdown itself and free the memory used by runtime. (BOOLEAN, false)
statistics : [optional] print tracker statistics for tuning purpose. (BOOLEAN, false)
scale : [optional] Memory usage in which scale, KB, MB or GB (STRING, KB)
VM.check_commercial_features
显示商业功能的状态。
VM.unlock_commercial_features
解锁商业功能。
Thread.print [选项]
使用堆栈跟踪打印所有线程。
Options: (options must be specified using the <key> or <key>=<value> syntax)
-l : [optional] print java.util.concurrent locks (BOOLEAN, false)
GC.run
调用 java.lang.System.gc()。
GC.run_finalization
调用 java.lang.System.runFinalization()。
GC.rotate_log
强制轮转 GC 日志文件。
- 影响:低
- 需要:
-Xloggc:<filename> -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=<num>
GC.class_stats [选项] []
提供有关 Java 类元数据的统计信息。
- 影响:高:取决于 Java 堆大小和内容。
- 要求:
-XX:+UnlockDiagnosticVMOptions
Arguments:
columns : [optional] Comma-separated list of all the columns to show. If not specified, the following columns are shown: InstBytes,KlassBytes,CpAll,annotations,MethodCount,Bytecodes,MethodAll,ROAll,RWAll,Total (STRING, no default value)
Options: (options must be specified using the <key> or <key>=<value> syntax)
-all : [optional] Show all columns (BOOLEAN, false)
-csv : [optional] Print in CSV (comma-separated values) format for spreadsheets (BOOLEAN, false)
-help : [optional] Show meaning of all the columns (BOOLEAN, false)
GC.class_histogram [选项]
提供有关 Java 堆使用情况的统计信息。
Options: (options must be specified using the <key> or <key>=<value> syntax)
-all : [optional] Inspect all objects, including unreachable objects (BOOLEAN, false)
GC.heap_dump [选项]
生成 Java 堆的 HPROF 格式转储。
- 影响:高:取决于 Java 堆大小和内容。除非指定了
-all 选项,否则请求完整的 GC。
Arguments:
filename : Name of the dump file (STRING, no default value)
Options: (options must be specified using the <key> or <key>=<value> syntax)
-all : [optional] Dump all objects, including unreachable objects (BOOLEAN, false)
ManagementAgent.start_local
启动本地管理代理。
ManagementAgent.start [选项]
启动远程管理代理。
Options: (options must be specified using the <key> or <key>=<value> syntax)
config.file : [optional] set com.sun.management.config.file (STRING, no default value)
jmxremote.host : [optional] set com.sun.management.jmxremote.host (STRING, no default value)
jmxremote.port : [optional] set com.sun.management.jmxremote.port (STRING, no default value)
jmxremote.rmi.port : [optional] set com.sun.management.jmxremote.rmi.port (STRING, no default value)
jmxremote.ssl : [optional] set com.sun.management.jmxremote.ssl (STRING, no default value)
jmxremote.registry.ssl : [optional] set com.sun.management.jmxremote.registry.ssl (STRING, no default value)
jmxremote.authenticate : [optional] set com.sun.management.jmxremote.authenticate (STRING, no default value)
jmxremote.password.file : [optional] set com.sun.management.jmxremote.password.file (STRING, no default value)
jmxremote.access.file : [optional] set com.sun.management.jmxremote.access.file (STRING, no default value)
jmxremote.login.config : [optional] set com.sun.management.jmxremote.login.config (STRING, no default value)
jmxremote.ssl.enabled.cipher.suites : [optional] set com.sun.management.jmxremote.ssl.enabled.cipher.suite (STRING, no default value)
jmxremote.ssl.enabled.protocols : [optional] set com.sun.management.jmxremote.ssl.enabled.protocols (STRING, no default value)
jmxremote.ssl.need.client.auth : [optional] set com.sun.management.jmxremote.need.client.auth (STRING, no default value)
jmxremote.ssl.config.file : [optional] set com.sun.management.jmxremote.ssl_config_file (STRING, no default value)
jmxremote.autodiscovery : [optional] set com.sun.management.jmxremote.autodiscovery (STRING, no default value)
jdp.port : [optional] set com.sun.management.jdp.port (INT, no default value)
jdp.address : [optional] set com.sun.management.jdp.address (STRING, no default value)
jdp.source_addr : [optional] set com.sun.management.jdp.source_addr (STRING, no default value)
jdp.ttl : [optional] set com.sun.management.jdp.ttl (INT, no default value)
jdp.pause : [optional] set com.sun.management.jdp.pause (INT, no default value)
jdp.name : [optional] set com.sun.management.jdp.name (STRING, no default value)
ManagementAgent.stop
停止远程管理代理。
JFR.start [选项]
开始新的 JFR 录制
- 影响:中等:根据录制设置,影响范围从低到高。
- 需要:
-XX:+UnlockCommercialFeatures
Options: (options must be specified using the <key> or <key>=<value> syntax)
name : [optional] Name that can be used to identify recording, e.g. "My Recording" (STRING, no default value)
defaultrecording : [optional] Starts the default recording, can only be combined with settings. (BOOLEAN, false)
dumponexit : [optional] Dump running recording when JVM shuts down (BOOLEAN, no default value)
settings : [optional] Settings file(s), e.g. profile or default. See JRE_HOME/lib/jfr (STRING SET, no default value)
delay : [optional] Delay recording start with (s)econds, (m)inutes), (h)ours), or (d)ays, e.g. 5h. (NANOTIME, 0)
duration : [optional] Duration of recording in (s)econds, (m)inutes, (h)ours, or (d)ays, e.g. 300s. (NANOTIME, 0)
filename : [optional] Resulting recording filename, e.g. "C:\Users\user\My Recording.jfr" (STRING, no default value)
compress : [optional] GZip-compress the resulting recording file (BOOLEAN, false)
maxage : [optional] Maximum time to keep recorded data (on disk) in (s)econds, (m)inutes, (h)ours, or (d)ays, e.g. 60m, or 0 for no limit (NANOTIME, 0)
maxsize : [optional] Maximum amount of bytes to keep (on disk) in (k)B, (M)B or (G)B, e.g. 500M, or 0 for no limit (MEMORY SIZE, 0)
JFR.stop [选项]
停止 JFR 记录
- 影响:低
- 需要:
-XX:+UnlockCommercialFeatures
Options: (options must be specified using the <key> or <key>=<value> syntax)
name : [optional] Recording name,.e.g "My Recording" (STRING, no default value)
recording : [optional] Recording number, see JFR.check for a list of available recordings (JLONG, -1)
discard : [optional] Skip writing data to previously specified file (if any) (BOOLEAN, false)
filename : [optional] Copy recording data to file, e.g. "C:\Users\user\My Recording.jfr" (STRING, no default value)
compress : [optional] GZip-compress "filename" destination (BOOLEAN, false)
JFR.dump [选项]
将 JFR 录音的内容复制到文件中。必须指定名称或录制 ID。
- 影响:低
- 需要:
-XX:+UnlockCommercialFeatures
Options: (options must be specified using the <key> or <key>=<value> syntax)
name : [optional] Recording name, e.g. "My Recording" (STRING, no default value)
recording : [optional] Recording number, use JFR.check to list available recordings (JLONG, -1)
filename : Copy recording data to file, i.e "C:\Users\user\My Recording.jfr" (STRING, no default value)
compress : [optional] GZip-compress "filename" destination (BOOLEAN, false)
JFR.check [选项]
检查正在运行的 JFR 记录
- 影响:低
- 要求:
-XX:+UnlockCommercialFeatures
Options: (options must be specified using the <key> or <key>=<value> syntax)
name : [optional] Recording name, e.g. "My Recording" or omit to see all recordings (STRING, no default value)
recording : [optional] Recording number, or omit to see all recordings (JLONG, -1)
verbose : [optional] Print event settings for the recording(s) (BOOLEAN, false)