mongodb对分片的更新操作非常慢

时间:2013-09-03 13:13:50

标签: mongodb pymongo sharding

我有一个由3个分片组成的小集群,每个分片都是2个真实节点和1个ARBITER的副本集。在集合上启用了分片,比方说coll_words,密钥为title

其他信息:

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

  • 此集合的主要分片包含大约13M个文档,其他2个次要分别包含大约5M个文档。

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

通过像这样的mongos(find()也很慢)的典型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的ping约为3 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
        },

0 个答案:

没有答案