问题标签 [jfr]

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 投票
2 回答
223 浏览

java - Java Mission Control 空格是什么意思?

我想分析我的课程,它就像一个缓冲区,我保存用户数据并在之后获取它。我已经创建了 main 方法并在那里无限循环地运行测试方法。

msgSeqNum 是全局变量,我这样做是为了让 JVM 不删除我的调用(我认为它可以帮助我)。

我对它进行了 30 秒的分析,但正如我所见,我的代码运行了大约 40 次(我预计会有几千次)。我还看到了 JMC 中的空格(见截图),这表明我的 JVM 什么也没做。没有 GC、异常、外观、等待时间,我的代码运行速度非常快。

我尝试运行它几次,但我得到了相同的结果。为什么会这样?

操作系统 - 窗口

0 投票
3 回答
1934 浏览

java - JMC Flight Recording是否强制Full GC?

我在 OSB 中实现的服务中遇到了一些与性能相关的问题(大部分时间都可以正常工作,并且不时会出现从 100 毫秒到 4/5 秒的响应时间峰值,没有明显的原因)。解释这种情况的假设之一是 JVM 可能在这些峰值期间执行 Full GC,我们正在使用任务控制监视 JVM。

管理员告诉我,jvm 正在使用 G1GC 禁用完整 gc 运行,我可以在启动命令中看到:

此外,当我分析 gc 日志时,没有执行 Full GC 的日志记录,我只能找到(根据这些配置,这很有意义):

但是,当我在 jmc 中打开飞行记录器并开始一些负载测试时,我立即注意到正在执行 Full GC

完整的 GC 示例

我可以在日志中看到它:

一旦我禁用飞行记录器,我就可以一遍又一遍地运行完全相同的负载测试,并且日志中不会记录 Full GC。

我在这里遗漏了什么,还是 Flight Recorder 真的强迫 JVM 执行 Full GC?

问候

0 投票
1 回答
1161 浏览

java - 如何在 Java Mission Control 中分析异常?

在启用跟踪所有异常的情况下执行“飞行记录”时,我发现 JMC 存在不愉快的行为。

录制到面板后:

  • 代码 -> 异常
  • 事件->直方图->“事件类型”作为“Java应用程序/Java异常”和“分组依据”作为“类”

列出的不是所有抛出的异常,而是所有创建的异常(作为对象)。

有一种方式(或插件)可以在分析过程中生成抛出的异常列表?

问候

0 投票
3 回答
246 浏览

java - Java任务控制监听器?

我目前有一些想要分析的 Java 代码。在阅读了一些关于它的有前途的东西后,我决定使用 Java Mission Control。但是,到目前为止,我咨询过的每个资源都告诉我首先启动我想要分析的进程,然后才在任务控制已经运行后“附加”或分析代码(例如来自 oracle 的这个视频:https ://youtu.be/WMEpRUgp9Y4?t=14m56s)。

有没有办法从一开始就进行分析?谢谢

0 投票
2 回答
328 浏览

java - Java Flight Control - 保留最后 N 分钟记录数据

如果可以在连续记录下仅保留最后 N 分钟的数据,有人可以让我知道通过 Java Mission Control 启动的 Java Flight Control 吗?

我已经完成了这个讨论,但我无法找到我必须在哪里传递disk=true参数。我一直在使用的选项如下所示。

在此处输入图像描述

环境:-

  • 爪哇 8
  • Mac OS X
  • Java 任务控制 5.5.1 (M5.5.1-15, 172852)
0 投票
0 回答
147 浏览

activemq - 连续运行包装文件以使用 JFR 监控 ActiveMQ 性能

我有一个关于持续运行Java Flight Recorder以监控ActiveMQ的内存使用和其他性能统计信息的问题。

  • Wrapper 配置文件 ( wrapper.conf ) 位于此目录下,旁边有 ( wrapper , activemq, libwrapper.so) 文件;

    ../apache-activemq-5.12.1/bin/linux-x86-64/wrapper.conf

  • 我添加了下面的行来运行 JFR;

    /li>
  • 当我运行wrapper file时,预期的输出“myrecording.jfr”会在 wrapper.conf 中的指定路径下生成。但问题是,我也希望它自动发生(无需手动运行包装文件)。

可能的解决方案是什么?

0 投票
1 回答
781 浏览

java - 无法在 Windows10 上运行作为服务运行的 Java 应用程序的 Continuous Flight Recorder

我正在尝试分析一个 Java 应用程序,该应用程序使用 Java 飞行记录器dumponexit选项在 Windows 10(64 位)中作为服务运行。在执行期间,Windows 确实会创建一个临时目录和临时 .jfr 文件。但是,最终的 JFR 文件不是在默认目录或用户定义的目录中创建的。使用的确切选项是-XX:+UnlockCommercialFeatures -XX:+FlightRecorder -XX:FlightRecorderOptions=defaultrecording=true,dumponexit=true.

这组选项在任何使用java -XX:+UnlockCommercialFeatures -XX:+FlightRecorder -XX:FlightRecorderOptions=defaultrecording=true,dumponexit=true -jar <AppName>.

在另一种情况下,如果我使用-XX:StartFlightRecording具有定义持续时间的选项,则 Java Flight Recorder 会按预期在给定目录中创建文件。使用的确切选项是-XX:+UnlockCommercialFeatures -XX:+FlightRecorder -XX:StartFlightRecording=delay=20s,duration=60s,name=MyRecording,filename=C:\myrecording.jfr

我的要求说我需要使用前一个选项进行分析。也就是说,每当上述Windows服务启动时,就会启用分析,而每当服务停止时,分析就会停止并生成.jfr文件。

如果有人使用连续录制并解决了这个问题,那么该解决方案将不胜感激。

更新:设置日志级别以跟踪以下日志后生成。使用的选项:-XX:FlightRecorderOptions=defaultrecording=true,dumponexit=true,dumponexitpath=C:\,loglevel=trace

0 投票
2 回答
1666 浏览

java - 在 JMC 控制台中打开 jfr 文件时出错

尝试在 JMC 控制台中打开我的 60 MB jfr 文件时出现过大的录制错误。请帮助我。

谢谢

0 投票
1 回答
254 浏览

java - JMC飞行记录器不显示自定义方法

这是我第一次使用飞行记录仪。试图针对我设置了标志的应用程序代码开始飞行记录-XX:+UnlockCommercialFeatures -XX:+FlightRecorder

但是,当我打开录制的文件时,似乎只有核心 java 包显示在热门方法/包下。绝对没有我自己的代码/包出现。有什么建议么 ?

在此处输入图像描述

0 投票
0 回答
364 浏览

jmc - jmc飞行记录仪数据停放线程解读

我正在尝试解释 jmc 飞行记录数据。看到一定数量的线程基本上都处于停放状态。这意味着什么?还附加了这段时间的 CPU 负载。似乎 JVM CPU 比机器 CPU 小得多,根据这里的博客,这似乎表明本机方法花费的时间太长(在这种情况下是线程?)。

线程图

CPU负载

事件堆栈跟踪 所有这些分析都是为了查明应用程序的延迟原因。