每次移动数据块大约需要30-40分钟。
分片键是一个随机增长的整数字符串,它是一个很长的数字序列。为该字段创建一个“散列”索引。
其中有1.5亿个文档,每个文档的大小约为1.5Kb。分片的集合有10个索引(其中一些是复合的)。
我在sh.status()中总共报告了大约11k个区块。到目前为止,我只能将其中的42个转移到另一个分片。
该系统由一个mongos、一个配置服务器和一个主(mongod)分片和另一个(mongod)分片组成。所有这些都在同一个服务器中,该服务器有8个内核和32 GB的内存。
我知道理想的做法是使用独立的机器,但没有一个CPU被利用,所以我认为这是一个很好的开始。
你对此有何评论?
我需要调查什么?
正常吗?
发布于 2014-05-28 06:12:30
正如mongodb文档中所说:“分片是跨多台机器存储数据记录的过程,是MongoDB满足数据增长需求的方法。随着数据量的增加,单台机器可能无法存储数据,也无法提供可接受的读写吞吐量。分片解决了水平缩放的问题。使用分片,您可以添加更多的机器来支持数据增长和读写操作的需求。”
你绝对不应该把你的分片放在同一台机器上。它是没用的。分片的好处是可以水平缩放。所以如果你在同一台机器上分片...您正在扼杀您的吞吐量。如果你只有一台机器,你的数据库在没有分片的情况下会更快。
为了避免数据丢失,在使用分片之前,你应该使用: raid (不是0),replicaset,然后分片。
https://stackoverflow.com/questions/23859381
复制相似问题