使用tcmalloc提升mysql性能

来源:互联网 发布:配电网数据采集与监控 编辑:程序博客网 时间:2024/04/30 09:31

网上搜到了tcmalloc,说是这个东西可以让MySQL在高并发下性能也很稳定,同时也说了MySQL这个问题是因为malloc内存分配函数的bug,这个bug会使高并发的MySQL性能急剧下降。
使用google的tcmalloc 内存分配函数代替libc里的标准malloc.

google的开源性能优化工具包 perftool 被证明对提高应用程序性能确有帮助. tcmalloc是其中一个, 与标准的malloc相比, 在内存的分配上效率很高; 编译mysql时建议使用tcmalloc库–
简单来说, 只要在./configure 后生成的Makefile里改一下, 在连接库的那行最后面加上 -ltcmalloc即可.

如果已经使用的是已编译的binary,或者只想简单测试一下tcmalloc的效果, 可以用LD_PRELOAD环境变量制定运行时使用tcmalloc库; 例如在mysqld_safe里加入

export LD_PRELOAD=/usr/local/lib/libtcmalloc.so

确定程序是否使用tcmalloc库可以用lsof命令:

lsof -n| grep tcmalloc

ibunwind: http://www.nongnu.org/libunwind/
tcmalloc: http://goog-perftools.sourceforge.net/doc/tcmalloc.html

详细的安装步骤:

tar zxvf libunwind-0.98.6.tar.gz

cd libunwind-0.98.6

./configure

make

make install

tar zxvf google-perftools-0.94.1.tar.gz

cd google*

./configure

make

make install

打开 mysqld_safe 脚本 (默认在/usr/bin/mysqld_safe)
在此脚本文件开始加入
LD_PRELOAD=”/usr/local/lib/libtcmalloc.so”

/usr/local/mysql5/bin/mysqld_safe &

0 0