- 安裝nginx:
- a.下載安裝libunwind:
- wget http://download.savannah.gnu.org/releases/libunwind/libunwind-0.99.tar.gz
- tar zxvf libunwind-0.99.tar.gz
- cd libunwind-0.99/
- CFLAGS=-fPIC ./configure --prefix=/usr/local/libunwind
- make CFLAGS=-fPIC
- make CFLAGS=-fPIC install
- 配置環境變量:
- vim /etc/ld.so.conf
- 最後一行加入
- /usr/local/libunwind/lib/
- 生效:
- ldconfig
- b.下載並安裝google-perftools
- wget http://google-perftools.googlecode.com/files/google-perftools-1.7.tar.gz
- tar -xzvf google-perftools-1.7.tar.gz
- cd google-perftools-1.7
- ./configure --prefix=/usr/local/perftools --enable-frame-pointers
- make && make install
- 配置環境變量:
- vim /etc/ld.so.conf
- 最後一行加入
- /usr/local/perftools/lib/
- 生效:
- ldconfig
- 因爲將google-perftools自定義安裝到了 /usr/local/perftools目錄
- 因此執行以下命令:
- cp -r /usr/local/perftools/lib/* /usr/local/lib
- google-perftools添加線程目錄:
- mkdir /tmp/tcmalloc
- chmod 0777 /tmp/tcmalloc
- c.下載安裝ngx_cache_purge:
- tar -zxvf ngx_cache_purge-1.6.tar.gz
- mv ngx_cache_purge-1.6 ngx_cache_purge
- mv ngx_cache_purge /usr/local/
- d.下載安裝pcre:
- tar -zxvf pcre-8.31.tar.gz
- cd pcre-8.31
- ./configure --prefix=/usr/local/pcre
- make && make install
- 配置環境變量:
- vim /etc/ld.so.conf
- 最後一行加入
- /usr/local/pcre/lib/
- 生效:
- ldconfig
- e.下載安裝nginx:
- tar -zxvf nginx-1.2.4.tar.gz
- cd nginx-1.2.4
- 執行mkdir_src.sh
- 上傳項目源碼到相應的目錄
- 上傳nginx_module到/usr/local/下面
- /usr/local/nginx_module(nginx_module開發模塊)
- ./configure --prefix=/usr/local/nginx --add-module=/usr/local/nginx_module --with-http_stub_status_module --with-google_perftools_module --with-pcre=/usr/local/pcre
- cd objs/
- rz -y (上傳Makefile)
- cd ../
- /usr/local/nginx_upgrade/mkdir_obj.sh
- make && make install
到這裏安裝google-perftools完成了但未生效,接下來須要使google-perftools生效:nginx
sql
echo "/usr/local/lib" > /etc/ld.so.conf.d/usr_local_lib.confvim
/sbin/ldconfigide
注意,這裏的雙引號是英文的。spa
(export LD_PRELOAD=/usr/local/lib/libtcmalloc.so)線程
接下來爲google-perftools添加線程目錄:rest
code
mkdir /tmp/tcmallocorm
chmod 0777 /tmp/tcmalloc
修改/usr/local/nginx/conf/ncing.conf
在pid這行的下面添加
#pid logs/nginx.pid;
google_perftools_profiles /tmp/tcmalloc;
從新啓動nginx:
service nginx restart
驗證是否正在運行:
[root@localhost ~]# lsof -n | grep tcmalloc
nginx 13101 www 45w REG 8,1 0 4014748 /tmp/tcmalloc.13101
nginx 13102 www 47w REG 8,1 0 4014742 /tmp/tcmalloc.13102
nginx 13103 www 49w REG 8,1 0 4014746 /tmp/tcmalloc.13103
nginx 13105 www 51w REG 8,1 0 4014745 /tmp/tcmalloc.13105
nginx 13106 www 53w REG 8,1 0 4014743 /tmp/tcmalloc.13106
nginx 13107 www 55w REG 8,1 0 4014749 /tmp/tcmalloc.13107