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

高级搜索库tcmalloc 在 MySQL中的应用

2015-11-04 20:46 537 查看
高级搜索库tcmalloc 在 MySQL中的应用
如果操作系统是rhel 5或者rhel6的话,使用内存表多的库会出现内存占用不释放的问题,最终导致占用swap,经测试采用mysql+tcmalloc可以解决这个问题。TCMalloc(Thread-Caching Malloc)是google-perftools工具中的一个,与标准的glibc库的malloc相比,TCMalloc在内存的分配上效率和速度要高得多,可以提高Mysql服务器在高并发情况下的性能,降低系统负载下面介绍怎样部署1. 下载源码的mysql包,注意不是二进制的,用二进制的话tcmalloc无法生效Wget http://downloads.mysql.com/archives/mysql-5.1/mysql-5.1.68.tar.gz2. 下载tcmalloc源码包wget https://gperftools.googlecode.com/files/gperftools-2.0.tar.gz3. 安装tcmalloc解压之后编译mkdir /tmp/tc
./configure –prefix=/tmp/tc –disable-cpu-profiler –disable-heap-profiler –disable-heap-checker–disable-debugalloc –enable-minimalmakemake installmkdir /usr/local/libcp /tmp/tc/lib/libtcmalloc_minimal.so*/usr/local/lib4. 安装mysql解压之后编译./configure--prefix=/usr/local/mysql5168 --enable-assembler --with-client-ldflags=-all-static--with-charset=utf8 --with-extra-charsets=all --with-readline--enable-local-infile --enable-thread-safe-client --with-big-tables--without-debug --without-embedded-server --without-benchMakeMake installln -s mysql5168/ mysql./scripts/mysql_install_db --user=mysql5. Mysql加入动态库在/usr/local/mysql/bin/mysqld_safe中的# executing mysqld_safe一行的下面加上exportLD_PRELOAD="/usr/local/lib/libtcmalloc_minimal.so"6. 启动mysql/etc/init.d/mysqld start7. 检测tcmalloc是否被mysql使用[root@R720-mysql_10tmp]# lsof|grep tcmallocmysqld 1498 mysql mem REG 8,3 1116297 698517/usr/local/lib/libtcmalloc_minimal.so[root@R720-mysql_10 tmp]#如果有结果说明成功

本文出自 “zhangdh开放空间” 博客,请务必保留此出处http://linuxblind.blog.51cto.com/7616603/1709771
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: