标签:运行 start alt template unlock 开启 filename pat tps
Jcmd 分析jvm虚拟机
在JDK 1.7之后,新增了一个命令行工具jcmd。它是一个多功能工具,可以用来导出堆,查看java进程,导出线程信息,执行GC等。
开启JFR需要三步:
jcmd <PID> VM.unlock_commercial_features
以demo应用为例:
jcmd <PID> JFR.start name=test1 duration=10s settings=template filename=output1.jfr
收集完监控数据后用jmc打开
UI界面展示:
output1.jfr是一个二进制文件,下面讲下如何用脚本分析.
分析output1.jfr 需要用到https://github.com/chrishantha/jfr-flame-graph
install-mc-jars.sh
mvn clean install -U
git clone https://github.com/brendangregg/FlameGraph.git
export FLAMEGRAPH_DIR=/path/to/FlameGraph
通过以下命令转换成可识别的数据文件
火焰图
./create_flamegraph.sh -f recording_13801_1.jfr -i > flamegraph.svg
转为json串
./flamegraph-output.sh json -f recording_13801_1.jfr > resource.json
对json串进行递归分析后可以获得如下数据,key表示具体的函数名,value表示该函数的执行次数样本统计:
标签:运行 start alt template unlock 开启 filename pat tps
原文地址:http://www.cnblogs.com/chanlengr/p/6705489.html