TcMalloc(Thread-CachingMalloc)是google-perftools工具中的内存管理库,与标准的glibc库中malloc相比,TcMalloc可以显著提升高并发情况下的性能,降低系统的负载。
1、如果Centos是64位版本,首先需安装libunwind库。
wget http://download.savannah.gnu.org/releases/libunwind/libunwind-1.1.tar.gz tar zxvf libunwind-1.1.tar.gz cd libunwind-1.1/ CFLAGS=-fPIC ./configure make CFLAGS=-fPIC make CFLAGS=-fPIC install
2、安装Tcmalloc
wget http://gperftools.googlecode.com/files/gperftools-2.1.tar.gz tar zxvf gperftools-2.1.tar.gz cd gperftools-2.1/ ./configure # ./configure --enable-frame-pointers (若出错,尝试用64位的编译代码。) make && make install echo “/usr/local/lib” > /etc/ld.so.conf.d/usr_local_lib.conf /sbin/ldconfig
3、编译完成后,编辑/usr/bin/mysqld_safe 文件,找到 # executing mysqld_safe ,加入Tcmalloc部分。
export LD_PRELOAD=/usr/local/lib/libtcmalloc.so
4、重启MySQL。
service mysqld restart
5、检查是否生效,运行。
lsof -n | grep tcmalloc # lsof命令若报错,则运行 yum -y install lsof
如果提示类似信息,则TCMalloc已生效。
mysqld 7758 mysql mem REG 253,0 1943001 109233156 /usr/local/lib/libtcmalloc.so.4.1.0
6、DirectAdmin优化MySQL的配置参数。
cp -f /usr/share/mysql/my-medium.cnf /etc/my.cnf # 64MB内存的VPS cp -f /usr/share/mysql/my-large.cnf /etc/my.cnf # 1G或以上的VPS /sbin/service mysqld restart # 重启MySQL