TCMallocThread-Caching Malloc)是google-perftools工具中的一个,与标准的glibc库的malloc相比,TCMalloc在内存的分配上效率和速度要高得多,可以提高Mysql服务器在高并发情况下的性能,降低系统负载。

Google-perftools的项目:http://code.google.com/p/google-perftools/

TCMalloc的原理介绍翻译:http://shiningray.cn/tcmalloc-thread-caching-malloc.html
google-perftools包括TCMallocheap-checkerheap-profilercpu-profiler4个组件,在只用TCMalloc的场景下,可以不编译其他三个组件,使用tcmalloc_minimal就足够。
下面介绍在Linux SUSE x86上安装TCMalloc动态库的过程。
 
安装TCMalloc
http://code.google.com/p/google-perftools/ 下载源码包,现在最新版本是1.4。如果机器联网,直接:
wget  http://google-perftools.googlecode.com/files/google-perftools-1.4.tar.gz
tar zxvf google-perftools-1.4.tar.gz
cd  google-perftools-1.4
Mysql服务器只需要用SO动态库就可以了,没有必须要把其他的文件(头文件静态库文档等)也安装到/usr/local/里。先安装到一个临时文件夹:
mkdir /tmp/tc
./configure –prefix=/tmp/tc –disable-cpu-profiler –disable-heap-profiler –disable-heap-checker –disable-debugalloc –enable-minimal
加上后面的几个参数是指只生成tcmalloc_minimal
如果要生成包含所有组件的tcmalloc,可:
./configure –prefix=/tmp/tc
如果要将文件直接安装到文件,就不需要临时目录了,可:
./configure
使用./configure –h可查看安装选项。
编译安装:
make && make install
ls -alt /tmp/tc/lib/*
使用了最小安装,拷贝tcmalloc_minimal的动态库到系统库目录:
cp /tmp/tc/lib/libtcmalloc_minimal.so* /usr/local/lib
建立软连接指向tcmalloc
ln -s /usr/local/lib/libtcmalloc_minimal.so.0.0.0 /usr/local/lib/libtcmalloc.so
ln -s /usr/local/lib/libtcmalloc_minimal.so.0.0.0 /usr/local/lib/libtcmalloc.so.0
ln -s /usr/local/lib/libtcmalloc_minimal.so.0.0.0 /usr/local/lib/libtcmalloc.so.0.0.0
rm -rf /tmp/tc
 
Mysql加入动态库
修改mysql服务的启动脚本mysqld_safe,在“ # executing mysqld_safe”行后添加行:
export LD_PRELOAD="/usr/local/lib/libtcmalloc.so"
目的是在启动mysql前,加载tcmalloc动态库。
重启Mysql服务:
/usr/local/mysql/bin/mysqladmin shutdown
/usr/local/mysql/bin/mysqld_safe –user=mysql &
 
验证
使用lsof查看mysql进程是否已经加载了tcmalloc库:
shell > lsof -n | grep tcmalloc
mysqld    32398      mysql mem       REG        8,3     668454    1477703 /usr/local/lib/libtcmalloc_minimal.so.0.0.0
恭喜,成功安装了tcmalloc
 

转载本站文章请注明,转载自:神秘果

本文链接: http://www.shenmiguo.com/archives/2009/323_mysql-tcmalloc.html

5 Responses to “使用TCMalloc优化Mysql性能”

  1. Your’s is a point of view where real intelligence sehins through.

  2. f2erkZ mdwssdxxrkpv

  3. ENTrFb , [url=http://wzlmhgqouuvi.com/]wzlmhgqouuvi[/url], [link=http://rctxxkdynuev.com/]rctxxkdynuev[/link], http://vkaeemtnssec.com/

  4. 6dbiVh jyortolihzaf

  5. hExycY , [url=http://pvpaihvhxgfx.com/]pvpaihvhxgfx[/url], [link=http://aqwyleuvardn.com/]aqwyleuvardn[/link], http://kkuauokmklog.com/

Leave a Reply

You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <font color="" face="" size=""> <span style="">

*