zoukankan      html  css  js  c++  java
  • 利用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                  <-请注意这个recording=1与上面check的结果一致。
    10156:
    Dumped recording 1, 457.2 kB written to:

    D: mpjfr.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, 有可能系统出现一个处理瓶颈,线程大量处在等待时间,而某个瓶颈可能是单例或者需要集中处理的地方导致。

     

     

    How to use Oracle JDK Java Flight Recorder (需要Linux support帐号)
    https://access.redhat.com/solutions/662203

  • 相关阅读:
    Java5 多线程实践
    ExtJS2.0实用简明教程 Border区域布局
    MySQL安装图解
    ExtJS2.0实用简明教程 组件的使用
    ExtJS2.0实用简明教程 ExtJS版的Hello
    Linux操作系统中如何安装Tomcat
    线程池的介绍及简单实现
    ExtJS2.0实用简明教程 获得ExtJS
    汽车常识全面介绍 动力系统
    MySQL 图形化管理工具介绍
  • 原文地址:https://www.cnblogs.com/bjfarmer/p/6991692.html
Copyright © 2011-2022 走看看