我正在测试 Discourse 是否可以作为我们现有论坛的替代方案,并且正在研究其要求。
目前,我在具有 4vCPU 和 8GB RAM 的 Digitalocean 节点上运行 Discourse 镜像。
在此运行的导入的 vbulletin 站点目前没有流量和活动,系统开始时使用了大约 75% 的 8GB RAM,几天后上升到 100%,然后完全停止响应。
这让我感到困惑,因为最低要求似乎比这少得多。
(我已经重建了容器,检查并清除了 sidekiq 任务,但使用率仍然很高)
有人有什么建议吗?还是我应该准备一个内存巨大的设置才能让论坛保持运行?
pfaffman
(Jay Pfaffman)
2
导入了多少帖子?
系统可能正在重新烘焙帖子和调整图片大小,这可能会消耗大量资源,即使您没有任何用户。您可以查看 /sidekiq 来了解是否有大量作业排队和/或正在运行。此外,htop 可能会为您提供有关正在运行内容的线索。
3 个赞
大约 240,000 篇帖子。
导入大约在 5 周前完成,此后经历了 5 次应用程序重建,这似乎是解决容器进入 100% 内存无响应问题的办法。
如上所述,已清除 sidekiq 中的所有任务,但使用率仍为 75%。
自昨天重建服务器以来的内存图:
*内存:8GB
CPU
流量
Sidekiq
对我来说,这看起来就像它在几天内慢慢地内存泄漏至死……(这与迄今为止观察到的行为一致。
1 个赞
RGJ
(Richard - Communiteq)
5
导入后,为了数据库性能,最好创建备份并将其还原到同一实例。
内存图是否包含或排除缓存?(即 free -m 的输出是什么样的?)
有插件吗?
1 个赞
## 插件放在这里
## 参见 https://meta.discourse.org/t/19157 获取详情
hooks:
after_code:
- exec:
cd: $home/plugins
cmd:
- git clone https://github.com/discourse/docker_manager.git
- git clone https://github.com/discourse/discourse-data-explorer.git
- git clone https://github.com/discourse/discourse-solved.git
- git clone https://github.com/discourse/discourse-cakeday.git
- git clone https://github.com/discourse/discourse-spoiler-alert.git
- git clone https://github.com/discourse/discourse-user-card-badges.git
- git clone https://github.com/discourse/discourse-adplugin.git
导致网站无响应。(已备份.. 恢复备份然后重启)
内存使用量从 6GB 增加到 7GB,网站无响应。
Falco
(Falco)
9
Redis 占用了将近 5GB 的空间,这使得 Discourse 几乎没有可用空间,特别是考虑到您运行了多少个 unicorn 进程。
如果您的 sidekiq 队列是空的,请尝试清理 Redis,因为它可能包含大量从导入中产生的垃圾数据:
./launcher enter app
redis-cli flushall
1 个赞
明白了,我会尝试 redis 命令。
独角兽工作进程问题是我早期就检查过的一个问题。我更改了 db_shared_buffers 的内存使用量,并将独角兽工作进程设置为 3。
然而,独角兽工作进程的设置似乎对实际运行的工作进程数量几乎没有影响。
来自我的 app.yml 文件
## 支持多少并发 Web 请求?取决于内存和 CPU 核心。
## 将由 bootstrap 根据检测到的 CPU 自动设置,或者您可以覆盖它
UNICORN_WORKERS: 3
那个 flushall 命令效果显著……用量降到了 2gb……我们看看现在是否能保持住。
令人担忧的是,之前东西一直在增长。希望这能让应用程序更好地自我管理。
总之……所以导入会将东西永久保存在 redis 中吗?这似乎很奇怪,但我对 redis 的工作原理一无所知。
非常感谢你的帮助。
2 个赞
system
(system)
关闭
12
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.