La memoria de Redis sigue aumentando en Discourse 3.4.0.beta3

Recientemente actualicé Discourse de la versión 3.4.0.beta1 a la 3.4.0.beta3. Después de la actualización, notamos que el uso de memoria del foro aumenta gradualmente, lo que provoca la caída de la aplicación. Al revisar el servidor, podemos ver que redis-server está consumiendo el 95% de la memoria.

Estamos ejecutando redis-cli flushall diariamente para solucionar temporalmente el problema. La instancia de Discourse está alojada en Docker.

Intenté degradar a la versión anterior, pero arrojó algunos errores durante la reconstrucción.

2 Me gusta

¿Puedo saber cómo solucionar esto? ¿Es posible degradar a la versión anterior o tiene alguna otra sugerencia?

No sé cómo arreglar Redis, pero he leído algo similar en algún momento. Buscar puede ayudar.

Pero degradar es, en su mayor parte, una mala idea.

1 me gusta

No puedes degradar Discourse.
Redis no está utilizando el 95% de la memoria, sino el 38,9%. Sigue siendo mucho.

¿Cómo se ve tu cola de Sidekiq? /sidekiq/queues

Por favor, encuentra los detalles de /sidekiq/queues

Avísame si necesitas algún otro detalle.

1 me gusta

¿Son estos correos electrónicos trabajos por casualidad?

2 Me gusta

Lo dudo. ¿Cómo puedo comprobarlo?

Haz clic en la cola

¿Puedo saber si te refieres a esta sección de colas?

Una cosa más es que en /sidekiq/scheduler/history encuentro que Jobs::Chat::EmailNotifications todavía se está ejecutando durante un período prolongado.

Sí, solo haz clic en la palabra “bajo”

1 me gusta

Por favor, encuentre los detalles a continuación

Hay un problema idéntico aquí:

Con quizás una solución:

Dado que no eres el único que experimenta esto, parece un error. :thinking:

Gracias, pero no creo que pueda desactivar el chat. Intentaré encontrar otra manera.

Como solución temporal, creé un pequeño script de bash para limpiar la memoria de Redis y lo programé para que se ejecute todos los días a las 6 AM usando un cron job.
Nota: Estoy guardando el registro en /home/ubuntu/logs. Puedes ignorarlo si no lo necesitas.

#!/bin/bash

# Establecer directorio y nombre de archivo de registro
LOG_DIR="/home/ubuntu/logs"
LOG_FILE="$LOG_DIR/redis.cleanup.$(date +\%Y-\%m-\%d).log"

# Asegurarse de que el directorio de registro exista
mkdir -p "$LOG_DIR"

# Registrar información sobre el entorno actual (lado del host)
echo "Ejecutando script en $(date)" >> "$LOG_FILE"

# Ejecutar el lanzador de discourse en la aplicación y guardar la salida en el archivo de registro (lado del host)
echo "comando de limpieza de redis" >> "$LOG_FILE"
docker exec app redis-cli flushall >> "$LOG_FILE" 2>&1

# Indicar que el script se completó (lado del host) y salir
echo "Script completado exitosamente en $(date)" >> "$LOG_FILE"
exit 0
2 Me gusta

Actualización: Parece que se ha corregido automáticamente. Ahora que lo recuerdo, tuvimos un problema similar la última vez que actualizamos la versión, y la memoria seguía aumentando, pero se arregló sola después de un tiempo. Parece que es un error.

2 Me gusta

Actualización: Detuve la aplicación y la volví a iniciar, sigo teniendo el mismo problema :slightly_smiling_face:

1 me gusta

122 millones de trabajos en cola definitivamente muestran que algo anda mal :thinking:

¿Cuántos usuarios tienes en tu Discourse?
¿Cuántos canales de chat hay?
¿Cuántos usuarios hay en tus 3 canales de chat más grandes?

1 me gusta

3 o 4 grupos de chat tienen más de 2 lakh de miembros.

No estoy familiarizado con “lakh”, pero Google dice que son 100.000 :open_mouth: ¿es correcto?

1 me gusta

Sí, el número exacto es 227.254 miembros en un solo grupo. Tenemos miembros similares en otros 2 o 3 grupos.

1 me gusta