每个块移动大约需要30-40分钟。
分片键是一个随机查看但是单调增加的整数字符串,它是一个长数字序列。 A"哈希"为该字段创建索引。
每个大约1.5Kb的文件有150M文件。分片集合有10个索引(其中一些是复合的)。
我在sh.status()中报告了大约11k块。到目前为止,我只能将其中的42个转移到另一个碎片。
系统由一个mongos
,一个配置服务器和一个主要(mongod
)分片和其他(mongod
)分片组成。所有这些服务器都在8核和32 GB RAM的同一台服务器上。
我知道理想的是使用单独的机器,但没有使用任何CPU,所以我认为它有利于一开始。
你有什么评论?
我需要调查什么?
这是正常的吗?
答案 0 :(得分:0)
正如mongodb文档中所述:“分片是跨多台机器存储数据记录的过程,是MongoDB满足数据增长需求的方法。随着数据量的增加,单台机器可能不足以满足数据增长需求。存储数据也不提供可接受的读写吞吐量.Shading解决了水平扩展的问题。通过分片,你可以添加更多的机器来支持数据增长和读写操作的需求。“
你绝对不应该在同一台机器上安装你的分片。这没用。分片的兴趣在于您可以按比例缩放。所以,如果你在同一台机器上进行分片......你只是在扼杀你的吞吐量。 如果你有一台机器,你的数据库将更快,没有分片。
为避免数据丢失,在使用分片之前,您应该使用:raid(不是0),replicaset然后分片。