使用火焰图FlameGraph分析JVM应用性能
安装及使用
安装前提软件
centos
yum install perf -y yum install gcc -y yum install gcc-c++ yum install cmake -y
ubuntu
apt install linux-tools-generic apt install linux-tools-common
FlameGraph
# 参考 http://www.brendangregg.com/FlameGraphs/cpuflamegraphs.html#Java export JAVA_HOME=/root/jdk1.8.0_181 export PATH=$JAVA_HOME/bin:$PATH git clone --depth=1 https://github.com/jrudolph/perf-map-agent cd perf-map-agent cmake . make bin/create-links-in /usr/bin git clone https://github.com/brendangregg/FlameGraph.git export FLAMEGRAPH_DIR=/root/git/FlameGraph # jvm启动参数需要增加 -XX:+PreserveFramePointer perf-java-flames 21322
结果展示
svg格式的图片可以下钻,点击查看: [](http://oss.zrbcool.top/picgo/flamegraph-21322.svg)http://oss.zrbcool.top/picgo/flamegraph-21322.svg
容器内如何分析?
请参考笔者的另一篇文章Docker中使用FlameGraph分析JVM应用性能
更多参考
https://www.meiwen.com.cn/subject/xafqkqtx.html https://bugs.openjdk.java.net/browse/JDK-8068945 https://bugs.openjdk.java.net/browse/JDK-6515172 http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/2014-December/016477.html https://medium.com/netflix-techblog/java-in-flames-e763b3d32166 https://blog.codecentric.de/en/2017/09/jvm-fire-using-flame-graphs-analyse-performance/ https://github.com/jvm-profiling-tools/honest-profiler/wiki/How-to-Run https://gperftools.github.io/gperftools/pprof-vsnprintf-big.gif https://github.com/jvm-profiling-tools/perf-map-agent http://www.brendangregg.com/FlameGraphs/cpuflamegraphs.html#Java http://www.brendangregg.com/blog/2014-06-12/java-flame-graphs.html https://github.com/brendangregg/FlameGraph
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
《ElasticSearch6.x实战教程》之分词
《ElasticSearch6.x实战教程》之分词第四章-分词下雨天留客天留我不留 本打算先介绍“简单搜索”,对ES的搜索有一个直观的感受。但在写的过程中发现分词无论如何都绕不过去。term查询,match查询都与分词息息相关,索性先介绍分词。 ES作为一个开源的搜索引擎,其核心自然在于搜索,而搜索不同于我们在MySQL中的select查询语句,无论我们在百度搜索一个关键字,或者在京东搜索一个商品时,常常无法很准确的给出一个关键字,例如我们在百度希望搜索“Java教程”,我们希望结果是“Java教程”、“Java”、“Java基础教程”,甚至是“教程Java”。MySQL虽然能满足前三种查询结果,但却无法满足最后一种搜索结果。 虽然我们很难做到对于百度或者京东的搜索(这甚至需要了解Lucene和搜索的底层原理),但我们能借助ES做出一款不错的搜索产品。 ES的搜索中,分词是非常重要的概念。掌握分词原理,对待一个不甚满意的搜索结果我们能定位是哪里出了问题,从而做出相应的调整。 ES中,只对字符串进行分词,在ElasticSearch2.x版本中,字符串类型只有string,Elastic...
- 下一篇
以太坊ERC20代币数据集【1000+,含合约地址、图标等】
Erc20Tokens数据集包含超过1000种主流的以太坊ERC20代币的描述数据清单和图标,可用于钱包等区块链应用的开发,支持使用Java、Python、Php、NodeJs、C#等各种开发语言查询主流ERC20代币的相关数据。下载链接:ERC20代币数据集。 1、数据集概述 以下是ERC20代币数据集中部分代币的图标示意: Erc20Tokens数据集的的当前版本为1.0.0,主要文件清单参见:http://sc.hubwiz.com/codebag/erc20-tokens-dataset/ 2、数据集结构说明 数据集的主文件为erc20-tokens.json,其中的每个ERC20代币都包含以下描述信息: name:代币名称,例如:Dai symbol:代币符号,例如:DAI address:代币部署地址,例如:0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359 例如erc20-tokens.json文件中Dai和Peerguess代币的数据: [ { "name": "Dai" "symbol": "dai", "address": "0x8...
相关文章
文章评论
共有0条评论来说两句吧...