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

时间:2018-03-12 18:34:02

标签: weblogic weblogic12c jvm-hotspot jmc jfr

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

我问的原因是因为我注意到WLDF文档中有一些名为Configure WLDF诊断卷(off,low,medium,high)的内容,您可以在其中设置要记录的Weblogic事件类型。在weblogic java实例上从JCMD开始飞行记录是否包括预配置诊断卷中的Weblogic事件?或者您是否需要从Weblogic管理控制台启动它?

2 个答案:

答案 0 :(得分:1)

记录在飞行记录仪中的所有内容都记录在相同的缓冲区中。见http://hirt.se/blog/?p=370。也就是说,WLDF仪器设置将限制实际记录的内容。所以,有各种不同的方法来实现你想要的。首先要确保您已启用WLDF中的诊断卷,以记录您希望WLDF记录到飞行记录器中的任何内容。例如“高”。

接下来你可以:

  • 使用命令行标志开始连续录制,并配置模板以记录您感兴趣的内容。(例如,分析模板减去完整的线程堆栈转储事件。)

  • ...或使用jcmd开始录制,再次参考指定除了WLDF事件之外还要录制的内容的模板。

  • ...或者使用JMC做同样的事情 - 使用您感兴趣的模板设置开始录制。

第一种选择的优点是,即使您转储任意时间段,您感兴趣的事件也始终可用。在另外两种选择中,它们仅在您运行(可能)时间限制录制时才可用。其他替代方案的优点是,您只需在录制文件运行时支付额外事件的(通常很小的)额外开销。

答案 1 :(得分:1)

WLS中没有机制可以使用jcmd或JMC连续轮询以查看录制是否已启动,如果是,则启用WLDF事件。

您必须在WLDF GUI [1]中单独启用它们。执行此操作时,您还将获得与创建默认录制时大致相对应的JVM事件。如果您想要更详细的信息(配置文件),您需要开始两个单独的重新编码。

[1]最好知道使用字节码检测添加WLDF事件,因此在启用诊断功能之前,事件甚至不在代码中。