以下内容针对Nginx性能优化技巧进行说明,分别从编译安装过程优化、利用TCMalloc优化Nginx的性能和Nginx内核参数优化,希望对大家更深入的了解Nginx能起到一些帮助。
编译安装过程优化
1、减小Nginx编译后的文件大小
在编译Nginx时,默认以debug模式进行,而在debug模式下会插入很多跟踪和ASSERT之类的信息,编译完成后,一个Nginx要有好几兆字节。而在编译前取消Nginx的debug模式,编译完成后Nginx只有几百千字节。因此可以在编译之前,修改相关源码,取消debug模式。具体方法如下:
在Nginx源码文件被解压后,找到源码目录下的auto/cc/gcc文件,在其中找到如下几行:
# debug
CFLAGS="$CFLAGS -g"
注释掉或删掉这两行,即可取消debug模式。
2、为特定的CPU指定CPU类型编译优化
在编译Nginx时,默认的GCC编译参数是“-O”,要优化GCC编译,可以使用以下两个参数:
-with-cc-opt='-03’
-with-cpu-opt=CPU #为特定的CPU编译,有效的值包括:pentium, pentiumpro, pentium3,
# pentium4, athlon, opteronr,amd64, sparc32, sparc64, ppc64
要确定CPU类型,可以通过如下命令:
[root@localhost home] #cat /proc/cpuinfo | grep "model name"
利用TCMalloc优化Nginx的性能
TCMalloc的全称为Thread-Caching Malloc,是谷歌开发的开源工具google-perftools中的一个成员。与标准的glibc库的Malloc相比,TCMalloc库在内存分配效率和速度上要高很多,这在很大程度上提高了服务器在高并发情况下的性能,从而降低了系统的负载。下面简单介绍如何为Nginx添加TCMalloc库支持。
要安装TCMalloc库,需要安装libunwind(32位操作系统不需要安装)和google-perftools两个软件包,libunwind库为基于64位CPU和操作系统的程序提供了基本函数调用链和函数调用寄存器功能。下面介绍利用TCMalloc优化Nginx的具体操作过程。
1.安装libunwind库
可以从http://download.savannah.gnu.org/releases/libunwind下载相应的libunwind版本,这里下载的是libunwind-0.99-alpha.tar.gz。安装过程如下:
[root@localhost home]#tar zxvf libunwind-0.99-alpha.tar.gz
[root@localhost home]#cd libunwind-0. 99-alpha/
[root~localhost libunwind-0.99-alpha]#CFLAGS=-fPIC ./configure
[root@localhost libunwind-0.99-alphaJ#make CFLAGS=-fPIC
[root@localhost libunwind-0.99-alphaJ#make CFLAGS=-fPIC install
2.安装google-perftools
可以从http://google-perftools.googlecode.com下载相应的google-perftools版本,这里下载的是google-perftools-l.8.tar.gz。安装过程如下:
[root@localhost home] #tar zxvf google-perftools-1.8.tar.gz
[root~localhost home] #cd google-perftools-1.8/
[root@localhost google-perftools-1.8] #./configure
[root@localhost google-perftools-1.8] #make && make install
[root@localhost google-perftools-1.8] #echo "/usr/local/lib" > /etc/ld.so.conf.d/usr_local_lib.conf
[root@localhost google-perftools-1.8] #ldconfig
至此,google-perftools安装完成。
3.重新编译Nginx
为了使Nginx支持google-perftools,需要在安装过程中添加“-with-google_perftools_module"选项重新编译Nginx。安装代码如下:
[root@localhost nginx-0.7.65]#./configure /
>--with-google_perftools_module --with-http_stub_status_module --prefix=/opt/nginx
[root@localhost nginx-0.7.65] #make
[root@localhost nginx-0.7.65J #make install
刭这里Nginx安装完成。
新闻热点
疑难解答