技术说明:
TCMalloc 全称Thread-Cachig Malloc,是谷歌开发的开源工具Google-preftools中的一个成员。与标准的glibc库的Malloc相比,TCMalloc库在内存分配效率和速度上要高很多,在很大程度上提高了服务器在高并发情况下的性能,从而降低了系统的负载。
一.安装libunwind:
1.安装libunwind:
http://download.savannah.gnu.org/releases/libunwind/
下载libunwind-0.99.tar.gz
2.tar –zxvf libunwind-0.99.tar.gz
3.cd libunwind-0.99
4.CFLAGS=-fPIC ./configure
5.make CFLAGS=-fPIC
6.make CFLAGS=-fPIC install
7.echo "/usr/local/lib" >/etc/ld.so.conf.d/usr_local_lib.conf
8./sbin/ldconfig
二.安装google-preftools:
1.下载地址:
http://download.chinaunix.net/download.php?id=32582&ResourceID=12865
下载google-perftools-1.9.tar.gz
2. chmod 700 google-perftools-1.9.tar.gz
3. tar -zxvf google-perftools-1.9.tar.gz
4. cd google-perftools-1.9
5. ./configure
6. make && make install
7. echo "/usr/local/lib" >/etc/ld.so.conf.d/usr_local_lib.conf
8./sbin/ldconfig
三.重新编译Nginx:
1. cd nginx-1.5.8
2../configure --with-google_perftools_module --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module
3. make && make install
四.为google-perftools添加线程目录:
mkdir –p /tmp/tcmalloc
chmod 0777 /tmp/tcmalloc
五.修改Nginx主配置文件:
vim /usr/local/nginx/conf/nginx.conf:
#pid logs/nginx.pid;
google_perftools_profiles /tmp/tcmalloc;
六.验证google-perftools正常加载,命令查看方式:
lsof –n |grep tcmalloc
[[email protected] conf]# lsof -n |greptcmalloc
nginx 15017 www 10w REG 253,0 0 801420 /tmp/tcmalloc.15017
nginx 15018 www 12w REG 253,0 0 801417 /tmp/tcmalloc.15018
nginx 15019 www 14w REG 253,0 0 801415 /tmp/tcmalloc.15019
nginx 15020 www 16w REG 253,0 0 784898 /tmp/tcmalloc.15020
nginx 15021 www 18w REG 253,0 0 801274 /tmp/tcmalloc.15021
nginx 15022 www 20w REG 253,0 0 801414 /tmp/tcmalloc.15022
nginx 15023 www 22w REG 253,0 0 801418 /tmp/tcmalloc.15023
nginx 15024 www 24w REG 253,0 0 801419 /tmp/tcmalloc.15024
在Nginx的主配置文件Nginx.conf中设置worker_processes的值为8,所以开启了8个Nginx线程,每个线程有一行记录。每个线程文件后面的数字值就是启动的Nginx的pid值。
利用TCMalloc优化Nginx可以提高服务器在高并发下的性能,降低系统负载,使服务器稳定、高效运行!