【发布时间】:2015-04-27 16:14:18
【问题描述】:
我有一个 mongo 分片集群,有 3 个分片,对这个数据库的所有操作都是 find 或 update(带有 upsert=true 选项)。这意味着收集的数量会不断增加,但是当收集的数量(db.mycollection.find().count())增加到 80000000 或更大时,我发现有时它会增加,但有时会减少,为什么?我保证不会对此数据库执行任何删除操作。
我用db.myCollection.getShardDistribution()来展示分布,shard2只有29%,低于平均水平。
这里是计数的趋势:
mongos> db.myCollection.find().count()
84374837
mongos> db.myCollection.find().count()
84375036
mongos> db.myCollection.find().count()
84409281
mongos> db.myCollection.find().count()
84408921
mongos> db.myCollection.find().count()
84407190
mongos> db.myCollection.find().count()
84407173
mongos> db.myCollection.find().count()
84407013
mongos> db.myCollection.find().count()
84406911
【问题讨论】:
-
Totals data : 53.89GiB docs : 84399594 chunks : 1732 Shard shard1 contains 35.44% data, 35.78% docs in cluster, avg obj size on shard : 679B Shard shard2 contains 29.7% data, 29.51% docs in cluster, avg obj size on shard : 690B Shard shard3 contains 34.84% data, 34.69% docs in cluster, avg obj size on shard : 688B -
我用
db.myCollection.getShardDistribution()显示分布,shard1:35%, shard2:29%, shard3:36%,有问题吗?