2014-10-31 64 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構建配置或構建腳本中。如果你想要理智地檢查選項是否被實際讀取,請嘗試將其改爲亂碼 - 它應該會導致流星拋出錯誤)