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