6 Nginx效能引數調優

2021-09-23 07:45:42 字數 2300 閱讀 1849

1. worker_processes

語法:worker_processes number | auto;

* number:nginx程序最多可以產生的工作程序數量

* auto: nginx程序將自動檢測

nginx伺服器實現併發處理服務的關鍵。

每個worker程序都是單執行緒的程序,它們會呼叫各個模組以實現多種多樣的功能。如果這些模組確認不會出現阻塞式的呼叫,那麼,有多少cpu核心就應該配置多少個程序;反之,如果有可能出現阻塞式呼叫,那麼需要配置稍多一些的worker程序。

例如,如果業務方面會致使使用者請求大量讀取本地磁碟上的靜態資源檔案,而且伺服器上的記憶體較小,以至於大部分的請求訪問靜態資源檔案時都必須讀取磁碟(磁頭的定址是緩慢的),而不是記憶體中的磁碟快取,那麼磁碟i/o呼叫可能會阻塞住worker程序少量時間,進而導致服務整體效能下降。

2. worker_connections

worker_connections number;

default: worker_connections 1024

每個worker程序的最大連線數,理論上每台nginx伺服器的最大連線數為worker_processes * worker_connections。

3. worker_cpu_affinity

worker_cpu_affinity cpumask [cpumask……];
繫結nginx worker程序到指定的cpu核心。

為什麼要繫結worker程序到指定的cpu核心呢?假定每乙個worker程序都是非常繁忙的,如果多個worker程序都在搶同乙個cpu,那麼這就會出現同步問題。反之,如果每乙個worker程序都獨享乙個cpu,就在核心的排程策略上實現了完全的併發。

例如,如果有4核cpu,就可以進行如下配置:

worker_processes 4;

worker_cpu_affinity 1000 0100 0010 0001;注意

4. worker_priority

worker_priority nice;

default: worker_priority 0;

nginx worker程序優先順序設定。

優先順序由靜態優先順序和核心根據程序執**況所做的動態調整(目前只有±5的調整)共同決定。nice值是程序的靜態優先順序,它的取值範圍是–20~+19,–20是最高優先順序,+19是最低優先順序。因此,如果使用者希望nginx占有更多的系統資源,那麼可以把nice值配置得更小一些,但不建議比核心程序的nice值(通常為–5)還要小

5. worker_rlimit_nofile

worker_rlimit_nofile limit;

default: 空

nginx worker程序可以開啟的最大控制代碼描述符個數。

更改worker程序的最大開啟檔案數限制。如果沒設定的話,這個值為作業系統的限制。設定後你的作業系統和nginx可以處理比ulimit -a更多的檔案,所以把這個值設高,這樣nginx就不會有too many open files問題了。

6. open_file_cache

open_file_cache max=65535 inactive=20s;
為開啟檔案指定快取,預設是沒有啟用的,max指定快取數量,建議和開啟檔案數一致,inactive是指經過多長時間檔案沒被請求後刪除快取。

7. accept_mutext

accept_mutex [on|off];

default: accept_mutext on;

是否開啟accept鎖。

accept_mutex是nginx的負載均衡鎖,當某乙個worker程序建立的連線數量達到worker_connections配置的最大連線數的7/8時,會大大地減小該worker程序試圖建立新tcp連線的機會,accept鎖預設是開啟的,如果關閉它,那麼建立tcp連線的耗時會更短,但worker程序之間的負載會非常不均衡,因此不建議關閉它。

8. accept_mutex_delay

accept_mutex_delay nms;

default: accept_mutex_delay 500ms;

使用accept鎖後到真正建立連線之間的延遲時間。

在啟用accept鎖後,同一時間只有乙個worker程序能夠取到accept鎖。這個accept鎖不是阻塞鎖,如果取不到會立刻返回。如果只有乙個worker程序試圖取鎖而沒有取到,他至少要等待accept_mutex_delay定義的時間才能再次試圖取鎖。

linux 網路監控和效能引數調優

一 netstat 1 netstat 檢視各種與網路相關的狀態資訊,包括 網路的連線 狀態 介面的統計資訊,路由表 埠的監聽情況 2 例項 netstat a 顯示所有連線中的socket netstat r 顯示路由表資訊 netstat l 顯示網路介面狀態資訊 netstat lpe 顯示所...

調優 Nginx效能調優

一.nginx優化配置 1.主配置檔案優化 注 部分配置詳解 worker processes 8 nginx程序數,建議按照cpu數目來指定,一般為它的倍數。worker cpu affinity 00000001 00000010 00000100 00001000 00010000 00100...

HighGo Database效能引數及調整建議

目錄 文件用途 詳細資訊 文件用途 本文件提供了highgo database效能引數的作用及調整方向,使用過程中需參照實際情況具體進行選擇。詳細資訊 shared buffers 最重要的引數,highgo database通過shared buffers 和核心和磁碟進行資料交換,因此應該盡量大...