JDK14后引入了JFR。JFR和JMC是JVM监控和分析工具。
JMC是JDK自带的工具
- jconsole:JDK自带的可视化监控工具。查看Java应用程序的运行概况、监控堆信息、永久区(或元空间)使用情况、类加载情况等。
- Visual VM:Visual VM是一个工具,它提供了一个可视界面,用于查看Java虚拟机上运行的基于Java技术的应用程序的详细信息。
- JMC:Java Mission Control,内置Java Flight Recorder。能够以极低的性能开销收集Java虚拟机的性能数据。
以下是采用JFR和JMC分析JVM步骤:
1 JFR启动
在启动java程序时,可以通过jvm参数配置参数启动JFR:
java -XX:StartFlightRecording:filename=myrecording.jfr,delay=1m,duration=5m,settings=profile myapp.jar
-
filename=myrecording.jfr:指定 JFR 文件的名称。 -
delay=1m:延迟 1 分钟开始记录。 -
duration=5m:记录 5 分钟。
settings=profile:使用预定义的配置文件profile,它包括了多种事件类型
2 使用JMC
2.1 安装并启动JMC
- 从 Oracle 官网下载并安装 Java Mission Control
- 启动 JMC:运行 JMC 应用程序。
2.2 加载和查看 JFR 文件
-
在 JMC 中,选择“File” > “Open Flight Recording...”。
-
选择之前创建的
myrecording.jfr文件并打开它。 -
使用 JMC 的各种视图和工具来分析性能数据。例如,你可以查看 CPU 使用情况、线程活动、内存分配、锁竞争等。
2.3. 分析数据
在 JMC 中,你可以使用以下几种视图来分析数据:
-
Overview:提供应用程序的整体视图,包括 CPU 使用率、内存使用情况等。
-
Threads:查看线程活动,帮助识别瓶颈或死锁。
-
Events:查看特定事件,如垃圾收集、JIT 编译等。
-
Profiler:分析内存使用情况和对象分配。
-
Heap Walker:深入分析堆内存,查找内存泄漏或不必要的对象。
2.4. 导出和分享数据
你可以将分析结果导出为 CSV 或 HTML 文件,以便与团队成员分享或进一步分析。在 JMC 中,选择“File” > “Export Flight Recording...”来导出数据。
通过上述步骤,你可以有效地使用 JFR 和 JMC 来监控和优化 Java 应用程序的性能。
更多JVM监控工具参考 https://blog.csdn.net/weixin_60707895/article/details/121057600
浙公网安备 33010602011771号