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.
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
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.
122M di processi in coda mostrano sicuramente che qualcosa non va
Quanti utenti ci sono sul tuo Discourse?
Quanti canali chat ci sono?
Quanti utenti ci sono nei tuoi 3 canali chat più grandi?