运行Discourse需要多少内存?

你好,

我最近在自己的 VPS 上安装了 Discourse。我的服务器只有 2 GB 内存。这是否足以在生产环境中运行论坛?我曾遇到过 502 网关错误,这可能是因为内存不足。有时,在安装插件后,我需要多次刷新管理面板。

其他帖子称 1 GB 内存就足够了,但实际情况如何?我使用的是 bitnami 提供的最新 Docker 镜像。有人表示 Sidekiq 可能会占用高达 4 GB 的内存:https://github.com/bitnami/bitnami-docker-discourse/issues/150

1 个赞

你可以轻松地在 2GB 内存的 VPS 上运行 Discourse。如果你尚未设置交换空间,建议考虑进行配置。运行 ./discourse-setup 即可自动完成此操作。

3 个赞

我最初确实设置了交换空间,但如果使用交换内存,速度会大幅下降,因此默认情况下我不想启用它。

1 个赞

我们的默认配置仅在系统压力大时(例如进行网页更新时)才会使用交换空间。

如果您托管一个大型社区,并开始发现 Discourse API 响应变慢,您可以增加服务器的 CPU 和内存,然后重新运行 ./discourse-setup,使其开始使用增强后的资源。

6 个赞

这是一个新社区,还是您导入了一个大型数据库?您预计会有多少流量?单核 CPU 速度和 SSD 存储至关重要。

1 个赞

我还没有导入任何数据库。这是一个全新的论坛,目前没有任何帖子。现阶段唯一的访问者就是我。不过,我预计未来会有流量,每天可能有高达 1000 名用户访问该网站。

哦,别这么做。或者去问问他们为什么你的性能这么差。

参见:Discourse 官方标准安装

4 个赞

很好奇你为什么反对使用 Bitnami 镜像?(想必 @AntiMetaman 指的是他们新的 Helm Chart,见此处

另外,他们现在还有一个新的 Helm Chart,见此处

我们,即 Discourse 开发团队,仅针对我们自己的基础镜像进行测试。不遵循 Install Discourse in production with the official supported instructions 的安装方式可能会在不经意间出现问题,且我们不会为此提供支持。

4 个赞

仅供参考,并提供一个不同的视角 @AntiMetaman

虽然 Discourse 可以在最小内存的 VPS 上运行,但构建和重建 Discourse 的速度会比在内存更大的机器上慢得多。就我个人而言,我不会在仅 2GB 内存的机器上运行“真正”的生产环境 Discourse 应用,但这只是我的个人看法。

仅供参考(仅代表个人观点),我曾在 1GB、2GB、8GB、32GB 和 64GB 内存的服务器上安装过 Discourse,包括 VPS 和专用服务器。说实话,我更喜欢在 64GB 和 32GB 内存的机器上构建 Discourse。在 64GB 内存上构建速度非常快 :)。重建速度快如闪电,运行起来也异常流畅,就像热吐司上的黄油一样顺滑。因此,我更喜欢在内存和磁盘空间更大的机器上运行 Discourse,并与其他应用共存,而不是在内存极小的独立切片上以最小内存模式运行。

不过,这基于我个人对 Discourse 和 Docker 的使用经验及偏好。我喜欢 Discourse 能够快速重建,并在生产环境中拥有充足的“余量”,而 2GB 内存无法满足我对构建速度的要求。

4 个赞

Discourse 建议最低配置为 1GB 内存,我曾按此进行安装,但系统很快会变得缓慢,因此我建议使用 2GB。

这最初的 2GB 内存足以支撑很长时间。我目前运营一个社区,日均访问量约为 3500 次(不含爬虫),每天发布约 20-30 条帖子。使用 2GB 内存期间,我未遇到任何问题,也未察觉到任何性能下降。

我几乎可以肯定,@AntiMetaman 你的问题出在 Bitnami 镜像上,而非资源不足。请确保你的 CPU 速度足够,如果条件允许,建议分配第二个 CPU(我目前仅使用 1 个 vCPU,已能胜任工作)。

4 个赞

Bitnami 镜像仍在使用稳定版 2.4.4。我选择 Bitnami 的唯一原因是它提供了标准的 docker-compose.yml 文件,使得安装过程更加简便。一些尝试使用官方 Discourse 镜像升级到 2.6.0 beta 1 的用户遇到了失败。我将尝试使用官方 Discourse 镜像,看看效果如何。

1 个赞

好主意,第三方包(如 Bitnami 安装)在这里完全不受支持。

正如你已注意到的,它们也严重过时了。

2 个赞

您好 @Falco - 您是指在控制台中运行该命令,还是运行设置向导 www.mysite.com/wizard 就足够了?

1 个赞

它们实际上是两件不同的事情。:slight_smile:

/wizard 用于 UI 和管理员设置,以便在安装后设置您的网站,并且可以通过您的网站/浏览器访问。

discourse-setup 是安装过程本身的一部分,它(部分)分配服务器资源,并在服务器上运行。

您可以多次重新运行 discourse-setup,它不会覆盖您任何的网站数据。

3 个赞

感谢您的澄清@JammyDodger,非常感谢。

我的网站变得相当卡顿,所以我给服务器增加了内存,现在分配 2048MB 的共享缓冲区(之前是 128MB),运行得好多了。

我之前一直是手动编辑 app.yml 文件并使用 SFTP 上传,刚才在重建应用程序时注意到一个权限警告,app.yml 文件应该设置为多少?

644 或 600。我相信您提到的消息会告诉您应该是什么。

1 个赞

谢谢 @pfaffman

1 个赞