1

我有一个由 3 个分片组成的小集群,每个分片都是 2 个真实节点和 1 个仲裁者的副本集。对集合启用分片,比如说coll_words,键是title.

其他信息:

  • rs.slaveOk()开启和 balancer关闭。

  • 该集合的主分片包含大约 13M 文档,另外 2 个辅助分片每个包含大约 5M。

  • 分片之间的平均 ping 低于 1 毫秒。从 mongos 到 shard 的 ping3 Millis'connPoolStats'命令有关。

find()通过像这样的 mongos的典型响应(update()也很慢):

mongos> db.coll_words.find({title:'りのフランス'}).explain()
{
    "clusteredType" : "ParallelSort",
    "shards" : {
        "rsName/IP1:27017,IP2:27017" : [
            {
                "cursor" : "BtreeCursor title_1",
                "isMultiKey" : false,
                "n" : 1,
                "nscannedObjects" : 1,
                "nscanned" : 1,
                "nscannedObjectsAllPlans" : 1,
                "nscannedAllPlans" : 1,
                "scanAndOrder" : false,
                "indexOnly" : false,
                "nYields" : 0,
                "nChunkSkips" : 0,
                "millis" : 0,
                "indexBounds" : {
                    "title" : [
                        [
                            "りのフランス",
                            "りのフランス"
                        ]
                    ]
                },
                "server" : "SERVER:27017"
            }
        ]
    },
    "cursor" : "BtreeCursor title_1",
    "n" : 1,
    "nChunkSkips" : 0,
    "nYields" : 0,
    "nscanned" : 1,
    "nscannedAllPlans" : 1,
    "nscannedObjects" : 1,
    "nscannedObjectsAllPlans" : 1,
    "millisShardTotal" : 0,
    "millisShardAvg" : 0,
    "numQueries" : 1,
    "numShards" : 1,
    "indexBounds" : {
        "title" : [
            [
                "りのフランス",
                "りのフランス"
            ]
        ]
    },
    "millis" : 51
}

>

我真的很困惑,为什么这最终会花费"millis" : 51

我错过了什么吗?任何指针都会很棒。

更新:

从 mongos 到 shard 的 ping3 Millis'connPoolStats'命令有关。

"replicaSets" : {
        "rs0" : {
            "hosts" : [
                {
                    "addr" : "IP1:27017",
                    "ok" : true,
                    "ismaster" : false,
                    "hidden" : false,
                    "secondary" : true,
                    "pingTimeMillis" : 3
                },
                {
                    "addr" : "IP2:27017",
                    "ok" : true,
                    "ismaster" : true,
                    "hidden" : false,
                    "secondary" : false,
                    "pingTimeMillis" : 2
                }
            ],
            "master" : 1,
            "nextSlave" : 0
        },
4

0 回答 0