全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
查看: 7555|回复: 27

[经验] 有人用Google的开源TCMalloc库吗?

[复制链接]
发表于 2009-11-22 19:12:43 | 显示全部楼层 |阅读模式
TCMalloc(Thread-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

32位安装方法电梯:http://www.hostloc.com/viewthrea ... amp;page=2#pid84223

[ 本帖最后由 RyoKazami 于 2009-11-30 14:10 编辑 ]

评分

参与人数 1威望 +25 收起 理由
pigicoffee + 25 我去尝试了 一直想弄

查看全部评分

 楼主| 发表于 2009-11-22 19:14:55 | 显示全部楼层
安装TCMalloc
http://code.google.com/p/google-perftools/ 下载源码包,现在最新版本是1.4。如果机器联网,直接:
wget  http://google-perftools.googleco ... erftools-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。

via:http://www.shenmiguo.com/archives/2009/323_mysql-tcmalloc.html

[ 本帖最后由 pigicoffee 于 2009-11-22 19:43 编辑 ]
发表于 2009-11-22 19:16:56 | 显示全部楼层

回复 1# 的帖子

前些日子我还提到了,但没有实际应用过。
 楼主| 发表于 2009-11-22 19:19:47 | 显示全部楼层
我觉得有必要弄弄。
发表于 2009-11-22 19:29:28 | 显示全部楼层
现在去弄弄按
发表于 2009-11-22 19:35:34 | 显示全部楼层
又是wp上拷贝的
发表于 2009-11-22 19:35:36 | 显示全部楼层
我不懂什么东西。
发表于 2009-11-22 20:13:52 | 显示全部楼层
不知道启动了没有
发表于 2009-11-22 20:27:03 | 显示全部楼层
装上了 等着看效果
 楼主| 发表于 2009-11-22 22:27:12 | 显示全部楼层
用张牛人的方法更容易,我已经搞定了:http://blog.s135.com/post/349/
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2024-5-30 10:03 , Processed in 0.063377 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表