Weblogic 从JMC/JCMD vs WLDF图像捕获中捕获飞行记录

Weblogic 从JMC/JCMD vs WLDF图像捕获中捕获飞行记录,weblogic,weblogic12c,jvm-hotspot,jmc,jfr,Weblogic,Weblogic12c,Jvm Hotspot,Jmc,Jfr,我需要一个Java飞行记录来诊断生产Weblogic服务器上的性能问题。我还想获得Weblogic事件。从Java任务控制(或在我的例子中是JCMD)开始飞行记录与启动WLDF诊断图像捕获之间有什么区别吗?我知道WLDF除了.jfr之外还包含压缩文件,但现在我只对带有HotspotJVM和Weblogic事件的飞行记录(.jfr)感兴趣 我问这个问题的原因是因为我注意到WLDF文档中有一个名为Configure WLDF diagnostic volume(关闭、低、中、高)的内容,您可以在其中

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


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

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

接下来,您可以:

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

  • …或使用jcmd开始录制,再次引用模板,该模板指定除WLDF事件外,您要录制的内容

  • …或者使用JMC做几乎相同的事情-使用您感兴趣的模板设置开始录制


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

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


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


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

我需要配置文件模板和WLDF介质设置。所以你是说我需要登录到Weblogic管理控制台,配置为说,中等音量,并启动航班录制,然后在命令行上运行JFR.start name=MyRecording settings=profile?如果你想要更详细的信息(profile),你需要启动两次录制,一个是在设置介质卷时由WLDF框架创建的,另一个是从命令行创建的,您可以在命令行中指定settings=profile。当录制内容转储到磁盘时,它们将包含相同的信息,因此您只需查看其中一个文件,我被要求提供解决生产中未知性能下降问题的建议,而我实际上还没有访问服务器的权限。因此,我希望通过告诉他们使用预配置的“概要文件”模板来尽可能简单地实现这一点,而且必须通过jcmd,因为他们的服务器没有windows。我记得看到一些开销小于1%的声明,这对于“配置文件”模板准确吗?默认配置将使开销保持在1%以下,即使在病理情况下也是如此。例如,您可以创建一个应用程序,将其设置为堆栈上有64帧,在循环中旋转,并且只分配可能触发新TLAB的对象。对于默认配置,开销不会超过1%。如果使用配置文件配置,可能会看到超过1%。配置文件的开销通常为1%或更少,但在某些情况下可能更高。因此,建议在生产服务器上仅在较短时间内使用配置文件。