您现在的位置是:首页 > 文章详情

JVM堆外内存分析

日期:2018-10-24点击:522

JVM堆外内存分析

@Date 2017.07.20

事件回顾

在对应用进行压测的时候,观察物理内存占用以及JVM堆中对象情况,发现物理内存占用很大,堆中对象却很少.怀疑是堆外内存占用问题.

工具介绍(gperftools)

  • 下载工具libunwind-1.0.tar.gz和gperftools-2.5.tar.gz并进行编译安装(具体可以查找教程)
  • 在安装之后并配置好gperf路径
  • 在JVM启动应用之前,执行以下命令
export LD_PRELOAD=/usr/local/lib/libtcmalloc.so export HEAPPROFILE=/home/admin/logs/pro 
  • 会在HEAPPROFILE指定的目录中生成.heap文件
  • 使用以下命令可以查看堆外内存文件的构成(支持导出gif或者pdf)
pprof --text /opt/taobao/install/ajdk-8.2.3-b46/bin/java pro_149025.0001.heap pprof --pdf /opt/taobao/install/ajdk-8.2.3-b46/bin/java pro_149025.0001.heap > xxx.pdf 
  • pprof默认显示方法占用,但是有的时候只显示内催地址,不显示具体方法,不容易排查,则可以用下面的工具dump出来内存地址和方法的一个关系.生成的是16进制的起始地址和16进程的地址长度.可以写个脚本计算之后与pprof结果对比
https://github.com/jvm-profiling-tools/perf-map-agent 
原文链接:https://yq.aliyun.com/articles/657790
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章