流星内存不足

Meteor Out of Memory

我正在使用 meteor 制作报废引擎,我必须执行 HTTP GET 请求,这会向我发送一个 xml,但是这个 xml 大于 400 ko。

我遇到异常 "out of memory"。

result =Meteor.http.get 'http://SomeUrl.com'

FATAL ERROR: JS Allocation failed - process out of memory

有办法增加变量的内存限制吗?

您需要增加服务器上的内存量,例如通过启用 swap memory. To see how, assuming you're on Linux, you can f.ex. read DigitalOcean's guide on enabling swap memory on Ubuntu 14.04.

我不知道有什么方法可以处理节点 运行 内存不足的情况,除非您可以将 GET 请求分离到一个子进程中,这样整个服务器就不会崩溃以防你 运行 内存不足。

要增加 Node 的内存限制,您可以使用 Node 的 --max_old_space_size 选项。

如果您在 windows

上开发

找到 meteor.bat 在 /APPData/Local/.meteor/packages/meteor-tool/<build-tool-version>/

编辑调用 node.exe 的批处理文件的最后一行并更改为

"%~dp0\dev_bundle\bin\node.exe" --max-old-space-size=2048 "%~dp0\tools\main.js" %*

希望对您有所帮助

我在 Windows 上开发,遇到了同样的错误。在我的例子中,是由大量 console.log 语句引起的。我禁用了日志语句,并且再次正常工作。

在 Windows 10 上使用 Meteor 1.1.0.3 同样如此:

C:\Users\Cees.Timmerman\AppData\Local\.meteor\packages\meteor-tool.1.4\mt-os.windows.x86_32\tools\fiber-helpers.js:162
    }).run();
       ^
FATAL ERROR: Evacuation Allocation failed - process out of memory

by setting console log level to "warning" instead of "debug" in settings.json used internally by a logger package like Winston 2.1.0 (var level = Meteor.settings.log_level).

我知道这个问题已经解决了,有点老了,但我想分享一下我的经验。经过一些研究,我刚刚更新了我的 Meteor 版本。似乎他们最近更加关注内存不足错误。所以我会鼓励你更新到新的 Meteor 版本。

可以增加使用 meteor 生成的节点应用程序的可用内存。

我在 meteor 脚本中调用的节点实例中使用 --max-old-space-size 标志没有成功,也没有尝试在 meteor-tool 的脚本中将其更改为gatolgaj

建议

但是设置环境变量 NODE_OPTIONS="--max-old-space-size=8192" 对我有用。

我看到这个线程中提到了它:https://groups.google.com/forum/#!topic/meteor-talk/C5oVNqm16MY