Java性能调优作为大型分布式系统提供高性能服务的必修课,其重要性不言而喻。
好的分析工具能起到事半功倍的效果,利用分析利器JMC、JFR,可以实现性能问题的准确定位。
本文主要阐述如何利用JFR生成性能日志
JMC:Java Mission Control
JFR:Java Flight Recorder
1. 打开JFR
JVM_OPT中添加:-XX:+UnlockCommercialFeatures -XX:+FlightRecorder -Djavax.xml.parsers.SAXParserFactory=com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl"
2. 启动JFR
登陆服务器,找到应用PID,执行命令:jcmd $PID JFR.start name=abc,duration=120s
3. Dump JFR
等待至少duration(本文设定120s)后,执行命令:jcmd $PID JFR.dump name=abc,duration=120s filename=abc.jfr(注意,文件名必须为.jfr后缀)
4. 检查JFR状态
执行命令:jcmd $PID JFR.check name=abc,duration=120s
5. 停止JFR
执行命令:jcmd $PID JFR.stop name=abc,duration=120s
6. JMC分析
切回开发机器,下载步骤3中生成的abc.jfr,打开jmc,导入abc.jfr即可进行可视化分析