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 -p 你的pid -x |sort -k 2 -r -n
gdb --pid 你的pid
--dump文件
dump memory dunmp出来的文件名字 地址开始位置 地址结束位置
--查看dump文件的内容
Strings dump文件
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步