TCMalloc全称是Thread-Caching Malloc,是谷歌开发的开源工具google-perftools中的一个成员。与标准的glibc库的Malloc相比,TCMalloc库在内存分配效率和速度上要高很多,提高了服务器在高并发情况下的性能,从而降低了系统负载。

 要安装TCMalloc库,需要安装libunwind(32位操作系统不需要安装)和google-perftools两个软件包。

1,安装libunwind库

wget  http://download.savannah.gnu.org/releases/libunwind下载相应的libunwind版本。

#tar zxvf libunwind-0.99-alpha.tar.gz

#cd libunwind-0.99-alpha/

#CFLAGS=-fPIC  ./configure

#make CFLAGS=-fPIC

#make CFAGS=-fPIC  install

2,安装google=perftools

wget http://google-perftools.googlecode.com下载对应版本。

#tar zxvf google-perftools-1.8.tar.gz

#cd google-perftools-1.8/

#./configure

#make && make install

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

# ldconfig

至此,oogle=perftools安装完成。

3,重新编译nginx

为了是nginx支持oogle=perftools,需要安装过程中添加“-with-google_perftools_module”选项重新编译nginx。

# ./configure --with-google_perftools_module  --with-http_stub_status_module  --prefix=/opt/nginx

#make

#make install

到这里nginx安装完成。

4,为google-perftools添加线程目录

#mkdir  /tmp/tcmalloc

#chmod 0777 /tmp/tcmalloc

5,修改nginx主配置文件

修改nginx.conf文件,在pid行下面添加如下代码:

#pid     logs/nginx.pid;

google_perftools_profiles   /tmp/tcmalloc;

重启nginx即可加载google_perftools 。

6,验证运行状态

#lsof  -n | grep tcmalloc

nginx   2395  nobody   9w  REG   8,8   0  159940  /tmp/tcmalloc.2395

nginx   2396  nobody   11w  REG   8,8   0  159943  /tmp/tcmalloc.2396

nginx   2397  nobody   13w  REG   8,8   0  159941  /tmp/tcmalloc.2397

nginx   2398  nobody   15w  REG   8,8   0  159942  /tmp/tcmalloc.2398

由于nginx配置文件设置worker_processes的值为4,因此开启了4个线程。

至此,利用TCMalloc优化nginx操作完成。