高重建内存需求:2025年4月版

好的,下一个测试已完成。

我使用以下插件构建:

https://github.com/discourse/docker_manager.git
https://github.com/discourse/discourse-data-explorer
https://github.com/communiteq/discourse-legal-compliance
https://github.com/pfaffman/discourse-allow-pm-to-staff
https://github.com/singerscreations/discourse-stopforumspam
https://github.com/discourse/discourse-cakeday

交换空间被禁用,因此只有 4GiB/3.8GB RAM。

构建期间的最大内存使用量为 3.4GB。构建时间为 6m 48s。

4 个赞

我遇到的问题是交换文件,在将其从0增加到2GB后,目前一切正常。

sudo fallocate -l 2G /swapfile        
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

在你的服务器终端中执行。之后,重新构建。

2 个赞

我发现在重建时内存需求大幅增加。我有 8GB 内存,即使添加了 8GB 交换文件,在执行此步骤时仍然空间不足:cd /var/www/discourse && sudo -E -u discourse bundle exec rake multisite:migrate

这是一个包含四个论坛的多站点安装。我以前从未需要添加交换文件。

编辑 现在尝试使用 16G 交换文件,但仍然内存不足。

这是在 Linux 下进行的,启用了最少的插件。

2 个赞

嗯……我想,文档是否应该更新以反映更高的内存要求?Introducing pre-compiled JS assets for self-hosters 有助于减少加载吗?我本以为有了这个更改,需要的内存会更少 :thinking:

自从我进行重建以来可能已经有几个月了,但在 8GB 内存且没有交换空间的情况下,它之前运行良好。我仍然没有解决这个问题,所以所有四个站点都已关闭。

我不知道这是否相关,但直到我设置了环境变量 HOME: /var/www/discourse 它才构建成功——否则它会尝试写入 /root 并被拒绝访问权限。

嗯,我看到了上百个这样的进程:

node /usr/bin/pnpm add pnpm@10.28.0 --loglevel=error --allow-build=@pnpm/exe --no-dangerously-allow-all-builds --config.node-linker=hoisted --config.bin=bin

这是某种 fork 炸弹吗?

1 个赞

请务必增加大量的交换空间,即使只是为了让您恢复运行。在这里使用交换空间的优势在于构建是一个临时峰值。

我使用两个容器的设置,在引导期间内存压力更大,因为您还有两个正在运行的容器。:sweat_smile:

我现在添加了 40GB 的交换空间,但仍然不够。

我看到了数百个这样的 node 进程,这似乎是问题所在?

我开始认为根本原因与我早些时候遇到的问题相同,当时我必须设置 HOME: /var/www/discourse,否则它会尝试写入 /root 下的文件。但我不知道该怎么做。

2 个赞

好的,出了点大问题。我也会考虑备份并从头开始重建。

1 个赞

我该如何着手处理?

参见:

谢谢,我想我先将整个服务器恢复到上一个已知良好的状态,然后从一个可工作的系统进行备份。
有人知道可能出了什么问题吗?

1 个赞

问题确实与 HOME 未正确设置有关,向 sudo 命令添加 -H 以进行多站点迁移解决了问题,详情请参见:

6 个赞