Die Spiele waren knapp (danke COVID), sodass wir sehr wenige Gelegenheiten hatten, dies zu messen und zu optimieren.
Wir haben festgestellt, dass selbst mit unseren verbesserten Hardware-Ressourcen (6+4 vCores und 16+8 GB RAM) bereits eine moderat aktive Nutzergruppe zu 429 Client-Freezes führen kann. Dies haben wir bei den U20-WM-Spielen beobachtet, die etwa 50 % unseres regulären Spielpublikums für die Chats angezogen haben.
Durch Messungen, Versuch und Irrtum haben wir uns für folgende Anpassungen entschieden:
DISCOURSE_REJECT_MESSAGE_BUS_QUEUE_SECONDS: 0.4
DISCOURSE_MAX_REQS_PER_IP_PER_MINUTE: 400
DISCOURSE_MAX_REQS_PER_IP_PER_10_SECONDS: 100
Dies scheint 80 % der 429-Fehler zu eliminieren und ermöglicht so ein relativ reibungsloses Erlebnis für die meisten Nutzer.
Der nächste Schritt wäre gewesen, andere Hardware-Ressourcen zu kaufen – entweder dedizierte Server für Single-Thread-Geschwindigkeit oder einen Wechsel zu einem VPS-Anbieter, der Tarife mit unzähligen vCores anbietet. Für uns ist der nächste Schritt jedoch, mit dem Discourse-Hosting-Team zusammenzuarbeiten, wie @sam zuvor angedeutet hat.
Hoffentlich sind diese Anpassungen auch für @iceman, @alec oder andere hilfreich. Achten Sie unbedingt auf die CPU-Auslastung und Warteschlangen. Außerdem habe ich aus dieser Übung gelernt, dass 2 Container weit besser sind als einer – Anpassungen können mit nahezu null Ausfallzeit vorgenommen werden, und Hardware-Ressourcen können granularer genutzt werden.
Ich bin nach wie vor an neuen Anpassungen oder Erkenntnissen interessiert, die dazu beitragen könnten, die Performance und Benutzererfahrung bei schnellen Diskussionen, die durch reale Ereignisse angetrieben werden, zu verbessern.