【问题标题】:Getting error while recording JFR录制 JFR 时出错
【发布时间】:2023-04-03 05:39:02
【问题描述】:

我正在尝试为托管在 tomcat 服务器中的 java 应用程序记录 JFR。我使用了以下 jvm args 。

-XX:+UnlockCommercialFeatures -XX:+FlightRecorder

我正在使用以下 linux 命令来记录 JFR。

 /opt/java/perf/jdk1.7.0_79/bin/jcmd 32627 JFR.start duration=900s 
   settings=/opt/profile.jfc filename=/opt/flight_17-Mar-2016.jfr

但我收到此错误:

**32627:
java.text.ParseException: JSON object must begin with '{', line=0, column=0 : 
 <?xml version="1.0" encodi    ng="UTF-8"?>
<configuration version="1.0" name="Profiling" description="Lo**

如果有人对此有任何想法,请提出建议。提前致谢。

【问题讨论】:

  • 您确定您正在为 jcmd 运行相同版本的 Java 和分析的程序吗?
  • 如果您指的是 jcmd 和 profile.jfc 的 java 版本,是的,它们属于同一版本的 java..
  • 我的意思是你正在监控的jvm 和 jcmd。 Java 7 和 8 之间存在差异。
  • 谢谢.. 成功了。我将 jvm 的版本更改为 jcmd..
  • 我的猜测是他们将文件格式从 JSON 转换为 XML。

标签: java performance-testing jfr


【解决方案1】:

JDK 7u40 是第一个完全支持 Java Flight Recorder 的 Oracle JDK 版本。在此之前的版本没有任何 JVM 事件,因此使用设置文件对其进行配置几乎没有意义。

当 JVM 事件添加到 Hotspot 时,文件格式已更新,以便更好地支持 Java Mission Control 的配置,这意味着从 JSON 切换到 XML。

修复是使用更高版本的 Oracle JDK。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-11-13
    • 2015-08-07
    • 1970-01-01
    • 2013-12-20
    • 1970-01-01
    • 1970-01-01
    • 2012-09-10
    相关资源
    最近更新 更多