Nginx性能優化應遵循一個原則:一次只調整一項,調整不理想,將修改還原。
Linux參數
Nginx很多功能直接使用操作系統實現,操作系統決定nginx上限。
現代linux內核(2.6+)涵蓋了大多應用場景,查看linux內核日志,找出參數過低的提示消息,根據建議調整。
連接隊列
若傳入連接速率很高,且性能水平參差不齊(如某些連接停滯不動),更改如下設置會有所幫助,如下設置與連接、排隊方式有關。
sudo sysctl -w net.core.somaxconn=4096
vim /etc/sysctl.conf:
net.core.somaxconn - 等待NGINX響應,排隊所能接受的最大連接數
net.core.somaxconn = 4096
默認值通常很低,通常nginx接受連接速度非常快,若網站流量很大則增加它。
若內核日志中的錯誤消息指示該值過小,增加到錯誤提示不再出現。
若此值大于512,將backlog參數改為nginx listen指令以執行匹配,如下所示:
server {listen 80 backlog=4096;# ...
}
若帶寬夠大,增加如下參數可提升性能。
net.core.n