nginx效能優化

2022-08-30 22:42:24 字數 2144 閱讀 4021

1、worker_processes:通常配置成cpu的總核數,或者其2倍,效能會更好。這可以

減少程序間切換帶來的消耗。

還可以同時使用worker_cpu_affinity來繫結cpu,使得每個worker程序獨享乙個

實現完全的併發,效能更好,不過這個只對linux系統有效。

2、events:裡面的事件模型,linux推薦使用epoll模型,freebsd推薦採用kqueue

3、worker_rlimit_nofile:描述乙個nginx程序開啟的最多的檔案數目。配置成跟

linux核心下檔案開啟數一致就可以了。可以通過ulimit -n 來檢視,新裝的系

統預設是1024,centos中可以如下方式進行修改:

在/etc/security/limits.conf最後增加:

* soft nofile 65535

* hard nofile 65535

* soft nproc 65535

* hard nproc 65535

4、worker_connections:每個程序允許的最多連線數,預設是1024,可以設定大一些。

理論上併發總數是worker_processes和worker_connections的乘積,

5、worker_connections值的設定跟物理記憶體大小有關,因為系統可以開啟的最大檔案數和內

存大小成正比,一般1gb記憶體的機器上可以開啟的檔案數大約是10萬左右,所以,

worker_connections 的值需根據 worker_processes 程序數目和系統可以開啟的最大檔案

總數進行適當地進行設定。

6、keepalive_timeout:設定到65左右就可以

7、client_header_buffer_size:設定請求的快取,設定為4k,通常為系統分頁大小的整數

倍,可以通過getconf pagesize 來檢視系統分頁大小。

8、對開啟檔案設定快取

open_file_cache max=建議設定成和每個程序開啟的最大檔案數一致 inactive=60s;

open_file_cache_valid 90s;

open_file_cache_min_uses 2;

open_file_cache_errors on;

9、盡量開啟gzip壓縮,gzip_comp_level通常設定成3-5,高了浪費cpu

10、error日誌優化:執行期間設定為crit,可以減少i/o

11、access日誌優化:如果使用了其他統計軟體,可以關閉日誌,來減少磁碟寫,或者寫入內

存檔案,提高i/o效率。

12、sendfile指令指定 nginx 是否呼叫 sendfile 函式(zero copy 方式)來輸出檔案,通常

13、buffers size優化:如果buffer size太小就會到導致nginx使用臨時檔案儲存response,

這會引起磁碟讀寫io,流量越大問題越明顯。

14、client_body_buffer_size處理客戶端請求體buffer大小。用來處理post提交數

據,上傳檔案等。client_body_buffer_size 需要足夠大以容納需要上傳的post資料。同

理還有後端的buffer資料。

15、worker_priority程序優先順序設定:linux系統中,優先順序高的程序會占用更多的系統資

源,這裡配置的是程序的靜態優先順序,取值範圍-20到+19,-20級別最高。因此可以把這個

值設定小一點,但不建議比核心程序的值低(通常為-5)

16、 合理設定靜態資源的瀏覽器快取時間,盡量用瀏覽器快取

17、負載均衡鎖accept_mutex,建議開啟,預設就是開啟的

18、如果使用ssl的話,而且伺服器上有ssl硬體加速裝置的話,請開啟硬體加速

Nginx效能優化

在http裡面新增一行 server tokens off 預設可以設定為cpu的核數相等,併發比較大的時候,可以設定為cpu核數 2 worker cpu affinity 0001 0010 0100 1000 四核worker cpu affinity 00000001 00000010 00...

nginx效能優化

1 執行緒池 預設情況下,nginx的work process按照順序乙個個處理http請求,因此如果後台處理時間較長,則work process會長時間等待io狀態,因此限制併發性。如下所示 所以,對於可能存在的這類http請求,一般會啟用執行緒池。預設情況下,執行緒池特性並不啟用,需要在編譯時增...

Nginx效能優化

簡介 在大多數情況下,乙個常規安裝的nginx對 來說已經能很好地工作了。然而如果想擠壓出nginx的效能,就需要了解哪些指令會影響nginx效能,在本文中將解釋nginx的哪些設定可以微調。需要注意一點,這是乙個簡單的預覽 那些可以通過微調來提高效能設定的概述,不同的環境可能情況不太一樣。對於ng...