La mémoire Redis continue d'augmenter dans Discourse 3.4.0.beta3

J’ai récemment mis à jour Discourse de la version 3.4.0.beta1 à la 3.4.0.beta3. Après la mise à jour, nous avons remarqué que l’utilisation de la mémoire du forum augmentait progressivement, provoquant la chute de l’application. En vérifiant le serveur, nous pouvons constater que le redis-server consomme 95 % de la mémoire.

Nous exécutons redis-cli flushall quotidiennement pour résoudre temporairement le problème. L’instance Discourse est hébergée dans Docker.

J’ai essayé de revenir à la version précédente, mais cela a généré quelques erreurs lors de la reconstruction.

2 « J'aime »

Puis-je savoir comment résoudre ce problème ? Est-il possible de revenir à la version précédente, ou avez-vous d’autres suggestions ?

Je ne sais pas comment réparer Redis, mais j’ai lu quelque chose de similaire à un moment donné. La recherche pourrait aider.

Cependant, la rétrogradation est généralement une mauvaise idée.

1 « J'aime »

Vous ne pouvez pas rétrograder Discourse.
Redis n’utilise pas 95 % de la mémoire, mais 38,9 %. Toujours beaucoup.

À quoi ressemble votre file d’attente Sidekiq ? /sidekiq/queues

Veuillez trouver les détails de /sidekiq/queues

Faites-moi savoir si vous avez besoin d’autres détails.

1 « J'aime »

Ces e-mails sont-ils des emplois par hasard ?

2 « J'aime »

J’en doute. Comment puis-je vérifier ?

Cliquez sur la file d’attente

Puis-je savoir si vous parlez de cette section des files d’attente ?

Une autre chose est que sous /sidekiq/scheduler/history, je peux trouver Jobs::Chat::EmailNotifications toujours en cours d’exécution pendant une longue période

Oui, cliquez simplement sur le mot « bas »

1 « J'aime »

Veuillez trouver les détails ci-dessous

Il y a un problème identique ici :

Avec peut-être une solution :

Puisque vous n’êtes pas le seul à rencontrer ce problème, cela ressemble à un bug. :thinking:

Merci, mais je ne pense pas pouvoir désactiver le chat. J’essaierai de trouver une autre solution.

En guise de solution temporaire, j’ai créé un petit script bash pour nettoyer la mémoire Redis et l’ai configuré pour s’exécuter tous les jours à 6h du matin à l’aide d’une tâche cron.
Remarque : j’enregistre le journal dans /home/ubuntu/logs. Vous pouvez l’ignorer si vous n’en avez pas besoin.

#!/bin/bash

# Définir le répertoire de journalisation et le nom du fichier
LOG_DIR="/home/ubuntu/logs"
LOG_FILE="$LOG_DIR/redis.cleanup.$(date +\\%Y-\\%m-\\%d).log"

# S'assurer que le répertoire de journalisation existe
mkdir -p "$LOG_DIR"

# Journaliser les informations sur l'environnement actuel (côté hôte)
echo "Exécution du script à $(date)" >> "$LOG_FILE"

# Exécuter le lanceur de discours dans l'application et enregistrer la sortie dans le fichier journal (côté hôte)
echo "commande de nettoyage redis" >> "$LOG_FILE"
docker exec app redis-cli flushall >> "$LOG_FILE" 2>&1

# Indiquer que le script est terminé (côté hôte) et quitter
echo "Script terminé avec succès à $(date)" >> "$LOG_FILE"
exit 0
2 « J'aime »

Mise à jour : Il semble que le problème ait été résolu automatiquement. Maintenant que je m’en souviens, nous avons eu un problème similaire la dernière fois que nous avons mis à jour la version, et la mémoire a continué de monter en flèche, mais elle s’est résolue d’elle-même après un certain temps. Il semble que ce soit un bug.

2 « J'aime »

Mise à jour : J’ai arrêté l’application et l’ai redémarrée, j’ai toujours le même problème :slightly_smiling_face:

1 « J'aime »

122M de tâches mises en file d’attente montrent clairement que quelque chose ne va pas :thinking:

Combien d’utilisateurs avez-vous sur votre Discourse ?
Combien de canaux chat y a-t-il ?
Combien d’utilisateurs y a-t-il dans vos 3 plus grands canaux de chat ?

1 « J'aime »

3 4 groupes de discussion comptent plus de 2 lakhs de membres

Je ne connais pas le terme « lakh », mais Google dit que c’est 100 000 :O est-ce correct ?

1 « J'aime »

Oui, le nombre exact est de 227 254 membres dans un seul groupe. Nous avons des membres similaires dans 2 ou 3 autres groupes.

1 « J'aime »