1.编译libunwind库
因为使用的是X86_64的Linux系统,因此需要安装libunwind库。
wget http://download.savannah.gnu.org/releases/libunwind/libunwind-0.99-beta.tar.gz
tar xvzf libunwind-0.99-beta.tar.gz
cd libunwind-0.99-beta
./configure CFLAGS=-U_FORTIFY_SOURCE
make
make install
因为默认的libunwind安装在/usr/local/lib目录下,需要将这个目录添加到系统动态库缓存中。
创建软连接 ln -s /usr/local/lib/libunwind.so.7 /usr/lib64/
echo "/usr/local/lib" > /etc/ld.so.conf.d/usr_local_lib.conf
/sbin/ldconfig
2.编译google-perftools
因为我们只需要tcmalloc功能,因此不编译google-perftools中的其他工具。
wget http://gperftools.googlecode.com/files/google-perftools-1.9.1.tar.gz
tar xvzf google-perftools-1.9.1.tar.gz
cd google-perftools-1.9.1
./configure --disable-cpu-profiler --disable-heap-profiler --disable-heap-checker --enable-minimal --disable-dependency-tracking
make
make install
/sbin/ldconfig
3.让mysql调用libtcmalloc.so
vi mysqld_safe,确认在最上一行添加有 export LD_PRELOAD=/usr/local/lib/libtcmalloc.so
重新启动 mysql 并再次用 /usr/sbin/lsof -n | grep tcmalloc 命令检测。