JMC没有显示热门方法和包

时间:2016-07-19 13:17:46

标签: java performance jmc oraclejdk jfr

我正在尝试使用JMC在我的服务器程序中找到问题方法。 当我在本地运行服务器(在Windows上)并从JMC启动Flight Recorder时 - 一切正常。 JMC在Code选项卡中正确显示数据:热方法,调用树等 但是当我试图在远程平台(在Linux上)上配置服务器时,我得到了一个空窗口。 要在平台上启动JFR,我使用:

/opt/java/java8/bin/jcmd 38390 VM.unlock_commercial_features
/opt/java/java8/bin/jcmd 38390 JFR.start duration=10m compress=true filename=dxstress3_cross_try1.jfr settings=/opt/dxstress/settings_for_jmc.jfc

我使用的是Oracle JDK 8u40 设置文件settings_for_jmc.jfc我是从JMC导出的。它包含execution_sample设置

<event path="vm/prof/execution_sample">
  <setting name="enabled">true</setting>
  <setting name="period">10 ms</setting>
</event>

Empty hot methods window

是否有记录或不记录此类数据的选项?我错过了什么?

1 个答案:

答案 0 :(得分:0)

如果您未指定自定义设置文件,它是否有效?

如果是,问题最有可能出现在.jfc文件中。它应该在JDK 7/8

上看起来像这样
max-height: 700px

如果没有,那可能是一个错误。在Linux上没有使用CLOCK_REALTIME的信号量存在问题,这可能会大大减少样本数量。它固定在7u80和8u25。

要打印当前使用的事件设置,请执行以下操作:

 <event path="vm/prof/execution_sample"> 
   <setting name="enabled" control="method-sampling-enabled">true</setting>
   <setting name="period" control="method-sampling-interval">10 ms</setting>
 </event>

如果启用了vm / prof / execution_sample,则问题出在JVM和采样器上。否则,它很可能在配置中。

如果采样方法正在运行Java代码,则采样器仅创建事件,因此如果您的应用程序以本机旋转,则不会有采样。