Gunicorn: Frage: Was passiert, wenn alle Mitarbeiter beschäftigt sind und eine Anfrage eingeht?

Erstellt am 28. Jan. 2019  ·  3Kommentare  ·  Quelle: benoitc/gunicorn

Ich vermute entweder:

  • die Anfrage blockiert, bis ein Arbeiter frei ist, oder
  • die Anforderung ist fehlgeschlagen (z. B. mit einer direkten HTTP 504-Gateway-Timeout-Antwort oder einem Verbindungsabbau, der von einem Upstream-Proxy wie Nginx als HTTP 504-Gateway-Timeout gemeldet wird)

(Ich versuche, diese Frage an die Gunicorn-Mailingliste zu senden, konnte jedoch keine klaren Anweisungen finden, wie dies direkt zu tun ist. Hoffentlich ist das Erstellen eines Github-Problems der richtige Weg.)

Question Discussion

Alle 3 Kommentare

Es ist ein guter Ort dafür :) Einige Informationen finden Sie dort bereits: http://docs.gunicorn.org/en/stable/design.html

kommt auf jeden fall darauf an. Mit Gunicorn hinter NGINX kann sogar der Sync-Worker mehrere Verbindungen akzeptieren. Es verarbeitet N Anfragen gleichzeitig (wobei N die Anzahl der Arbeiter ist), während Sie viele im nginx-Puffer warten können. In den meisten Fällen reicht dies aus, um eine sehr große Website mit mehr als 10.000 gleichzeitigen Verbindungen zu betreiben.

Für andere Verwendungen haben Sie die asynchronen Worker. Während NGINX oder ein anderer Proxy, der die Verbindungen puffern kann, diesen Arbeitern weiterhin helfen wird, kann Gunicorn mehr gleichzeitige Verbindungen verarbeiten oder einige Verbindungen für lange Zeit offen halten.

Hoffe ich habe deine Frage beantwortet.

Um nur zu Gunicorn zu antworten:

Die Backlog-Einstellung gibt an, wie tief das OS-Listening-Backlog ist. Wenn der Rückstand voll ist, wird die Anfrage vom Betriebssystem abgelehnt und das Gateway erhält einen Upstream-Verbindungsfehler. Wenn der Rückstand nicht voll ist, wird die Verbindung vom Betriebssystem geöffnet, aber von Gunicorn nicht bearbeitet, bis ein Gunicorn-Mitarbeiter bereit ist, die Anfrage anzunehmen. Das Gateway kann ein Upstream-Timeout zurückgeben, wenn Gunicorn die Anfrage nicht schnell bearbeitet.

Wenn Sie feststellen, dass Sie viele Upstream-Zeitüberschreitungen haben und mit einem Reverse-Proxy vor Gunicorn ausgeführt werden, möchten Sie möglicherweise den Rückstand verringern, damit Ihr Proxy effizienter Failover durchführen kann.

Danke Leute. Diese Antworten helfen.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen