TCMalloc(Thread-Caching Malloc)与标准glibc库的malloc实现一样的功能,但是TCMalloc在效率和速度效率都比标准malloc高很多。TCMalloc是google-perftools工具中的一个(gperftools四个工具分别是:TCMalloc、heap-checker、heap-profiler和cpu-profiler),这个工具是开源的,以源码形式发布。如果觉得自己维护一个内存分配器麻烦的话,可以考虑将TCMalloc静态库连接到你的程序中。使用的时候和glibc中的malloc调用方式一模一样。你需要做的只是把TCMalloc的动态库或者静态库连接进你的程序中,你就可以获得一个高效,快速,安全的内存分配器。

与标准的glibc库的malloc相比,TCMalloc在内存的分配效率和速度要高,可以在高并发的情况下很好的控制内存的使用,提高服务器的性能,降低负载

google-perftools:https://github.com/gperftools/gperftools/archive/gperftools-2.6.1.tar.gz

libunwind : https://github.com/libunwind/libunwind/archive/v1.2.1.tar.gz

1. libunwind安装

4位操作系统请先安装 libunwind库,32位操作系统不要安装。libunwind库为基于64位CPU和操作系统的程序提供了基本的堆栈辗转开解功能,其中包括用于输出堆栈跟踪的API、用于以编程方式辗转开解堆栈的API以及支持C++异常处理机制的API。

 #tar zxvf libunwind-1.1.tar.gz
 #cd libunwind-1.1
 #./autogen.sh
 #./configure
 #make
 #make install
./autogen.sh:行7: autoreconf: 未找到命令
autoreconf: automake failed with exit status: 1
这时还要安装一下yum install autoconf automake gnome-common
2. 安装google-perftools
#tar -zvxf gperftools-2.6.1.tar.gz
# cd gperftools-gperftools-2.6.1
#./autogen.sh
#./configure
#make
#make install

./libtool: line 1125: g++: command not found
make: *** [src/libtcmalloc_minimal_la-tcmalloc.lo] 错误 1

yum install gcc-c++

3. TCMalloc库加载到Linux系统中

#echo '/usr/local/lib' > /etc/ld.so.conf.d/local.conf

#ldconfig

编译nginx

#./configure --prefix=/usr/local/nginx --user=www --group=www   --with-poll_module --with-select_module --with-pcre=/usr/local/src/nginx-1.10.3/pcre-8.41    --with-google_perftools_module

#make && make install
为添加线程目录:
mkdir /tmp/tcmalloc
chown -R www.www /tmp/tcmalloc
vi /usr/local/nginx/conf/nginx.conf     #PID the next line add
google_perftools_profiles /tmp/tcmalloc;
验证tcmalloc是否在Nginx中生效
内存管理TCMalloc 安装和使用_第1张图片