java堆外内存泄露 perftools,使用gperftools和btrace来分析java的堆外内存泄露

  • Post author:
  • Post category:java


安装gperftools(google performance tools)来分析java的堆外(超出-Xmx所设置的heap size的部分)内存泄露

如果是堆内泄漏,则最大内存使用不会超过-Xmx所设置的大小,基本上使用jmap之类的都直接可以查到问题。

安装:

$ sudo yum -y install graphviz gv

$ sudo yum -y install gcc make

$ sudo yum -y install gcc gcc-c++

$ tar -zxvf libunwind-1.4.0.tar.gz

$ ./configure

$ make

$ sudo make install

$ ll /usr/local/lib/

$ cd ..

$ tar -zxvf  gperftools-2.8.tar.gz

$ cd gperftools-2.8

$ ./configure

$ make

$ sudo make install

$ ll /usr/local/lib/

$ ll /usr/local/bin/

$ sudo vi /etc/ld.so.conf.d/gperftools.conf

/usr/local/lib

$ sudo ldconfig

$ sudo ldconfig -p | grep libtcmalloc

$ sudo ldconfig -p | grep libunwind

使用:

perftools是通过Linux的LD_PRELOAD达到java应用程序运行时,当调用malloc时换用它的libtcmalloc.