致命错误:CALL_AND_RETRY_LAST分配失败 - 处理内存不足 - mongodb

时间:2016-12-08 12:08:07

标签: node.js mongodb

我有一个管理门户,其中配置和操作了数据库中的所有文档。

我们有一个语言翻译集合,其中包含大量文档。

管理员可以修改所有这些文件。

如果管理员打开任何其他集合,它可以正常工作。但是当他打开这个语言翻译集时,系统会变慢,几分钟后我就发现了这个错误。

<--- Last few GCs --->

513530251 ms: Mark-sweep 1397.7 (1458.0) -> 1397.7 (1458.0) MB, 2719.4 / 2 ms [allocation failure] [
GC in old space requested].
513533054 ms: Mark-sweep 1397.7 (1458.0) -> 1397.7 (1458.0) MB, 2802.9 / 2 ms [last resort gc].
513535773 ms: Mark-sweep 1397.7 (1458.0) -> 1397.6 (1458.0) MB, 2718.9 / 2 ms [last resort gc].


<--- JS stacktrace --->

==== JS stack trace =========================================

Security context: 000002D0BF1B4639 <JS Object>
    1: new constructor(aka WritableState) [_stream_writable.js:88] [pc=0000036F0D0CA7F9] (this=00000
153740AD191 <a WritableState with map 0000017D64825C01>,options=00000065E299D0F1 ,stream=00000153740ACFA1 )
    3: Writable [_stream_writable.js:143] [pc=0000036F0D0CA0C2] (this=00000153740ACFA1 <a Socket with map 0000017D...

FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - process out of memory

任何人都可以帮我解决这个问题吗?

我使用以下语法启动节点。

set node_debug=foo&& node --max-old-space-size=8192 server.js

2 个答案:

答案 0 :(得分:0)

我通过Homebrew安装Node时遇到了同样的问题。 尝试运行vim `which npm`

并改变: #!/usr/bin/env node 至: #!/usr/bin/env node --max-old-space-size=2048

更新:顺便说一句,我已按照这些simple steps

修复了此错误

答案 1 :(得分:0)

添加环境变量:

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