JPSE问题诊断指导二 ——Java Mission Control

Java Mission Control(JMC)是HotSpot JVM的一个新的分析和诊断工具,它是一个高性能的基本监视、管理、产生时间分析和诊断的工具套件。Java Mission Control 最小化了分析工具的性能开销,该工具是一个JVM内建的商业化特征,运行时可用。

JMC由Java Management Console(JMX),Java Flight Recorder(JFR)和一些其他可供工具中下载的插件。JMX是一个监视和管理Java应用的工具而JFR是一个分析工具。JMC也可以作为Eclipse的一个插件使用。

JFR是一个商业化的特征,你可以免费将它用在桌面开发和用于测试、开发和生产环境的评估目的。然而,要在生产服务器中开启JFR,你需要一个商业许可证。在JDK上讲JMC UI用于其他目的不需要商业证书。

JMC允许你执行以下的问题定位活动:


  • JMX连接到一个运行中的JVM,实时收集和展示关键特征
  • 触发用户为JVM提供的自定义行为和规则,需要JDK8
  • 实验性插件例如 -WLS, DTrace, JOverflow和其他来自于JMC提供的问题定位工具
  • JMC中的JFR在分析事件时可用。预配置标签允许简便的从公共兴趣的各种区域向下延伸,例如代码、内存和gc、线程和IO。
  • JMC插件使用JMX代理连接到JVM。JMX是一个标准的资源管理和监视API,例如应用、设备、服务和JVM。

怎样产生飞行记录

JFR是一个商业化的特征,你可以免费将它用在桌面开发和用于测试、开发和生产环境的评估目的。然而,要在生产服务器中开启JFR,你需要一个商业许可证。在JDK上讲JMC UI用于其他目的不需要商业证书。

JFR可以并发运行多个记录并且使用并发设置配置每个记录。一下是为JFR记录提供的高级问题定位和管理技术:


  • 使用JMC的飞行记录器(FR)节点。在JVM浏览器中双击JVM下面的FR节点,跟随向导继续记录列举出来的节点。要dump一个节点,简单的拖拽正在运行的记录到编辑区域,然后双击它,持续的记录必须显式dump出来。
  • 使用JVM选项。你可以通过使用以下JVM选项中的一个从JFR中获取大量诊断信息:-XX:FlightRecorderOptions=loglevel=debug\-XX:FlightRecorderOptions=loglevel=trace
  • 在命令行使用启动标志。可以在应用启动的命令行用-XX:StartFlighrRecording 选项为持续记录配置一个记录或者固定时间记录。JFR是一个商业特征,你也要指定-XX:+UnlockCommercialFeatures 选项。下面例子展示了如何运行一个叫MyApp的应用并且在JVM启动20秒后开始一个60秒的记录,记录将会保存到一个名为myrecording.jfr的文件中:java -XX:+UnlockCommercialFeatures -XX:+FlightRecorder -XX:StartFlightRecording=delay=20s,duration=60s,name=myrecording,filename=C:\TEMP\myrecording.jfr,settings=profile MyApp。固定时间记录叫做分析记录。
  • 使用诊断命令。你可以通过使用Java Commond-line诊断命令控制记录,最简单的执行诊断命令的方法是用jcmd工具(放在Java安装目录下面)。
  • 配置记录。你可以用许多其他的方式配置一个显式的记录,这些技术工作方式都一样,除了你怎么启动记录的。
  • 触发器自动记录。你可以用JMC的控制台来设置触发器,一个触发器就是一个执行一个行为的规则,不管什么时候,只要规则指定的条件为真。





你可能感兴趣的:(JVM问题诊断)