uwsgi啟動時報錯:Listen queue size is greater than the system max net.core.somaxconn (128)


新的一個nginx+uwsgi+django項目,uwsgi啟動時報錯:Listen queue size is greater than the system max net.core.somaxconn (128)

如圖所示:

根據提示:偵聽隊列大小大於系統 max net.core.somaxconn (128)

uwsgi的配置文件uwsgi.ini中的listen的值設置太大了,超過系統默認值128,導致報錯。

一開始我把uwsgi.ini里的listen=2048了,大於默認的128

解決辦法:修改uwsgi的listen參數的,都是說把listen的值改得比128就可以

但實際的項目確實需要修改,限制了接收新 TCP 連接偵聽隊列的大小。對於經常處理新連接的高負載nginx服務環境來說,默認的128太小,需要修改兩個文件里的值

/proc/sys/net/ipv4/tcp_max_syn_backlog

/proc/sys/net/core/somaxconn

可以直接 echo  65535  >  /proc/sys/net/core/somaxconn 

需要注意的是,我開始用的vim進入文件編輯修改默認值,但是無法成功保存,直接用echo命令修改值就可以。

修改后,重新啟動uwsgi      uwsgi  --ini   uwsgi.ini    

確認啟動成功   netstat -ntlp |  grep uwsgi

項目啟動成功,可以訪問web正常。

內核參數net.ipv4.tcp_max_syn_backlog 定義了處於SYN_RECV的TCP最大連接數

內核參數/proc/sys/net/core/somaxconn 定義了系統中每一個端口最大的監聽隊列的長度

還有一個點 :

echo 2048 >   /proc/sys/net/core/somaxconn    但是這樣系統重啟后保存不了  (實際中服務器不會重啟的,可以忽略)

在/etc/sysctl.conf中添加如下

net.core.somaxconn = 2048

然后在終端中執行

sysctl   -p


免責聲明!

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



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