Lange Laufzeit bei Verschiebungsbeiträgen / Timeout-Fehler

Wir betreiben ein selbst gehostetes Discourse-Forum (tff-forum.de) mit über 4 Millionen Beiträgen und vielen großen Threads.

Seit dem letzten Update auf Version 3.4.0.beta3 erleben wir lange Laufzeiten von 15 bis 20 Sekunden beim Verschieben von Beiträgen von einem Thread in einen anderen.

In einigen Fällen bricht die Funktion mit einem Fehler ab und das Protokoll zeigt die folgende Meldung:

Unicorn worker received USR2 signal indicating it is about to timeout, dumping backtrace for main thread

Vor dem Update hatten wir nur Probleme beim Verschieben von Beiträgen zwischen sehr großen Threads. Jetzt bricht die Funktion manchmal ab, wenn die Threads nur wenige Beiträge enthalten.

Haben Sie Ratschläge, was wir überprüfen können, um die Ursache für dieses Problem zu finden? Ist es möglich, dass wir ein Problem mit der Datenbank haben (fehlender Index/Statistiken)?

Vielen Dank im Voraus für Ihre Unterstützung.

1 „Gefällt mir“

Es gab einige Commits in beta3, die Leistungsprobleme aufwiesen. Sie sollten wahrscheinlich ein Upgrade durchführen.

Hinweis: Das PostgreSQL 15 Update erschwert das Upgrade.

1 „Gefällt mir“

Vielen Dank für den Rat, auf 3.4.0.beta4 zu aktualisieren. Aufgrund der Änderung von PostgreSQL auf Version 15 benötigen wir einen längeren Wartungsslot. Es ist jedoch sinnvoll, das Update in den nächsten Tagen durchzuführen, um zu sehen, ob dies unser Problem löst.

Wir waren etwas überrascht von der PostgreSQL-Aktualisierung. Wir hatten einige Tage zuvor das Update unseres Testsystems auf 3.4.0.beta3 durchgeführt und keine Probleme gehabt. Als wir das Update des Produktionssystems durchführten, war das Datenbankupdate plötzlich Teil des Prozesses. Wir waren darauf nicht vorbereitet und haben das Datenbankupdate übersprungen. Daher müssen wir es entweder zusammen mit Version 3.4.0.beta4 oder als separaten Schritt davor durchführen.

Ist es möglich, dass das übersprungene Datenbankupdate unsere Performance-Probleme verursacht? Gibt es eine einfache Möglichkeit zu überprüfen, ob die Datenbankindizes und Statistiken korrekt sind?

Wahrscheinlich nicht.

Sie können die Befehle vacuum und reindex, die im PG-Update-Thema vorgeschlagen werden, jederzeit ausführen.