show variables like '%innodb_use_sys_malloc%';
+-----------------------+-------+
| Variable_name         | Value |
+-----------------------+-------+
| innodb_use_sys_malloc | ON    |
+-----------------------+-------+
1 row in set (0.00 sec)


#默认设置值为1,
#设置为0:表示Innodb使用自带的内存分配程序。
#设置为1:表示InnoDB使用操作系统的内存分配程序。

与默认的glibc中的malloc相比
Tcmalloc在内存上的分配效率和速度上要高的多

可以提高mysql服务器在高并发,降低系统负载

 

安装libunwind和gperftools
 #tar zxvf libunwind-1.1.tar.gz
 #cd libunwind-1.1
 #./configure
 #make
 #make install

 tar zxvf tar zxvf gperftools-2.1.tar.gz
 #cd gperftools-2.1
 #./configure
 #make
 #make install

 vi /usr/local/mysql/bin/mysqld_safe

在# executing mysqld_safe的下一行,添加:
export LD_PRELOAD=/usr/local/lib/libtcmalloc.so
保存退出,并重启MySQL

依据lsof验证命令查看TCMalloc是否起效:

# lsof |grep -i libtcmalloc.so
如果发现以下信息,说明tcmalloc已经起效:
mysqld  13961   mysql  mem    REG  253,0  1948990     196421/usr/local/lib/libtcmalloc.so.4.1.2

 

最后用sysbench验证
作比较发现使用tcmalloc后比未使用tcmalloc的每秒是事务数高15%左右