安裝編譯工具
sudo yum -y install gcc make
sudo yum -y install gcc gcc-c++
安裝libunwind
wget https://github.com/libunwind/libunwind/archive/v0.99.tar.gz
tar -xvf v0.99.tar.gz
cd libunwind-0.99
autoreconf --force -v --install
./configure
make
make install
安裝perftools
wget https://github.com/gperftools/gperftools/releases/download/gperftools-2.6.1/gperftools-2.6.1.tar.gz
tar -xvf gperftools-2.6.1.tar.gz # 解壓
./configure
make
make install
配置
在/etc/ld.so.conf.d目錄下建立文件perftools.conf,文件內(nèi)容為libunwind庫所在目錄,本文中安裝時都未指定目錄,默認為:
/usr/local/lib
執(zhí)行使之生效:
sudo /sbin/ldconfig
perftools是通過Linux的LD_PRELOAD
達到java應用程序運行時溉卓,當調(diào)用malloc時換用它的libtcmalloc.so刺覆,因此需要在運行程序之前設置變量:
export LD_PRELOAD=/usr/local/lib/libtcmalloc.so
export HEAPPROFILE=/root/perftools/java
產(chǎn)生報告
啟動Java程序之后,會在HEAPPROFILE目錄生成heap文件耍鬓,運行如下命令福澡,產(chǎn)生文本格式的報告:
pprof --text /usr/java/jdk1.8.0_91/bin/java java_31242.0001.heap