Warum tritt bei NGINX eine Zeitüberschreitung auf?

Warum tritt bei NGINX eine Zeitüberschreitung auf?

Ich habe eine Anwendung mit etwa 200.000 Benutzern und betreibe einen NGINX + Gunicorn (Python)-Server hinter einem AWS EC2-Loadbalancer.

Ich verstehe nicht, wie meine Anfragen immer 4.000/Minute betragen, aber nur manchmal die Hälfte des Datenverkehrs auf Timeout-Probleme zurückzuführen ist. Meistens sind alle Anfragen in Ordnung, aber manchmal fängt es an zu blockieren, und dann kommt es bei fast allen Anfragen zu Timeouts.

Mir ist aufgefallen, dass dieses Muster der Anzahl aktueller Verbindungen wellenförmig ist und zwischen 1000 und 0 schwankt. Bündelt NGINX irgendwie Anfragen? Wie kann ich die Anfragezeit unterscheiden, um herauszufinden, ob NGINX nicht richtig konfiguriert ist oder ob mein Python-Server einfach besonders langsame Endpunkte erhält, die zu oft aufgerufen werden?

Ich habe einen Screenshot von einem der Server in meinem NGINX Amplify-Dashboard angehängt.

Gibt es Ideen zu Teilen der NGINX-Protokolle oder von Amplify, die ich untersuchen kann, um festzustellen, ob es sich um ein NGINX-Konfigurationsproblem handelt oder ob der gehostete Python-Prozess blockiert wird? Vielen Dank! NGINX Amplify Dashboard

Antwort1

Sehen Sie sich Ihre CloudWatch-Metriken an, insbesondere die Metriken zu „Abgebrochen“ oder „Fehlgeschlagen“. Dort können Sie alle Details zu Ihrem Loadbalancer und Ihren EC2-Instanzen sehen. Ich weiß nicht, welche Instanztypen Sie verwenden, aber es könnte sein, dass Sie T2/T3-Instanzen ständig übermäßig nutzen und Ihnen das Guthaben ausgeht. Ich würde denken, dass einige Teile Ihres Flusses aus irgendeinem Grund gedrosselt werden und dass dies nicht unbedingt ein Problem bei den Instanzen selbst ist.

verwandte Informationen