锁定时间中的MongoDB CurrentOp数似乎不正确

时间:2014-02-06 23:42:42

标签: mongodb

我正在检查MongoDB实例上长时间运行的查询的状态。该操作已运行1514秒。我正在尝试理解此输出,但数字secs_runningtimelockedMicrostimeAcquiringMicros非常令人困惑。

documentation开始,secs_running是自操作开始以来经过的时间,在这种情况下为1514秒。但是timeAcquiringMicros似乎表明操作一直在等待整个1514秒的读锁定,这显然是不正确的,因为它到目前为止已经产生了196762条记录并且根据timeLockedMicros锁定了825秒。

这是MongoDB中currentOp()函数的错误吗?我正在使用2.4.3版本

{
"inprog" : [
    {
        "opid" : 1439744,
        "active" : true,
        "secs_running" : 1514,
        "op" : "getmore",
        "ns" : <namespace>,
        "query" : <query>,
        "client" : "127.0.0.1:50735",
        "desc" : "conn485",
        "threadId" : "0x14f004000",
        "connectionId" : 485,
        "waitingForLock" : false,
        "numYields" : 196762,
        "lockStats" : {
            "timeLockedMicros" : {
                "r" : NumberLong(825186242),
                "w" : NumberLong(0)
            },
            "timeAcquiringMicros" : {
                "r" : NumberLong(1514482551),
                "w" : NumberLong(0)
            }
        }
    }
]
}

1 个答案:

答案 0 :(得分:0)

是的,您看到的问题是一个错误。它目前在开发分支中标记为已关闭并已修复。您可以在测试实例上按installing 2.5.5进行测试,并在需要时自行查看。

https://jira.mongodb.org/browse/SERVER-10361