我最近将 Discourse 从 3.4.0.beta1 版本更新到了 3.4.0.beta3。更新后,我们注意到论坛的内存使用量在逐渐增加,导致应用程序崩溃。当检查服务器时,我们可以看到 redis-server 占用了 95% 的内存。
我们每天运行 redis-cli flushall 来暂时解决这个问题。Discourse 实例托管在 Docker 中。
我尝试降级到之前的版本,但在重建时出现了一些错误。
我最近将 Discourse 从 3.4.0.beta1 版本更新到了 3.4.0.beta3。更新后,我们注意到论坛的内存使用量在逐渐增加,导致应用程序崩溃。当检查服务器时,我们可以看到 redis-server 占用了 95% 的内存。
我们每天运行 redis-cli flushall 来暂时解决这个问题。Discourse 实例托管在 Docker 中。
我尝试降级到之前的版本,但在重建时出现了一些错误。
我能知道如何修复这个问题吗?是否可以降级到之前的版本,或者您有什么其他建议?
我不知道如何修复 Redis,但我以前读过类似的东西。搜索可能会有帮助。
但降级通常是个坏主意。
您无法降级 Discourse。
Redis 未使用 95% 的内存,而是使用了 38.9%。仍然很多。
您的 Sidekiq 队列看起来怎么样?/sidekiq/queues
这些邮件是工作机会吗?
我不这么认为。我该如何检查?
点击队列
这里有一个类似的问题:
也许有一个修复方法:
由于你不是唯一遇到这个问题的人,这看起来像是一个bug。 ![]()
谢谢,但我认为我无法关闭聊天。我会尝试找出其他方法。
作为临时解决方案,我创建了一个小的 bash 脚本来清理 Redis 内存,并使用 cron 作业将其设置为每天早上 6 点运行。
注意:我将日志保存在 /home/ubuntu/logs。如果您不需要,可以忽略它。
#!/bin/bash
# 设置日志目录和文件名
LOG_DIR="/home/ubuntu/logs"
LOG_FILE="$LOG_DIR/redis.cleanup.$(date +\%Y-\%m-\%d).log"
# 确保日志目录存在
mkdir -p "$LOG_DIR"
# 记录有关当前环境(主机端)的信息
echo "Running script at $(date)" >> "$LOG_FILE"
# 在应用程序中运行 discourse launcher 并将输出保存到日志文件(主机端)
echo "redis cleanup command" >> "$LOG_FILE"
docker exec app redis-cli flushall >> "$LOG_FILE" 2>&1
# 指示脚本已完成(主机端)并退出
echo "Script completed successfully at $(date)" >> "$LOG_FILE"
exit 0
更新:似乎已自动修复。现在我想起来了,上次更新版本时我们也遇到了类似的问题,内存持续飙升,但过了一会儿就自行修复了。这似乎是一个 bug。
更新:我停止了应用然后重新启动,我遇到了同样的问题 ![]()
3、4个聊天群的成员超过20万
我不熟悉“lakh”,但谷歌说它是100,000
是正确的吗?
是的,一个群组的确切人数是 227,254 名成员。我们在另外 2 到 3 个群组中也有类似的成员。