我在3个系统中有一个分片群集。 插入时我收到错误消息:
cant map file memory-mongo requires 64 bit build for larger datasets
我知道32位机器的限制大小为2 GB。 我有两个问题要问。
Sharding是否在增加数据量限制方面发挥了作用? 块大小在性能方面起着至关重要的作用吗?
答案 0 :(得分:2)
我不建议您使用32位MongoDB执行任何,而不是在可能无法运行64位的开发机器上运行它。一旦达到限制,文件就变得不可用了。
文档说明“使用64位进行生产。这很重要,如果你达到mmap大小限制(确切限制变化但小于2GB),你将无法写入数据库(类似于磁盘)完整的条件)。“
答案 1 :(得分:0)
Sharding就是在多个节点上扩展数据集,所以在回答您的问题时,是的,您增加了数据集的可能大小。请记住,名称空间和索引也会占用空间。
您还没有指定您的mongos所在的位置???你在哪里看到错误 - mongod
或mongos
?我怀疑它是mongod
。我相信您需要查看pre-splitting块 - http://docs.mongodb.org/manual/administration/sharding/#splitting-chunks。
这似乎表明您的所有数据都将转到mongod
。
如果您有mongos
,sh.status()
会返回什么?块是否遍布所有mongod's
?
对于测试,我建议块大小为1mb。在制作中,最好坚持使用64mb的默认值,除非你有一些非常重要的原因,为什么你不想要默认值,你真的知道你在做什么。如果你的块大小太小,那么你将经常进行拆分。