java jfr_利用Java Flight Recorder(JFR)诊断timing及内存问题

Java Flight Recorder(JFR), 以下简称JFR,请注意这个只有Oracle JDK 1.7(7u40)或以上版本才有, OpenJDK木有这东西。

启用:

Java命令行启动参数加入: -XX:+UnlockCommercialFeatures -XX:+FlightRecorder

进程启动后,可以使用jcmd命令采集数据。

c:\>jcmd 10156 JFR.start

10156:

Started recording 1. No limit (duration/maxsize/maxage) in use.

Use JFR.dump recording=1 filename=FILEPATH to copy recording data to file.

c:\>jcmd 10156 JFR.check

10156:

Recording: recording=1 name="Recording 1" (running)

c:\>jcmd 10156 JFR.dump recording=1 filename=d:/tmp/jfr.1                 

10156:

Dumped recording 1, 457.2 kB written to:

D:\tmp\jfr.1

c:\>jcmd 10156 JFR.stop recording=1

10156:

Stopped recording 1.

采集后,打开jmc(java mission controller), 对刚才采集的数据进行分析。

/usr/java/jdk1.7.0_79/bin/jmc d:/tmp/jfr.1

jmc在JDK的bin目录下

events界面,很重要,也许cpu和memory没有任何大的消耗,但在event界面中可以进行查看各种events, 如果出现大量的monitor wait, 有可能系统出现一个处理瓶颈,线程大量处在等待时间,而某个瓶颈可能是单例或者需要集中处理的地方导致。

768fedc86b49dca552ff0b3c8b9c94d8.png

b7a1289b3a46b319ce4a7816e6ba9726.png

How to use Oracle JDK Java Flight Recorder (需要Linux support帐号)

https://access.redhat.com/solutions/662203

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值