uwsgi: Ihr Server-Socket-Listen-Backlog ist auf 100 Verbindungen beschränkt
Führe ich ein Fläschchen app auf uwsgi. Ich benutze supervisor verwalten uwsgi-Prozess. Ich finde das log sagt, dass
dein server socket listen backlog ist limitiert auf 100 verbindungen.
Überwindung von 100 verbindungen Begrenzung?
Mein Skript ist wie folgt:
[program:myapp]
command=uwsgi --master -s /tmp/app.sock --module myapp:app --processes 2 -H /srv/sites/mysite chmod-socket 666 --enable-threads
InformationsquelleAutor der Frage shoujs | 2012-09-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Beachten Sie, dass einem "hören-Rückstand" von 100 verbindungen, bedeutet nicht, dass Ihr server kann nur mit 100 gleichzeitige (oder Gesamt) verbindungen - dies ist vielmehr abhängig von der Anzahl der konfigurierten Prozesse oder threads. Die listen backlog ist eine socket-Einstellung sagen, der kernel, wie die Begrenzung für die Anzahl der ausstehenden (noch unaccapted) - verbindungen in der listen-queue von einem socket. Wenn die Anzahl der ausstehenden verbindungen, die die angegebene Größe überschreitet, werden neue, automatisch zurückgewiesen. Eine funktionierende server regelmäßig Wartung Ihrer verbindungen sollte nicht verlangen, einen großen Rückstand Größe.
Entsprechend der Bedienungsanleitung, Sie kann verändern Sie den listen-Rückstand mit der
-l
option:InformationsquelleAutor der Antwort user4815162342
Einfach eine änderung (Erhöhung) der uwsgi - hören-Rückstand mit der
-l
oder--listen
option (wie schon von user4815162342), während der server gestartet wird, auf einen Wert größer als 128 wird nicht zulassen, uwsgi zu laufen. Da gibt es auch ein system-level-limit auf Unix-socket und TCP-Verbindung hören-queue - der Standardwert ist 128, kann man überprüfen, ob es (für Unix-socket):uwsgi hatte gepatchtso dass, wenn der übergebene Wert zu
--listen
parameter beim starten von uwsgi größer ist dann die system-level-limit (Linux-kernel-Grenze) es werden Ursache uwsgi zu fail hard. Wenn Sie festlegen möchten uwsgi die listen queue-Grenze größer als die system-level-limit (also 128) - Sie müssen zuerst erhöhen Sie den kernel beschränken. Getan werden kann das ausführen der folgenden Befehle:Oder
Oder Fügen Sie
net.core.somaxconn=4096
zu/etc/sysctl.conf
es sich auf Dauer (überleben den Neustart).InformationsquelleAutor der Antwort Nabeel Ahmed
Können Sie ändern, SOMAXCONN in /proc/sys/net/core/somaxconn um das limit zu erhöhen.
Es ist einfach linux-tuning-Systeme.
InformationsquelleAutor der Antwort Lujeni