Ich bekomme von meinen Mitgliedern Berichte über diese Warnmeldung. Sie taucht nicht oft auf, wird aber bemerkt. Kann ich davon ausgehen, dass hier nichts zu tun ist und es nicht so ernst ist, wie es scheint? „Extreme Last
Ich bin mir nicht so sicher, ob das überhaupt eine Fehlersuche erfordert. Aber vielleicht ließe es sich anders handhaben?
https://review.discourse.org/t/feature-when-under-extreme-load-disable-search/4538/3
Du solltest besorgt sein. Ich würde den Bericht deines Web-Crawlers im Admin-Dashboard prüfen.
Das wird ausgelöst, wenn Ihre Webanfragen schneller eingehen, als Ihr Server verarbeiten kann.
Wenn Sie beispielsweise 4 Unicorns haben und im Durchschnitt 200 ms benötigen, um eine Anfrage vollständig zu verarbeiten, beträgt Ihre Kapazität 20 Anfragen pro Sekunde.
Wenn Sie kurzzeitig 40 Anfragen pro Sekunde erhalten, warten die zusätzlichen Anfragen in einer Warteschlange, und diese Meldung wird angezeigt. Sie können auch nicht einfach blindling mehr Unicorns hinzufügen, da der Prozess, eine Webanfrage vollständig zu beantworten, viele bewegliche Teile umfasst, die sorgfältig bewertet werden sollten.
Discourse hat kürzlich viele dieser Funktionen zur graceful Degradation erhalten, da wir daran arbeiten, zu skalieren und einige verrückte Verkehrsmengen für die größten Discourse-Instanzen im Internet zu bewältigen.
Es sieht so aus, als hätten wir in den letzten Tagen einen Anstieg der Seitenaufrufe durch Web-Crawler verzeichnet. Ich bin mir jedoch nicht sicher, ob und was ich diesbezüglich tun sollte oder kann. Persönlich wäre ich damit einverstanden, wenn die Mitglieder gelegentlich informiert werden, wenn der Server stärker als normal belastet ist und die Suche vorübergehend unterbrochen wird. Vielleicht könnte die Meldung bei „extremer Belastung
Blockieren Sie den betrügerischen Crawler-User-Agent in den Site-Einstellungen. Im Internet gibt es heutzutage viele wirklich schlechte Crawler.
Hmm, nur 1800 Seitenaufrufe in 24 Stunden durch einen Crawler sollten deinen Server nicht so sehr belasten. Es könnte sich lohnen, dein Zugriffsprotokoll zu öffnen und genau zu beobachten, welche Anfragen dabei hereinkommen – das könnte auf das eigentliche Problem hinweisen. Es könnte jemand sein, der versucht, dich zu hacken, oder deine API mit Anfragen unter Beschuss nimmt.
Ich habe gerade einen Bericht über eine weitere ähnlich aussehende Benachrichtigung erhalten. Wir führen gerade eine AMA durch, und es sind etwas mehr Leute als üblich dabei, im Forum zu lesen und zu posten, aber ich bin nicht überzeugt, dass dies auf eine extreme Last zurückzuführen ist. Vielleicht verursacht ein Plugin wie Discourse Who's Online zusätzliche Last?
Danke! Ich werde mich jetzt darum kümmern.
Gibt es eine Möglichkeit, diese in einer Admin-Einstellung zu deaktivieren und die Nutzer einfach warten zu lassen, wenn es langsam wird? Ich denke, unsere Seite ist immer noch nicht besonders ausgelastet.
Wenn die Leistung so stark nachlässt, dass es zu Timeouts kommt, wirkt es nicht einfach nur langsam, sondern einfach kaputt.
Diese Warnungen zu ignorieren ist definitiv keine gute Idee!
Ich erhalte in letzter Zeit sehr häufig diese extreme Last-Benachrichtigung.
Ich habe ein Sportforum, und das passiert meistens, wenn viele Leute gleichzeitig zu einem Thema über ein bestimmtes Spiel kommentieren. Gibt es einen Leitfaden oder Hilfe dazu, was ich überprüfen kann, um die Logs oder den Server auf Leistungsprobleme zu untersuchen? Das war in den letzten Wochen noch kein Problem.
Glaubst du, dass wir bei der Performance von Beiträgen eingeloggteter Benutzer Rückschritte gemacht haben, @sam?
Ich sehe definitiv ein N+1-Problem bei Meta, das wir dringend beheben müssen.
Ich werde einige Punkte protokollieren, um das zu klären. Sobald die Seite jedoch überlastet ist, haben Administratoren die Möglichkeit, zwei Dinge anzupassen:
-
Sie können der Instanz mehr Ressourcen zuweisen (mehr Speicher für PostgreSQL oder mehr Unicorn-Worker).
-
Sie können die Anonymitätsschwelle anpassen, wie hier beschrieben:
DISCOURSE_FORCE_ANONYMOUS_MIN_QUEUE_SECONDS und DISCOURSE_FORCE_ANONYMOUS_MIN_PER_10_SECONDS
Ich habe hier eine N+1-Problematik im discourse-voting-Plugin behoben:
Ich schaue mal, ob sonst noch etwas auffällt.
Hier wurde ein weiteres N+2 gefunden:
Ich schaue mal, ob noch etwas anderes auftaucht.
F: Was ist ein “N+1”? Obwohl ich ein Entwickler (Java) bin, bin ich diesem Begriff noch nie zuvor begegnet.
Hier ist ein (mehr oder weniger Java-bezogener) Artikel, der dieses Problem erläutert:
