Nginx引數說明及效能調優

2021-06-27 22:30:49 字數 3512 閱讀 8883

# worker_processes的數目應該不多於伺服器的cpu的核數目,

# 每個cpu核超過1個worker不會使得nginx效能有什麼提公升

worker_processes

4;

# 給nginx使用的檔案描述符的數目.這個需要一起設定系統核心引數'ulimit -n 200000'

# 或修改'/etc/security/limits.conf', 參考《高負載linux調優》

worker_rlimit_nofile

200000

;

# 設定每個worker程序最多可以服務多少客戶端,

# max clients = worker_connections * worker_processes

# "max clients"其實也受到系統可使用的socket連線(socket connections)的限制,大約是64k

worker_connections

1024

;

# 對於linux系統來說選擇epoll,那樣每個執行緒可以服務更多的客戶端

use

epoll

;

# 在nginx獲得有新連線的通知之後,接受盡可能多的連線

# 需要注意的是:如果worker_connections設定太低的話,這樣可能會造成擁堵

multi_accept on

;

# 快取開啟的檔案描述符(open fds),經常被訪問的檔案的資訊.

# 適當設定下面這些值可以極大提高每秒的請求數.

# 實際設定的值不一定跟下面的一樣,請根據具體機器來調優.下面只是測試環境中的乙個設定例子.

open_file_cache max

=200000

inactive

=20s

;

open_file_cache_valid

30s;

open_file_cache_min_uses

2;

open_file_cache_errors on

;

# 緩衝日誌寫入可以加速i/o,或是有可能的話甚至可以禁止,看具體的生產環境要求.

#access_log /var/log/nginx/access.log main buffer=16k;

access_log off

;

# 使用sendfile從linux核心中的乙個檔案描述符(fd)拷貝資料到另乙個檔案描述符比read() + write()更有效率,

# 因為read() + write()的方式需要在使用者空間(user space)來回傳輸資料

sendfile on

;

# 使用tcp_nopush會使nginx嘗試使用乙個資料報傳送它的http響應頭(http response head),而不是使用部分幀

# (partial frames).無論是對呼叫sendfile之前追加頭部(prepending headers)或是對是吞吐量優化來說,

# 都是非常有用的.

tcp_nopush on

;

# 不要緩衝資料傳送(data-sends)(禁止nagle演算法).

# 設定為on非常適合於實時頻繁傳送小資料.(比如,pdf,ppt檔案之類不是小資料的,應該設定為off)

tcp_nodelay on

;

# keep-alive連線的超時時間.伺服器在這個超時時間之後會關閉這個連線.

keepalive_timeout

30;

# 可通過keep-alive連線的客戶端請求數.下面的值僅是測試環境使用,具體設定請根據實際機器來調.

keepalive_requests

100000

;

# 在客戶端停止響應之後,允許伺服器關閉連線,釋放socket關聯的記憶體

reset_timedout_connection on

;

# 設定客戶端讀請求的超時時間,預設是60s

client_body_timeout

10;

# 設定客戶端的響應超時時間.如果客戶端停止讀取資料,在這麼多時間之後就釋放過期的客戶端連線,預設是60s

send_timeout

2;

# 壓縮設定.減少網路傳輸資料量.

gzip on

;

gzip_min_length

10240

;

gzip_proxied expired no-

cache no-

store

private

auth

;

gzip_types text

/plain text

/css text

/xml text//

x-/xml

;

gzip_disable

"msie [1-6]\."

;

下面是乙個完整的調優例子:

mysql效能調優 引數說明

1 skip external locking 避免mysql的外部鎖定,減少出錯機率增強穩定性,預設為啟用 2 skip name resolve 禁止mysql對外部連線進行dns解析,使用這一選項可以消除mysql進行dns解析的時間。啟用後,所有的授權必須使用ip位址。3 back log ...

Linux核心調優部分引數說明

接收套接字緩衝區大小的預設值 以位元組為單位 net.core.rmem default 262144 接收套接字緩衝區大小的最大值 以位元組為單位 net.core.rmem max 16777216 傳送套接字緩衝區大小的預設值 以位元組為單位 net.core.wmem default 262...

Linux核心調優部分引數說明

接收套接字緩衝區大小的預設值 以位元組為單位 net.core.rmem default 262144 接收套接字緩衝區大小的最大值 以位元組為單位 net.core.rmem max 16777216 傳送套接字緩衝區大小的預設值 以位元組為單位 net.core.wmem default 262...