这个tcmalloc很出名了,是google出的内存管理模块,比传统模块控制更合理,能应付更高的并发,而且也更稳定.
不过这个模块不是系统自带的,没有原生安装,所以需要手动去安装操作,稍微有点麻烦.这个模块包含在google封装的工具集google-perftools里面.
安装
先安装相关运行库,因为是用c++写的,需要make,还有一个运行环境libunwind
|
1
|
yum -y
install
gcc
make
gcc-c++ libunwind
|
然后下载并安装google-perftools
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
#下载源码包
wget https:
//github
.com
/gperftools/gperftools/releases/download/gperftools-2
.5
/gperftools-2
.5.
tar
.gz
#解压源码包
tar
xf gperftools-2.5.
tar
.gz
#开始编译安装
.
/confighre
make
make
install
#搜索一下,找到安装好的相关C库文件
find
/ -name libtcmalloc.so
/usr/local/lib/libtcmalloc
.so
/opt/gperftools-2
.5/.libs
/libtcmalloc
.so
#创建lib库软连接,这样就不需要用ldconfig了
ln
-sf
/usr/local/lib/
*
/usr/lib/
#完成
ll
/usr/lib/libtcmalloc
.so
lrwxrwxrwx. 1 root root 29 Jan 23 12:05
/usr/lib/libtcmalloc
.so ->
/usr/local/lib/libtcmalloc
.so
|
安装完成,就等程序调用了,懂开发的可以测试一下,我这里直接用mysql调用.
===============================================
因为这个软件略难找,这个链接也不知道什么时候失效,我上传到51cto下载了
http://down.51cto.com/data/2437899
===============================================
配置mysql使用
使用mysql调用这个模块,有两种方法,一种就是加载到mysqld_safe启动,另一种就是加载的配置文件.不过,都要重启mysql程序才能生效,其他程序亦然.
没有项目加载的话,下面这条命令是没有返回的
|
1
|
lsof
-n |
grep
tcmalloc
|
然后,加到mysql的配置文件my.cnf
|
1
2
3
4
5
6
7
8
9
10
11
12
|
#打开mysql配置文件,添加下面两行
vim
/usr/local/mysql/my
.cnf
.
.
.
[mysqld_safe]
malloc-lib=tcmalloc
.
.
.
#重启mysql
/etc/init
.d
/mysql
restart
|
注意:如果是正常安装并加载libtcmalloc.so的话,是不会报错的,重启将直接生效.如果有报错,则需要研究一下哪里做错了,或者尝试重新安装.
现在来看看使用上没有
|
1
2
3
4
|
lsof
-n |
grep
tcmalloc
mysqld 3665 mysql mem REG 253,0 1050408 100663894
/usr/local/lib/libtcmalloc_minimal
.so.4.3.0
mysqld 3665 3666 mysql mem REG 253,0 1050408 100663894
/usr/local/lib/libtcmalloc_minimal
.so.4.3.0
mysqld 3665 3669 mysql mem REG 253,0 1050408 100663894
/usr/local/lib/libtcmalloc_minimal
.so.4.3.0
|
可以明确看到,mysql已经加载上这个模块了,那就可以用了
本文转自arthur376 51CTO博客,原文链接:http://blog.51cto.com/arthur376/2064226,如需转载请自行联系原作者