您的位置:首页 > 数据库 > MySQL

使用tcmalloc提升mysql性能

2016-04-23 16:07 441 查看
网上搜到了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 &

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: