1

我试图在 mongodb 中导入一个大型集合,但每次我尝试导入

-rw-r--r--   1 root root    3491368960 Jul 15 06:15 activity-june.json
mongoimport --db analytics --collection reports < activity-june.json 

它给了我这样的错误:

fatal error: runtime: out of memory

goroutine 37 [running]:
runtime.throw(0xcba857)
    /usr/local/go/src/pkg/runtime/panic.c:520 +0x69 fp=0x7fd4984fea68 sp=0x7fd4984fea50
runtime.SysMap(0xc308100000, 0x100000000, 0x42b700, 0xcd7eb8)
    /usr/local/go/src/pkg/runtime/mem_linux.c:147 +0x93 fp=0x7fd4984fea98 sp=0x7fd4984fea68
runtime.MHeap_SysAlloc(0xce3ea0, 0x100000000)
    /usr/local/go/src/pkg/runtime/malloc.goc:616 +0x15b fp=0x7fd4984feaf0 sp=0x7fd4984fea98
MHeap_Grow(0xce3ea0, 0x80000)
    /usr/local/go/src/pkg/runtime/mheap.c:319 +0x5d fp=0x7fd4984feb30 sp=0x7fd4984feaf0
MHeap_AllocLocked(0xce3ea0, 0x80000, 0x0)...

这是我的磁盘空间:

-bash-4.1#  swapon -s
Filename                Type        Size    Used    Priority
/dev/dm-1                               partition   4128764 133416  -1

这是我对数据库的最后一个查询,它没有插入任何东西。

> db.reports.find().count();
7
4

1 回答 1

2

请检查这个

1)您的计算机应该是 64 位的,如果是 32 位,那么我们不能导入超过 2GB 的数据
2)您的每个文档不应超过 16MB

http://docs.mongodb.org/manual/reference/program/mongoimport/

还检查这篇文章, https://forum.syncthing.net/t/fatal-error-runtime-out-of-memory/2190

于 2015-07-15T15:02:52.890 回答