# 从 3.2.0.beta3-dev 升级到 3.2.0.beta3 因内存不足而失败

**URL:** <https://meta.discourse.org/t/upgrade-from-3-2-0-beta3-dev-to-3-2-0-beta3-failed-due-to-out-of-memory/286643>\
**Category:** Self-hosting\
**Tags:** server-resources\
**Created:** [2023 年11 月 26 日 18:00 UTC](https://meta.discourse.org/t/upgrade-from-3-2-0-beta3-dev-to-3-2-0-beta3-failed-due-to-out-of-memory/286643 "2023-11-26T18:00:01Z")\
**Posts on this page:** 1\
**Showing post:** 13

<div class="post-metadata">

作者： ![Troid92](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/troid92/32/125272_2.png) [@Troid92](https://meta.discourse.org/u/Troid92)\
发布日期： [2023 年12 月 11 日 21:30 UTC](https://meta.discourse.org/t/upgrade-from-3-2-0-beta3-dev-to-3-2-0-beta3-failed-due-to-out-of-memory/286643/13 "2023-12-11T21:30:16Z")

</div>

如果这有助于从 Discourse 方面缓解问题，我还有一些额外信息。我的实例（DigitalOcean ~1GB 虚拟服务器，带 2GB 交换空间）最近开始重建花费的时间明显变长，并且大约有 3/4 的时间报告相同的致命错误（运行 `./launcher cleanup` 后运气似乎有所改善，但我没有足够样本来确认这一点）。

在堆内存不足错误之前不久，会记录以下几行：

```plaintext
Node.js heap_size_limit (491.0) is less than 1024MB. Setting --max-old-space-size=1024.
Node.js heap_size_limit (491.0) is less than 2048MB. Disabling Webpack parallelization with JOBS=0 to conserve memory.

```

我在这方面不太懂，所以如果我说错了什么，请原谅。一些快速研究表明 ember-cli 依赖于 node.js，这就是我认为这可能相关的原因。`--max-old-space-size` 标志可以设置为高于 RAM 的值（它只会进入交换空间，如前所述，在这种情况下是可以的），所以也许 1024 是我们正在遇到的一个人为上限，Discourse 重建无法再在此范围内进行。

_附注：显然 `--optimize-for-size` 是一个 node.js 标志，有助于减少内存使用（不确定 Discourse/ember 是否已使用它，也许它已经在使用中），并且有一个说法是垃圾回收器在某些 node.js 用途中没有开启，这可能是一个问题。_

如果这些信息中有任何与 Discourse 的 ember/node.js 使用方面相关且可控的，也许值得有人研究一下。如果不是，没关系，我将采用上面提出的临时升级到 2GB 的解决方案。🙂

---

_[View the full topic](https://meta.discourse.org/t/upgrade-from-3-2-0-beta3-dev-to-3-2-0-beta3-failed-due-to-out-of-memory/286643)._
