MongoDB getmore在集合中的速度非常慢
我正在尝试调试MongoDB实例上的高CPU问题。我们有两个shard r3.0大型AWS实例。与ops计数相比,页面错误不多 系统配置文件显示了大量getmore条目,如下所示。请帮助我找出导致getmore速度非常慢的原因MongoDB getmore在集合中的速度非常慢,mongodb,mongodb-query,Mongodb,Mongodb Query,我正在尝试调试MongoDB实例上的高CPU问题。我们有两个shard r3.0大型AWS实例。与ops计数相比,页面错误不多 系统配置文件显示了大量getmore条目,如下所示。请帮助我找出导致getmore速度非常慢的原因 { "op" : "getmore", "ns" : "mydb.mycollection", "cursorid" : 74493486271, "ntoreturn" : 0, "
{
"op" : "getmore",
"ns" : "mydb.mycollection",
"cursorid" : 74493486271,
"ntoreturn" : 0,
"keyUpdates" : 0,
"numYield" : 7,
"lockStats" : {
"timeLockedMicros" : {
"r" : NumberLong(16140),
"w" : NumberLong(0)
},
"timeAcquiringMicros" : {
"r" : NumberLong(6458801),
"w" : NumberLong(294321)
}
},
"nreturned" : 120,
"responseLength" : 13100,
"millis" : 6304,
"execStats" : {
},
"ts" : ISODate("2015-06-16T14:20:39.886Z"),
"client" : "1.5.1.3",
"allUsers" : [ ],
"user" : ""
}
回答我自己的问题可能会帮助其他人
- 当CPU处于高位时启用更多日志记录
,在did重置为logLevel:0(默认值)后db.adminCommand({setParameter:1,logLevel:1})
- 然后日志显示了一个0毫秒的聚合查询,但紧接着,getmore条目显示了5到6秒
- 聚合查询具有
,初始批大小为零。因此,查询返回得很快。但当应用程序开始通过游标进行迭代时,getmore被记录下来,并且该条目没有任何查询详细信息 修复聚合查询$match以使用索引解决了此问题游标:{batchSize:0}