几天前我开始看到一个问题,进入 mongo 的数据不再在集群中传播。即使分片键没有改变,除了非常少量的数据之外的所有内容都将进入数据库的主分片。分片键是另一个文档字段的 MD5 和,类似于 mongo v2.4 中的散列分片键,因此应该有足够多的可变性来跨三个分片喷洒文档。我们目前正在运行 2.0.5。
我在配置数据库中找不到任何可以表明为什么文档只发送到主数据库的内容。我们每天都会创建一个新集合,并向其中写入大约 4000 万份文档。我已经验证它们是分片的,并且平衡器正在缓慢地从主节点移动块,但速度不足以跟上写入速率。
每个写入 mongo 的服务器都有自己的 mongos 实例,并且有几个 mongos 实例用于读取数据的进程。我们运行的总数有点超过 25。mongos 实例的数量会导致这个问题吗?似乎我需要手动定义分片的范围,但这对我来说似乎有问题。我想保持自动分片到位。这些信息驻留在配置数据库中的什么位置?是否可以查看 mongos 实例用于自动分片的范围是多少?