TCMalloc (google-perftools) 是用于优化C++写的多线程应用,比glibc 2.3的malloc快。这个模块可以用来让MySQL在高并发下内存占用更加稳定。
下载二个软件地址:
安装步骤:
1.64位操作系统请先安装 libunwind库,32位操作系统不要安装。libunwind库为基于64位CPU和操作系统的程序提供了基本的堆栈辗转开解功能,其中包括用于输出堆栈跟踪的API、用于以编程方式辗转开解堆栈的API以及支持C++异常处理机制的API。
#tar zxvf libunwind-0.9.tar.gz
#cd libunwind-0.99
#./configure
#make
#make install
2.安装google-perftools:
#tar zxvf google-perftools-1.6.tar.gz
#cd google-perftools-1.6
#./configure
#make
#make install
3.运行以下二行命令
echo "/usr/local/lib" > /etc/ld.so.conf.d/usr_local_lib.conf
/sbin/ldconfig
4.修改MySQL启动脚本(根据你的MySQL安装位置而定):
vi /usr/local/mysql/bin/mysqld_safe
在# executing mysqld_safe的下一行,加上:
export LD_PRELOAD=/usr/local/lib/libtcmalloc.so
保存后退出,然后重启MySQL服务器。
5.使用验证lsof命令查看tcmalloc是否起效:
如lsof没有装,可yum安装
/usr/sbin/lsof -n | grep tcmalloc
如果发现以下信息,说明tcmalloc已经起效:
mysqld 10847 mysql mem REG 8,5 1203756 20484960 /usr/local/lib/libtcmalloc.so.0.0.0
上面是网上的文章 ,抄来一下,关于在x64上安装失败的问题,本人也经历过,按照上面的方法安装,先安装libunwind,然后再安装google-perftools。在安装google-perftools时,make 出现
make: *** [stacktrace.lo] Error 1 错误,研究了半天,终于找到了解决办法。
方法如下:
在安装google-perftools-1.6.tar.gz 时解决过后,./configure时加上--enable-frame-pointers 参数,然后make ;make install 正常安装。。。