mongodb update operation on shards very slow

mongodb update operation on shards very slow

I have a little cluster which consists of 3 shards, and every shard is a
replica set of 2 real nodes and 1 ARBITER. sharding is enabled on a
collection, let's say coll_words, key is title.
other info:
rs.slaveOk() is on and balancer is off.
the primary shard of this collection contains around 13M documents, the
other 2 secondary ones each contains around 5M.
average ping between shards is below 1 millis.
The typical find() response through a mongos like this (update() is slow
too):
mongos> db.coll_words.find({title:'‚è‚̃tƒ‰ƒ"ƒX'}).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" : [
[
"‚è‚̃tƒ‰ƒ"ƒX",
"‚è‚̃tƒ‰ƒ"ƒX"
]
]
},
"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" : [
[
"‚è‚̃tƒ‰ƒ"ƒX",
"‚è‚̃tƒ‰ƒ"ƒX"
]
]
},
"millis" : 51
}
>
It's really confusing to me, why this finally costs "millis" : 51?
Am I missing something? Any pointers would be great.