JFR学习笔记,java飞行记录器

本文介绍了JavaFlightRecorder(JFR)的功能,它是Java进程崩溃时提供运行数据的工具,支持JMC分析。文章详细列出了启动、停止和查看JFR的命令,以及如何使用JMC进行性能监测和问题定位。
摘要由CSDN通过智能技术生成

        JFR全名:java flight recoder java飞行记录器,名字定义参考飞机黑匣子而来,顾名思义就是为了在java进程崩溃时也可以提供有效的运行参考数据,抓取的数据格式为jfr,可以使用jmc工具来进行分析,jmc工具可以默认给出分析意见,以供快速的分析定位问题,

        该工具受oracle官方推荐,在java8版本前为商业版java才能使用,官方数据cpu只占用越1%,官方推荐为可以长期打开

JFR命令:

//java程序启动时开启JFR

java -XX:StartFlightRecording ...

//Java程序启动时开启JFR并记录jfr文件

java -XX:StartFlightRecording:filename=/tmp/foo.jfr,dumponexit=true ...

-XX:StartFlightRecording:filename=/jfr-log/recording.jfr,dumponexit=true

//查看运行的java进程

jcmd -l

//对当前进程dump

jcmd JFR.dump filename=foo.jfr maxsize=50MB

//对正在运行的java进程启动JFR

jcmd JFR.start

//对正在运行的java进程关闭JFR

jcmd JFR.stop

//检查当前java进程的JFR状态

jcmd JFR.check

//检查当前java进程的JFR配置

jcmd JFR.configure

mac@macs-MBP jdk % jcmd -l
32257 org.jetbrains.idea.maven.server.indexer.MavenServerIndexerMain
738 nutstore.client.gui.NutstoreGUI --delayLaunch 15
31253 com.intellij.database.remote.RemoteJdbcServer com.mysql.cj.jdbc.Driver
7206 demo.simulators.boot.ThreadSimulatorMain
35416 jdk.jcmd/sun.tools.jcmd.JCmd -l
6714 org.jetbrains.jps.cmdline.Launcher /Applications/IntelliJ IDEA.app/Contents/plugins/java/lib/jps-builders.jar:/Applications/IntelliJ IDEA.app/Contents/plugins/java/lib/jps-builders-6.jar:/Applications/IntelliJ IDEA.app/Contents/plugins/java/lib/jps-javac-extension.jar:/Applications/IntelliJ IDEA.app/Contents/lib/util-8.jar:/Applications/IntelliJ IDEA.app/Contents/lib/util_rt.jar:/Applications/IntelliJ IDEA.app/Contents/lib/platform-loader.jar:/Applications/IntelliJ IDEA.app/Contents/lib/annotations.jar:/Applications/IntelliJ IDEA.app/Contents/lib/protobuf.jar:/Applications/IntelliJ IDEA.app/Contents/lib/jps-model.jar:/Applications/IntelliJ IDEA.app/Contents/plugins/java/lib/javac2.jar:/Applications/IntelliJ IDEA.app/Contents/lib/forms_rt.jar:/Applications/IntelliJ IDEA.app/Contents/plugins/java/lib/aether-dependency-resolver.jar:/Applications/IntelliJ IDEA.app/Contents/plugins/java/lib/maven-resolver-connector-basic.jar:/Applications/IntelliJ IDEA.app/Contents/plugins/java/lib/maven-resolver-transport-file.ja
15259 org.netbeans.Main --cachedir /Users/mac/Library/Caches/VisualVM/2.1.7 --userdir /Users/mac/Library/Application Support/VisualVM/2.1.7 --branding visualvm --laf com.apple.laf.AquaLookAndFeel
7709 jdk.hotspot.agent/sun.jvm.hotspot.SALauncher clhsdb
7278 com.perfma.xlab.xpocket.launcher.XPocketLauncher
mac@macs-MBP jdk % jcmd 7278 JFR.check
7278:
No available recordings.

Use JFR.start to start a recording.

mac@macs-MBP jdk % jcmd 7278 JFR.start
7278:
Started recording 1. No limit specified, using maxsize=250MB as default.

Use jcmd 7278 JFR.dump name=1 filename=FILEPATH to copy recording data to file.
mac@macs-MBP jdk % jcmd 7278 JFR.check
7278:
Recording 1: name=1 maxsize=250.0MB (running)
mac@macs-MBP jdk % jcmd 7278 JFR.dump 
7278:
Dumped recording, 351.1 kB written to:

/Users/mac/Documents/code/XPocket/xpocket/hotspot-pid-7278-2024_01_19_14_18_58.jfr

JDK Mission Control

使用JFR对java进程进行性能监测问题排查

JDK Mission Control

使用JMC 可以打开JFR.dump的jfr文件

JMC有自动分析结果会给出分析情况,以及修改意见

使用jfr命令查看jfr文件:

// 包括CPU使用情况、垃圾回收活动、线程活动、方法调用分析和其他相关统计信息,使用less进行分组

jfr summary hotspot.jfr| less

jfr scrub --all input.jfr output.jfr

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值