以下內容針對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安裝完成。
新聞熱點
疑難解答