如果沒有設置uwsgi的--listen,如果sysctl -a | grep net.core.somaxconn發現net.core.somaxconn=128。
那你使用uwsgi啟動的服務,單機最大支持並發數為100*(啟動的uwsgi進程數)。
如果啟動進程為4個,則最大並發只能支持400,這樣會在uwsgi的log日志中出現錯誤uWSGI listen queue of socket 4 full。
同時,nginx對應也會出現錯誤***** upstream time out。
修補措施:
1.修改系統參數
vim /etc/sysctl.conf
在文件最后添加一行記錄net.core.somaxconn = 1024
執行sysctl -p重新load參數設置,這樣會立即生效,並且以后重新啟動機器也會生效。
2.設置uwsgi啟動的--listen 1024.
這樣 你的機器並發數就可以得到一個很大的提升。
經測試:listen 的值不能超過net.core.somaxconn的值
