java 堆外内存排查

操作系统:centos7
jdk版本8

--提前下载安装依赖
yum -y install gcc gcc-c++

-- 下载安装包
wget http://download.savannah.gnu.org/releases/libunwind/libunwind-0.99.tar.gz
wget https://github.com/gperftools/gperftools/releases/download/gperftools-2.6.1/gperftools-2.6.1.tar.gz

--解压
tar -zxvf libunwind-0.99.tar.gz
tar -zxvf gperftools-2.6.1.tar.gz

--编译
./configure --prefix=/usr/local/app/tool/gperftools && make -j && make install
./configure --prefix=/usr/local/app/tool/libunwind && make -j && make install

--配置环境变量
vim /etc/ld.so.conf.d/usr_local_lib.conf
/usr/local/app/tool/gperftools/lib
/usr/local/app/tool/libunwind/lib

--刷新配置动态链接库
/sbin/ldconfig

--程序运行前织入共享库
export LD_PRELOAD=/usr/local/app/tool/gperftools/lib/libtcmalloc.so
export HEAPPROFILE=/usr/local/app/testapp/hprof
java -jar merciless-0.0.1-SNAPSHOT.jar

-- 查看追踪内存
tool/gperftools/bin/pprof /bin/ls --text .0001.heap
tool/gperftools/bin/pprof --text /usr/local/app/jdk/bin/java 0001.heap

--直接追踪linux内存分配
strace -f -e 'brk,mmap,munmap' -p pid

pmap -x 你的pid

gdb --pid 你的pid

--dump文件
dump memory dunmp出来的文件名字 地址开始位置 地址结束位置

--查看dump文件的内容
Strings dump文件

posted @ 2024-06-12 21:48  Me无情  阅读(10)  评论(0编辑  收藏  举报