实验环境:
OS:Redhat 5.3 64bit
Mysql:mysql 5.5.29
上次就Tcmallo优化Mysql内存管理的安装配置写了一篇blog,那么这次就针对Tcmalloc优化Nginx的内存管理的安装配置也写下。
首先,和mysql一样我们需要先安装Tcmalloc,这个请参考上一篇blog,这里就不一一说明了。
然后就是Nginx的安装了,具体详情如下:
# ./configure --prefix=/app/soft/nginx-download --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-http_random_index_module --with-http_perl_module --with-http_addition_module --with-pcre=../pcre-8.31 --with-zlib=../zlib-1.2.8 --add-module=../ngx_cache_purge-1.6 --add-module=../echo-nginx-module-0.44 --add-module=../ngx_devel_kit-0.2.18 --add-module=../lua-nginx-module-0.7.18 --add-module=../nginx_upstream_check_module-master --with-google_perftools_module# make# make install
为了Nginx支持Tcmalloc,需要在安装的过程中添加--with-google_perftools_module,其他都一样。在安装完成之后,需要对配置文档做相应的一些配置,否则Nginx默认不会启用Tcmalloc。具体的配置如下:
# mkdir /tmp/tcmalloc# chown -R www.www /tmp/tcmalloc# vim nginx.conf···pid logs/nginx.pid;google_perftools_profiles /tmp/tcmalloc/;···
如上,Nginx使用Tcmalloc来进行内存管理优化的安装配置已经完成了,检查Nginx是否使用Tcmalloc的命令可以使用:
[root@szmlvm29-79 tmp]# lsof |grep tcmallocnginx 14578 nobody 25w REG 253,0 0 5925239 /tmp/tcmalloc/.14578nginx 14579 nobody 27w REG 253,0 0 5925240 /tmp/tcmalloc/.14579nginx 14580 nobody 29w REG 253,0 0 5925241 /tmp/tcmalloc/.14580nginx 14581 nobody 31w REG 253,0 0 5925242 /tmp/tcmalloc/.14581nginx 14582 nobody 33w REG 253,0 0 5925243 /tmp/tcmalloc/.14582nginx 14583 nobody 35w REG 253,0 0 5925244 /tmp/tcmalloc/.14583nginx 14584 nobody 37w REG 253,0 0 5925245 /tmp/tcmalloc/.14584nginx 14585 nobody 39w REG 253,0 0 5925246 /tmp/tcmalloc/.14585
如上,我们看到了8条记录,那是因为每个线程(work_processes的值)会有一行记录,每个线程文件后面的数字值就是启动的nginx的pid值。
以上,就是整个Tcmalloc优化Nginx内存管理的安装配置了。