uWSGI listen queue 隊列溢出的問題


如果沒有設置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的值


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM