【发布时间】:2015-12-02 00:30:41
【问题描述】:
我正在使用流星制作报废引擎,我必须执行 HTTP GET 请求,这会向我发送一个 xml,但这个 xml 大于 400 ko。
我得到一个异常“内存不足”。
result =Meteor.http.get 'http://SomeUrl.com'
致命错误:JS 分配失败 - 进程内存不足
有没有办法增加变量的内存限制?
【问题讨论】:
标签: node.js meteor out-of-memory
我正在使用流星制作报废引擎,我必须执行 HTTP GET 请求,这会向我发送一个 xml,但这个 xml 大于 400 ko。
我得到一个异常“内存不足”。
result =Meteor.http.get 'http://SomeUrl.com'
致命错误:JS 分配失败 - 进程内存不足
有没有办法增加变量的内存限制?
【问题讨论】:
标签: node.js meteor out-of-memory
可以增加使用流星生成的节点应用程序的可用内存。
我没有成功在流星脚本中调用的节点实例中使用 --max-old-space-size 标志,也没有按照 gatolgaj 的建议尝试在流星工具的脚本中更改它
但是设置环境变量 NODE_OPTIONS="--max-old-space-size=8192" 确实对我有用。
我在这个帖子中看到了它:https://groups.google.com/forum/#!topic/meteor-talk/C5oVNqm16MY
【讨论】:
我知道这个问题已经解决并且有点老了,但我想分享我的经验。经过一番研究,我刚刚更新了我的 Meteor 版本。似乎他们最近更加关注内存不足错误。所以我会鼓励你更新到新的 Meteor 版本。
【讨论】:
在使用 Meteor 1.1.0.3 的 Windows 10 上也是如此:
C:\Users\Cees.Timmerman\AppData\Local\.meteor\packages\meteor-tool\1.1.4\mt-os.windows.x86_32\tools\fiber-helpers.js:162
}).run();
^
FATAL ERROR: Evacuation Allocation failed - process out of memory
Resolved 通过将控制台日志级别设置为“警告”而不是 settings.json 中的“调试”,由 Winston 2.1.0 (var level = Meteor.settings.log_level) 等记录器包内部使用。
【讨论】:
我在 Windows 上开发并遇到了同样的错误。就我而言,是由大量的 console.log 语句引起的。我禁用了日志语句,并且再次正常工作。
【讨论】:
如果你是在 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" %*
希望对你有帮助
【讨论】:
您需要增加服务器上的内存量,例如通过启用swap memory。看看如何,假设你在 Linux 上,你可以 f.ex。阅读 DigitalOcean 的guide on enabling swap memory on Ubuntu 14.04。
我不知道有什么方法可以处理 Node 内存不足的情况,除非你可以将 GET 请求分离到一个子进程中,这样整个服务器就不会在你内存不足的情况下崩溃.
要增加 Node 的内存限制,您可以使用 Node 的 --max_old_space_size 选项。
【讨论】: