La memoria Redis continua ad aumentare in Discourse 3.4.0.beta3

Ho recentemente aggiornato Discourse dalla versione 3.4.0.beta1 alla 3.4.0.beta3. Dopo l’aggiornamento, stiamo notando che l’utilizzo della memoria del forum sta gradualmente aumentando, causando il blocco dell’applicazione. Controllando il server, possiamo vedere che redis-server sta consumando il 95% della memoria.

Stiamo eseguendo redis-cli flushall quotidianamente per risolvere temporaneamente il problema. L’istanza di Discourse è ospitata in Docker.

Ho provato a tornare alla versione precedente, ma ha restituito alcuni errori durante la ricostruzione.

2 Mi Piace

Posso sapere come risolvere questo problema? È possibile tornare alla versione precedente o avete altri suggerimenti?

Non so come risolvere Redis, ma ho letto qualcosa di simile a un certo punto. La ricerca potrebbe aiutare.

Ma il downgrade è per lo più una cattiva idea.

1 Mi Piace

Non è possibile eseguire il downgrade di Discourse.
Redis non sta utilizzando il 95% della memoria, ma il 38,9%. Ancora molto.

Come si presenta la tua coda Sidekiq? /sidekiq/queues

Trova i dettagli di /sidekiq/queues

Fammi sapere se hai bisogno di altri dettagli

1 Mi Piace

Queste email sono lavori per caso?

2 Mi Piace

Ne dubito. Come posso verificarlo?

Fare clic sulla coda

Posso sapere se stai parlando di questa sezione delle code?

Un’altra cosa è che sotto /sidekiq/scheduler/history trovo che Jobs::Chat::EmailNotifications è ancora in esecuzione per un lungo periodo

Sì, fai clic sulla parola “low”

1 Mi Piace

Si prega di trovare i dettagli qui sotto

C’è un problema identico qui:

Con forse una soluzione:

Dato che non sei l’unico ad aver riscontrato questo problema, sembra un bug. :thinking:

Grazie, ma non credo di poter disattivare la chat. Cercherò di trovare un altro modo.

Come soluzione temporanea, ho creato un piccolo script bash per pulire la memoria di Redis e impostarlo per l’esecuzione ogni giorno alle 6 del mattino utilizzando un cron job.
Nota: sto salvando il log in /home/ubuntu/logs. Puoi ignorarlo se non ti serve.

#!/bin/bash

# Imposta la directory di log e il nome del file
LOG_DIR="/home/ubuntu/logs"
LOG_FILE="$LOG_DIR/redis.cleanup.$(date +\%Y-\%m-\%d).log"

# Assicurati che la directory di log esista
mkdir -p "$LOG_DIR"

# Registra informazioni sull'ambiente corrente (lato host)
echo "Esecuzione script alle $(date)" >> "$LOG_FILE"

# Esegui il discourse launcher nell'app e salva l'output nel file di log (lato host)
echo "comando di pulizia redis" >> "$LOG_FILE"
docker exec app redis-cli flushall >> "$LOG_FILE" 2>&1

# Indica che lo script è stato completato (lato host) ed esci
echo "Script completato con successo alle $(date)" >> "$LOG_FILE"
exit 0
2 Mi Piace

Aggiornamento: Sembra che sia stato risolto automaticamente. Ora che ci penso, abbiamo avuto un problema simile l’ultima volta che abbiamo aggiornato la versione, e la memoria continuava a salire, ma si è risolto da solo dopo un po’. Sembra un bug.

2 Mi Piace

Aggiornamento: ho arrestato l’app e l’ho riavviata, ho riscontrato lo stesso problema :slightly_smiling_face:

1 Mi Piace

122M di processi in coda mostrano sicuramente che qualcosa non va :thinking:
Quanti utenti ci sono sul tuo Discourse?
Quanti canali chat ci sono?
Quanti utenti ci sono nei tuoi 3 canali chat più grandi?

1 Mi Piace

3,4 gruppi di chat hanno oltre 2 lakh di membri

Non ho familiarità con “lakh”, ma Google dice che è 100.000 :open_mouth: è corretto?

1 Mi Piace

Sì, il numero esatto è 227.254 membri in un singolo gruppo. Abbiamo membri simili in altri 2 o 3 gruppi.

1 Mi Piace