限制MongoDB中某个分片上的块数

问题描述

我正在运行具有5个分片的MongoDB。我的数据库中有很多馆藏,其中只有少数馆藏是分片的,这意味着未分馆藏的收藏品在主要馆藏中。

是否有任何方法可以让MongoDB知道应该以某种方式分配分片集合的一部分,使得主分片上的分片少于其他分片上的分片。这将使主数据库有更多空间来处理对非分片集合的请求。当前,它总是比其他分片更忙(cpu,磁盘usgae)

当前情况:

Shard shard1 contains 19.98% data,20.06% docs in cluster,avg obj size on shard : 123KiB
Shard shard2 contains 19.89% data,19.91% docs in cluster,avg obj size on shard : 124KiB
Shard shard3 contains 20.00% data,20.00% docs in cluster,avg obj size on shard : 124KiB
Shard shard4 contains 20.07% data,19.95% docs in cluster,avg obj size on shard : 125KiB
Shard shard5 contains 20.04% data,20.05% docs in cluster,avg obj size on shard : 124KiB

目标情况(分片1是主要的):

Shard shard1 contains 4% data,4% docs in cluster,avg obj size on shard : 123KiB
Shard shard2 contains 24% data,24% docs in cluster,avg obj size on shard : 124KiB
Shard shard3 contains 24% data,avg obj size on shard : 124KiB
Shard shard4 contains 24% data,avg obj size on shard : 125KiB
Shard shard5 contains 24% data,avg obj size on shard : 124KiB

注意:我无法对所有集合进行分片,因为在它们上运行的查询无法正常工作(https://docs.mongodb.com/manual/core/sharded-cluster-requirements/#sharding-operational-restrictions),并且我无权更改这些集合。 (出于某些原因,我将不参加)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)