Redis-Speicher wächst in Discourse 3.4.0.beta3 ständig an

Ich habe Discourse kürzlich von Version 3.4.0.beta1 auf 3.4.0.beta3 aktualisiert. Nach dem Update stellen wir fest, dass die Speichernutzung des Forums allmählich zunimmt, was zum Absturz der Anwendung führt. Bei der Überprüfung des Servers können wir sehen, dass der redis-server 95 % des Speichers verbraucht.

Wir führen täglich redis-cli flushall aus, um das Problem vorübergehend zu beheben. Die Discourse-Instanz wird in Docker gehostet.

Ich habe versucht, auf die vorherige Version zurückzustufen, aber dies führte beim Wiederaufbau zu einigen Fehlern.

2 „Gefällt mir“

Kann ich erfahren, wie ich das beheben kann? Ist es möglich, auf die vorherige Version zurückzustufen, oder haben Sie andere Vorschläge?

Ich weiß nicht, wie man Redis repariert, aber ich habe so etwas schon einmal gelesen. Suchen könnte helfen.

Aber ein Downgrade ist meistens eine schlechte Idee.

1 „Gefällt mir“

Sie können Discourse nicht herabstufen.
Redis verwendet nicht 95 % des Speichers, sondern 38,9 %. Immer noch viel.

Wie sieht Ihre Sidekiq-Warteschlange aus? /sidekiq/queues

Bitte finden Sie die Details zu /sidekiq/queues

Lassen Sie mich wissen, wenn Sie weitere Details benötigen

1 „Gefällt mir“

Sind diese E-Mails zufällig Jobs?

2 „Gefällt mir“

Das bezweifle ich. Wie kann ich das überprüfen?

Klicken Sie auf die Warteschlange

Darf ich wissen, ob Sie diesen Warteschlangenbereich meinen?

Eine weitere Sache ist, dass ich unter /sidekiq/scheduler/history feststellen kann, dass Jobs::Chat::EmailNotifications immer noch über einen längeren Zeitraum laufen

Ja, klicken Sie einfach auf das Wort „niedrig“

1 „Gefällt mir“

Bitte finden Sie die Details unten

Hier gibt es ein identisches Problem:

Mit vielleicht einer Lösung:

Da Sie nicht der Einzige sind, der dies erlebt, sieht das nach einem Fehler aus. :thinking:

Danke, aber ich glaube nicht, dass ich den Chat ausschalten kann. Ich werde versuchen, einen anderen Weg zu finden.

Als temporäre Lösung habe ich ein kleines Bash-Skript erstellt, um den Redis-Speicher zu bereinigen und es so einzurichten, dass es jeden Tag um 6 Uhr morgens über einen Cron-Job ausgeführt wird.
Hinweis: Ich speichere das Protokoll in /home/ubuntu/logs. Sie können es ignorieren, wenn Sie es nicht benötigen.

#!/bin/bash

# Verzeichnis und Dateiname für Protokolle festlegen
LOG_DIR="/home/ubuntu/logs"
LOG_FILE="$LOG_DIR/redis.cleanup.$(date +\%Y-\%m-\%d).log"

# Sicherstellen, dass das Protokollverzeichnis existiert
mkdir -p "$LOG_DIR"

# Informationen über die aktuelle Umgebung (Host-Seite) protokollieren
echo "Skript wird ausgeführt um $(date)" >> "$LOG_FILE"

# Den Discourse-Launcher in der App ausführen und die Ausgabe in die Protokolldatei schreiben (Host-Seite)
echo "redis cleanup command" >> "$LOG_FILE"
docker exec app redis-cli flushall >> "$LOG_FILE" 2>&1

# Anzeigen, dass das Skript abgeschlossen ist (Host-Seite) und beenden
echo "Skript erfolgreich abgeschlossen um $(date)" >> "$LOG_FILE"
exit 0
2 „Gefällt mir“

Update: Es scheint, als wäre es automatisch behoben worden. Jetzt, wo ich mich erinnere, hatten wir ein ähnliches Problem, als wir die Version aktualisiert haben, und der Speicher stieg immer wieder an, aber es hat sich nach einer Weile von selbst behoben. Es scheint, als wäre das ein Fehler.

2 „Gefällt mir“

Update: Ich habe die App gestoppt und wieder gestartet, ich habe immer noch das gleiche Problem :slightly_smiling_face:

1 „Gefällt mir“

122M enqueued jobs zeigt definitiv, dass etwas nicht stimmt :thinking:
Wie viele Benutzer haben Sie in Ihrem Discourse?
Wie viele #chat-Kanäle gibt es?
Wie viele Benutzer befinden sich in Ihren TOP 3 größten Chat-Kanälen?

1 „Gefällt mir“

3.4 Chatgruppen haben über 200.000 Mitglieder

Ich bin nicht vertraut mit „Lakh“, aber Google sagt, es sind 100.000 :open_mouth: ist das richtig?

1 „Gefällt mir“

Ja, die genaue Zahl beträgt 227.254 Mitglieder in einer einzigen Gruppe. Wir haben ähnliche Mitglieder in 2 oder 3 anderen Gruppen.

1 „Gefällt mir“