Node.js Mongodb增加了db.currentOp()问题
我的网站使用mongodb作为聊天应用程序。Mongodb查询超时,因此我检查了db.currentOp()。下面是currentOp()和Mongodb的详细信息 637积极行动 750非活动操作 有关mongodb的其他详细信息:Node.js Mongodb增加了db.currentOp()问题,node.js,mongodb,sharding,Node.js,Mongodb,Sharding,我的网站使用mongodb作为聊天应用程序。Mongodb查询超时,因此我检查了db.currentOp()。下面是currentOp()和Mongodb的详细信息 637积极行动 750非活动操作 有关mongodb的其他详细信息: Mongo db正在使用sharding运行 我有两个数据库 a) 第一个数据库只有两个表 b) 第二个数据库有5个表 我的问题是,为什么当前的.Op()计数突然增加,以及如果当前的.Op()计数增加,我们必须注意的原因是什么。请在这方面帮助我,并为我糟糕的英语道
从有限的信息量中,我可以看出您的查询运行了很长时间:
“secs_running”:231231,
表示231秒。您可能没有足够的资源用于正在运行的查询类型。这可能是因为您没有足够的内存,或者可能是太多的查询正在获取锁。如果您还没有使用MongoDB 2.0.x,那么您可能也希望升级到MongoDB 2.0.x,因为它大大改进了锁定:
我建议您检查mongodb.log文件,看看哪些查询速度慢,然后使用explain确定列上是否有索引,然后添加索引,或者查看如何重新设计架构(如果这看起来是一个更好的解决方案)。secs\u的运行时间是秒,而不是毫秒。因此,作业运行了2天以上。
MongoDB shell version: 1.8.2
> db.currentOp()
{
"inprog" : [
{
"opid" : "msdata1:234234234",
"active" : true,
"lockType" : "read",
"waitingForLock" : false,
"secs_running" : 43534,
"op" : "getmore",
"ns" : "local.oplog.rs",
"query" : {
},
"client_s" : "70.52.078.123:12345",
"desc" : "conn"
},
{
"opid" : "msdata1:2342323423",
"active" : true,
"lockType" : "read",
"waitingForLock" : false,
"secs_running" : 231231,
"op" : "query",
"ns" : "ichat.chatmemberlist",
"query" : {
"count" : "chatmemberlist",
"query" : {
"Mid" : "23423",
"bmid" : "23423"
}
},
"client_s" : "70.52.078.123:12345",
"desc" : "conn"
},
{
"opid" : "msdata1:2342323423",
"active" : false,
"lockType" : "write",
"waitingForLock" : true,
"op" : "update",
"ns" : "?ichat.useravail",
"query" : {
"Mid" : "23423"
},
"client_s" : "70.512.078234.423:12345",
"desc" : "conn"
},
...
...
...