2014-10-31 61 views
1

我在流星0.9.2.2和陨石0.9.2中工作。 我试图运行我现有的流星应用程序,但是, 我在 上遇到了很长时间的问题“找出要使用的最佳软件包版本,这可能需要一些时间。”METEOR/FATAL错误:CALL_AND_RETRY_2分配失败 - 进程内存不足

终于得到了以下错误:

FATAL ERROR: CALL_AND_RETRY_2 Allocation failed - process out of memory

/usr/local/lib/node_modules/meteorite/lib/command.js:41 
throw "Command exited with " + code + "/" + signal; 
^ 
Command exited with null/SIGABRT 

我想知道是否有什么办法来解决这个问题?

什么IOS内存是运行流星更新时,如:

memory screenshot

+0

你的记忆是什么样的? – 2014-10-31 08:00:22

+0

对不起耶稣,你的意思是什么?我该如何检查? – 2014-10-31 09:28:18

+0

大声笑你的回复让我轻轻地笑了一下。在linux上你可以使用'top'命令并查看顶部的信息..试试看你如何检查linux上的内存状态/限制。 – 2014-10-31 09:52:09

回答

1

流星是相当重的,当涉及到使用的内存。特别是在安装软件包及其依赖项时。

作为一般的经验法则,确保您至少有1GB的RAM。如果你有512MB,你可能会遇到这样的问题。

这是一个已知的问题流星,没有其他解决方法:https://github.com/meteor/meteor/issues/2475

另一种办法是增加你的交换区的大小。

0

我加入这个是因为我遇到类似的问题,我只是设法在流星1.4.3.1下解决它。

背景:

问题是流星调用节点来构建。运行时,节点为运行的V8引擎分配一定量的内存。在更大的项目中,为V8分配的默认内存不足以跟踪所有内容 - 它试图在接近极限时尝试垃圾收集,但最终会耗尽空间并显示错误并崩溃。

如果我们只是直接运行节点,我们可以使用--max-old-space-size选项运行它,这将允许我们为V8引擎设置最大内存。问题在于流星在它自己的环境中调用节点并且有自己的选择,所以我们不能直接将标志添加到我们的流星调用中。

解决方案:

看来,流星1.4.3.1(其它)将沿TOOL_NODE_FLAGS环境变量指定的标志和选项传递时,它调用节点(其他人所说NODE_OPTIONS,但它不工作对于我的版本流星 - 标志刚掉下来)

所以,如果你想增加节点引擎的最大内存4 GB,环境变量添加:

TOOL_NODE_FLAGS="--max-old-space-size=4096" 

你是上下文运行流星in - 该选项应该传递给节点调用。

(如果您不知道在哪里设置环境变量 - 它通常会在您的IDE构建配置或构建脚本中。如果你想要理智地检查选项是否被实际读取,请尝试将其改为乱码 - 它应该会导致流星抛出错误)