问题标签 [jcmd]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
94 浏览

java - Java Flight Recorder 转储显示从 1970 年 1 月 1 日开始的时间线

使用jcmd命令启动 JFR 并创建记录转储时,在任务控制中打开生成的 .jfr 文件显示从 1970 年 1 月 1 日开始的时间线。

该问题仅发生在启动应用程序后的第一个记录转储中,任何后续转储都具有正确的时间戳。

无法在网上查找任何内容,希望提供有关如何解决它的任何提示。

在此处输入图像描述

使用的命令:
jcmd myApp JFR.start defaultrecording=true
jcmd $app_pid JFR.dump recording=0 filename=$dump_file

JVM版本:
Java HotSpot(TM) 64-Bit Server VM (25.271-b25) for linux-amd64 JRE (1.8.0_271-b25)

编辑:这仅在使用参数时发生defaultrecording=true

0 投票
1 回答
46 浏览

java - 在 Linux 上,一些 jcmd 命令无法使用

一些 jcmd 参数在 macos 或 windows 上可用,但在 Linux 上不可用,例如 VM.metaspace。如果我想在Linux中使用这个参数,我应该怎么做?

我的JDK版本都是11

0 投票
1 回答
107 浏览

java - 在 k8 pod 中运行 jcmd,权限被拒绝或无法打开套接字文件

对于带有 java 应用程序的 pod,有安全上下文:

部署清单:

如果我进入容器并运行

jcmd GC.heap_dump

-> 权限被拒绝 pic 1

如果我以 root 身份输入并运行

jcmd GC.heap_dump

-> 无法打开套接字文件 /proc/1/root/tmp/.java_pid1 ... pic2

如果我删除安全上下文并运行 jcmd GC.heap_dump -> 它可以正常工作。

可能是什么问题呢?

0 投票
1 回答
21 浏览

java - Java Heap 提交的内存大于 -Xmx

我正在尝试寻找 docker 容器内 Java Spring Boot 应用程序中的内存泄漏。

应用程序的堆大小限制如下:

本机内存差异如下所示:

本机内存跟踪:

总计:reserved=8295301KB +1728KB,committed=2794537KB +470172KB

进行堆转储后:

Leak Suspects报告非常小 - 45MB:

在此处输入图像描述

问题:为什么 Java 堆已提交=2245120KB - 几乎 2GB?它与-Xmx512m使用jmap.

0 投票
0 回答
15 浏览

java - Java 堆转储 - jsm-all GC.heap_dump

根据文档, jcmd 命令没有 -all 选项。 https://docs.oracle.com/javase/8/docs/technotes/guides/troubleshoot/tooldescr006.html

  1. 使用 -all 选项执行 jcmd。GC未触发,在GC日志中看不到【Full GC (Heap Dump Initiated GC)。

  2. 使用 -all 选项执行 jcmd。GC被触发,可以在GC日志中看到【Full GC (Heap Dump Initiated GC)】。

-all 选项是否有任何特定行为,文档中未提及。