问题标签 [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 回答
331 浏览

weblogic - 从 JMC/JCMD 与 WLDF 图像捕获中捕获飞行记录

我需要 Java 飞行记录来诊断生产 Weblogic 服务器上的性能问题。我还想获得 Weblogic 事件。从 Java Mission Control(或者在我的情况下为 JCMD)开始飞行记录与启动 WLDF 诊断图像捕获之间有什么区别吗?我知道 WLDF 除了 .jfr 之外还包含压缩文件,但现在我只对 HotspotJVM 和 Weblogic 事件的飞行记录 (.jfr) 感兴趣。

我问的原因是因为我注意到 WLDF 文档中称为配置 WLDF 诊断卷(关闭、低、中、高)的内容,您可以在其中设置要记录的 Weblogic 事件类型。在 weblogic java 实例上从 JCMD 开始飞行记录是否会包括预配置诊断卷中的 Weblogic 事件?还是您需要从 Weblogic 管理控制台启动它?

0 投票
2 回答
701 浏览

java - 无法在 Eclipse 外部工具中使用 Flight Recording Args 启动 JVM

我通过 Eclipse 外部工具调用我的 java 代码作为 ant 目标。

我想用 JMC(任务控制)监视 JVM,因此用参数启动 Eclipse 外部工具:

"-XX:+UnlockCommercialFeatures -XX:+FlightRecorder".

但是,当我运行它时,日志文件中的第一个错误是:

"Unknown argument: -XX:+UnlockCommercialFeatures -XX:+FlightRecorder"

另外,当我在这个过程中运行飞行记录器时,它会抱怨:

"Flight Recorder features are not enabled. To enable this you need to use a Java 7u4 or later JVM started with -XX:+UnlockCommercialFeatures -XX:+FlightRecorder."

看起来我没有在 Eclipse 中将参数设置在正确的位置。

回答后编辑:如果我从命令行调用 Java,它看起来很好,但是当我从 Eclipse 外部工具调用时,这就是问题所在。附上截图。使用 JMC 的 JVM 参数调用的 Eclipse 外部工具

0 投票
1 回答
744 浏览

java - Java Flight Recorder 应用方法开始和结束时间

我感兴趣的是,在使用 JFR 程序进行分析时,是否可以为每个或大多数用户方法获取以纳秒为单位的开始和结束时间?

我知道可以使用代码检测,但我想利用采样分析器的优势来减少对实际程序执行的影响。

我有一种感觉应该是可能的,因为我相信 JFR 需要此信息来进行热方法百分比评估,但不知道如何获得那个时间。有人可以帮忙吗?

0 投票
1 回答
305 浏览

java - Java Flight Recorder 结果中的垃圾收集统计信息

我们在 CI 中有一项工作,它启动我们的 Java 应用程序并运行一些测试(测试充当应用程序的客户端)。该应用程序以我认为正确的 JVM 选项开始,以进行连续飞行记录:

它可以很好地生成 JFR 文件,我可以在 Java Mission Control 中打开它。除了上面的 JVM 选项,我们还可以选择启用 GC 日志记录:

这也很好。生成 gc 日志和安全点日志文件。但是,我注意到任务控制中的 GC 统计信息并未列出在应用程序生命周期内发生的所有 GC。例如,如果我使用 GCViewer ( https://github.com/chewiebug/GCViewer ) 打开 gc 日志,则会发生更多的 GC。

我在这里错过了什么吗?还是任务控制只打印“重要” gc ?

提前致谢!

0 投票
1 回答
120 浏览

java - 使用 Java GC 日志功能而不是 JMC 的用例有哪些?

Java Mission Control最近开源了。它是一个成熟的分析器,可以提供有关正在运行的应用程序的大量信息。它不仅可以显示特定应用程序正在使用多少内存或 Java GC 启动的频率,还可以提供有关网络利用率、CPU 利用率等的信息。

当在日常应用程序监控中使用 Java GC 日志记录功能更可取时,用例会是什么?

0 投票
2 回答
3625 浏览

profiling - 检查 JFR 飞行记录时,Java Mission Control (JMC) 6.0 不显示热方法

在正在运行的应用程序上使用 Java Flight Recording 功能后,Java 的 JMC 可用于检查生成的 JFR 文件以显示热方法以及每个方法所花费的 CPU 时间百分比。这对于分析应用程序和识别瓶颈非常有用。

以下是以前在旧版本 JMC 中可能实现的示例:

江铃老版本

江铃老版本

在与 Java 10 捆绑的 JMC 6.0 中似乎缺少此屏幕。这是我在 Java 10 捆绑的 JMC 6.0 中看到的示例:

江铃6.0

似乎有一个基本的方法调用计数,但没有列出百分比 CPU 时间。似乎没有添加缺失列的选项。

有没有办法显示热方法 %CPU 时间,或者这个功能是否从 JDK10 的 JMC 6.0 中删除?

0 投票
1 回答
634 浏览

java - java.security.Provider.getService(String, String) Java 监视器被阻塞

经过几天的工作,我在应用程序中遇到了阻塞 java.security.Provider.getService(String, String) 的问题。这是 subethasmtp 的堆栈跟踪,但在所有其他线程(IMAP、HTTPS 等)上都是一样的。

** JFR 快照图像上的红色块是 java.security.Provider.getService 块 **

0 投票
1 回答
108 浏览

java - 如何在 Java Mission Control 的内存视图中解释 lambda

我正在使用 Java Mission Control 分析 Java 8 应用程序的一部分。我正在使用 Java Mission Control 6.0.0(Java 9 和 10 附带的版本)。在内存视图中,在 Java 应用程序下,我看到以下内容:

Java Mission Control 内存视图截图

87M 似乎对于 lambdas 来说是很多内存,尤其是在其他地方使用的内存的上下文中。我应该如何解释并优化 lambda 的内存使用?

0 投票
1 回答
538 浏览

java - 无法在 JMC for Java 应用程序和 Eclipse IDE 中打开飞行记录器

当我尝试运行飞行记录器时,加载需要很长时间然后崩溃,并在一段时间后抛出异常:

连接拒绝主机:17.226.xx.yyyy;嵌套异常是:

java.net.ConnectException:操作超时(连接超时) java.lang.RuntimeException:无法连接到 [1.8.0_181] Eclipse (2092)。Make sure the JVM is running and that you are using the correct protocol in the Service URL (service:jmx:rmi://127.0.0.1/stub/rO0ABXN9AAAAAQAlamF2YXgubWFuYWdlbWVudC5yZW1vdGUucm1pLlJNSVNlcnZlcnhyABdqYXZhLmxhbmcucmVmbGVjdC5Qcm94eeEn2iDMEEPLAgABTAABaHQAJUxqYXZhL2xhbmcvcmVmbGVjdC9JbnZvY2F0aW9uSGFuZGxlcjt4cHNyAC1qYXZhLnJtaS5zZXJ2ZXIuUmVtb3RlT2JqZWN0SW52b2NhdGlvbkhhbmRsZXIAAAAAAAAAAgIAAHhyABxqYXZhLnJtaS5zZXJ2ZXIuUmVtb3RlT2JqZWN002G0kQxhMx4DAAB4cHc4AAtVbmljYXN0UmVmMgAADTE3LjIyNi4yMC4yMjQAAMF44tzu6CRJNeORCVrBAAABZN4+pbCAAQB4).

我尝试运行不同版本的 jdks:从 java 7 到 java 8:

另外,卸载了eclipse并重新安装了STS。问题仍然存在。看起来问题是 jmc 中的某个地方无法连接到 eclipse 和/或 tomcat jvm。

任何解决过类似问题的人请帮助解决这个问题。谢谢。

更新:我可以通过使用命令终端记录航班

jcmd $pid JFR.start name=MyRecording 设置=默认持续时间=60s

jcmd $pid JFR.dump name=MyRecording 文件名=/tmp/test_TIMESTAMP.jfr

我仍然不知道为什么它不会从 gui 运行。

0 投票
1 回答
735 浏览

java - JDK 8 的 Java 飞行记录

我刚刚阅读了 Java Flight Recording 并发现它是一个商业功能。由于它是由-XX:+UnlockCommercialFeatures -XX:+FlightRecorder. 所以问题是我是否可以在我们的生产环境中使用它进行分析。我用

或者这样做是违法的?