来自JRockit的礼物——JMC
在Oracle收购Sun之前,Oracle的JRockit虚拟机提供了一款叫作JRockitMissionControl的虚拟机诊断工具。在Oracle收购Sun之后,Oracle公司同时拥有了SunHotspot和JRockit两款虚拟机。根据Oracle对于Java的战略,在今后的发展中,会将JRockit的优秀特性移植到Hotspot上。其中,一个重要的改进就是在Sun的JDK中加入了JRockit的支持。在OracleJDK7update40之后,MissionControl这款工具已经绑定在OracleJDK中发布(很不幸,OpenJDK中并没有该工具)。这是一款集性能监控、诊断为一体的多功能工具。
安装完JDK后,可以在%JAVA_HOME%/bin目录下找到这个工具。如图6.114所示为JMC运行后的主界面。

一,得到JFR文件
为了更好地使用JMC对生产环境中的虚拟机进行监控,我们需要首先采集到程序执行时的JFR文件,即JavaFlightRecorder,Java飞行记录仪。它记录了JVM所有事件的历史数据,通过这些数据,程序性能分析人员可以结合以往的历史数据对JVM性能瓶颈进行分析诊断。JMC也正是利用了这个文件,统计出了程序执行时的性能指标。
得到JFR文件的方法主要有3种,第1种是通过Java虚拟机的静态命令行指定的,例如:

其中,UnlockCommercialFeatures表示解锁商业开关,可见这是一个商业功能;Flight-Recorder表示打

JMC(JRockit Mission Control)是Oracle JDK中的一个强大的虚拟机诊断工具,用于性能监控和诊断。它包括JFR(Java Flight Recorder),用于记录JVM事件历史数据,帮助分析性能瓶颈。获取JFR文件有三种方法:静态命令行、动态命令行和系统退出时自动保存。JMC提供CPU、内存、I/O等方面的分析,帮助开发者定位和优化问题。在CPU分析中,可以找到热点方法和调用堆栈;内存分析则能展示堆内存分配详情,有助于内存优化;I/O分析追踪系统读写情况,辅助故障排查。
最低0.47元/天 解锁文章
893

被折叠的 条评论
为什么被折叠?



