【问题标题】:How to enable heap metrics for jfr via command line如何通过命令行为 jfr 启用堆指标
【发布时间】:2019-06-19 23:56:17
【问题描述】:
我正在尝试使用位于 /Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/bin/jcmd (Mac OS X) 的 jcmd 二进制文件运行 Java Flight Recorder。是否有命令行选项来启用与 Start Flight Recording UI 上的 Heap Statistics 选项相对应的堆指标:
【问题讨论】:
标签:
java
performance
metrics
jmc
jfr
【解决方案1】:
没有命令行或 jcmd 选项来启用堆统计
该事件在默认和配置文件设置文件中都被禁用,因为它在堆上迭代时会产生一个安全点。
但是,您可以在 JMC,Windows -> 模板管理器中使用模板管理器。并检查您想要的设置,即堆统计,然后导出文件。然后使用 jcmd 来应用它
jcmd <pid> JFR.start settings=my-configuration-file.jfc
如果您尝试诊断内存泄漏,可能有兴趣知道 Oracle JDK 10+ 和 OpenJDK 11+ 记录旧对象样本事件,该事件收集的信息通常对解决 Java 内存泄漏(以及没有安全点开销)。后来的 JDK 有选项 path-to-gc-roots=true(对于 jcmd 和 -XX:StartFlightRecording),可以提供额外的信息来解决内存泄漏。然而,该选项将产生与堆统计类似的开销,但比 HPROF 转储的开销要少得多,因为写入磁盘的数据要少得多。
【讨论】:
-
感谢您的回答!既然您已经提到它,我在定位 jmc 7 的二进制文件时遇到了麻烦。 jdk.java.net/jmc 似乎是空的,我似乎找不到任何替代方案。你有关于下载 jmc7 的 Mac OS 二进制文件副本的信息吗?
-
-