首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jcmd :在哪里可以找到补充信息?

jcmd :在哪里可以找到补充信息?
EN

Stack Overflow用户
提问于 2017-01-27 09:53:40
回答 2查看 3.2K关注 0票数 10

jcmd是重组jmap、jsp等实用工具的一种很有前途的工具。

你可以找到引言手册页,但仍然很轻。

在网络上,我发现了明显存在的命令,如GC.heap_info,这些命令我从未能够用于我的测试。

其中一些命令需要特殊的标志。例如,-XX:NativeMemoryTracking=detail将为您提供VM.native_memory命令。

但对其他一些人来说,不清楚如何激活它们,或者它是否依赖于jdk版本,等等。

我甚至找不到现有命令的详尽列表。

有什么消息吗?

编辑Thx到@apangin答复,我已经开始根据jvm版本计算可用命令的简短摘要。

免责声明:它只来自代码拆卸,而不是真正的测试。

jdk8

  • 帮助
  • VM.uptime选项
  • VM.flags选项
  • VM.system_properties
  • VM.command_line
  • VM.version
  • VM.native_memory选项
  • VM.check_commercial_features
  • VM.unlock_commercial_features
  • Thread.print选项
  • GC.run
  • GC.run_finalization
  • GC.rotate_log
  • GC.class_stats选项
  • GC.class_histogram选项
  • GC.heap_dump选项
  • ManagementAgent.start_local
  • ManagementAgent.start选项
  • ManagementAgent.stopJFR.start选项
  • JFR.stop选项
  • JFR.dump选项
  • JFR.check选项

jdk9

仅为附加的

  • VM.set_flag选项
  • VM.info
  • VM.class_hierarchy选项
  • VM.dynlibs
  • VM.print_touched_methods
  • JVMTI.data_dump
  • JVMTI.agent_load选项
  • GC.finalizer_info
  • GC.heap_info
  • ManagementAgent.status
  • ManagementAgent.stop
  • Compiler.queue
  • Compiler.codelist
  • Compiler.codecache
  • Compiler.directives_print
  • Compiler.directives_remove
  • Compiler.directives_add选项
  • Compiler.directives_clear
EN

回答 2

Stack Overflow用户

发布于 2017-01-27 11:52:19

基于@EricWang的回答HotSpot诊断命令源和个人经验,我创建了JDK8u121中可用的jcmd命令的完整列表,并提供了有关需求等的其他详细信息。

帮助选项

有关特定命令的更多信息,请使用help <command>。在没有参数的情况下,这将显示可用命令的列表。help -all将显示所有命令的帮助。

  • 影响:低
代码语言:javascript
复制
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选项

打印VM正常运行时间。

  • 影响:低
代码语言:javascript
复制
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标志选项及其当前值。

  • 影响:低
代码语言:javascript
复制
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实例的命令行。

  • 影响:低

VM.version

打印JVM版本信息。

  • 影响:低

VM.native_memory选项

打印本机内存使用情况。

  • 影响:中等
  • 要求:-XX:NativeMemoryTracking=[summary|detail]
代码语言:javascript
复制
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选项

打印所有具有堆栈痕迹的线程。

  • 影响:中介:取决于线程的数量。
代码语言:javascript
复制
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()。

  • 影响: Medium:取决于Java堆的大小和内容。

GC.run_finalization

调用java.lang.System.runFinalization()。

  • 影响: Medium:取决于Java内容。

GC.rotate_log

强制旋转GC日志文件。

  • 影响:低
  • 要求:-Xloggc:<filename> -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=<num>

GC.class_stats选项

提供有关Java类元数据的统计信息。

  • 影响:高:取决于Java堆的大小和内容。
  • 要求:-XX:+UnlockDiagnosticVMOptions
代码语言:javascript
复制
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堆使用情况的统计信息。

  • 影响:高:取决于Java堆的大小和内容。
代码语言:javascript
复制
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。
代码语言:javascript
复制
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选项

启动远程管理代理。

  • 影响:低:无影响
代码语言:javascript
复制
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
代码语言:javascript
复制
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
代码语言:javascript
复制
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
代码语言:javascript
复制
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
代码语言:javascript
复制
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)
票数 9
EN

Stack Overflow用户

发布于 2017-01-27 10:13:59

jcmd本身在应用于特定的Java时提供这样的信息,并且可以选择一个特定的子命令。

如何获得帮助:

  • 首先,通过jpsjcmd -l获取java进程列表,如果您还不知道目标java进程的pid,(例如,在后续步骤中,我将以pid 8976作为示例)。
  • 然后将help子命令应用于特定的java进程,例如jcmd 8976 help,它将列出该进程的可用子命令。
  • 然后,获取有关进程的特定命令的帮助,例如jcmd 8976 help Thread.print,它将打印Thread.print子命令的帮助。
  • 然后,在进程上执行特定的子命令,例如jcmd 8976 Thread.printjcmd 8976 Thread.print | less -N

顺便提一下,正如您所提到的,下面的链接简要地描述了jcmd命令:https://docs.oracle.com/javase/8/docs/technotes/guides/troubleshoot/tooldescr006.html

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41891127

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档