nginx 核心引數調優

語言: CN / TW / HK
/etc/sysctl.conf引數解釋
來自《深入理解Nginx模組開發與架構解析》 P9

#表示程序(例如一個worker程序)可能同時開啟的最大控制代碼數,直接限制最大併發連線數
fs.file max = 999999

#1代表允許將狀態為TIME-WAIT狀態的socket連線重新用於新的連線。對於伺服器來說有意義,因為有大量的TIME-WAIT狀態的連線
net.ipv4.tcp_tw_reuse = 1

#當keepalive啟用時,TCP傳送keepalive訊息的頻率。預設是2個小時。將其調小一些,可以更快的清除無用的連線
net.ipv4.tcp_keepalive_time = 600

#當伺服器主動關閉連結時,socket保持FN-WAIT-2狀態的最大時間
net.ipv4.tcp_fin_timeout = 30

#允許TIME-WAIT套接字數量的最大值。超過些數字,TIME-WAIT套接字將立刻被清除同時列印警告資訊。預設是180000,過多的TIME-WAIT套接字會使webserver變慢
net.ipv4.tcp_max_tw_buckets = 5000

#UDP和TCP連線中本地埠(不包括連線的遠端)的取值範圍
net.ipv4.ip_local_port_range = 1024  61000

#TCP接收/傳送快取的最小值、預設值、最大值
net.ipv4.tcp_rmem = 4096  32768  262142
net.ipv4.tcp_wmem = 4096  32768  262142

#當網絡卡接收的資料包的速度大於核心處理的速度時,會有一個佇列儲存這些資料包。這個引數就是這個佇列的最大值。
net.core.netdev_max_backlog = 8096

#核心套接字接收/傳送快取區的預設值
net.core.rmem_default = 262144
net.core.wmem_default = 262144

#核心套接字接收/傳送快取區的最大值
net.core.rmem_max = 2097152
net.core.wmem_max = 2097152

#解決TCP的SYN攻擊。與效能無關
net.ipv4.tcp_syncookies = 1

#三次握手建立階段SYN請求佇列的最大長度,預設是1024。設定大一些可以在繁忙時將來不及處理的請求放入佇列,而不至於丟失客戶端的請求
net.ipv4.tcp_max_syn_backlog = 1024