有没有办法在MongoDB 3.x中获取每个集合的锁统计信息?
中没有此信息 db.serverStatus()
理想情况下,我也会保留收藏品名称。
答案 0 :(得分:2)
db.currentOp()命令可以让您更深入地了解由于当前正在运行的操作而导致的锁定。
以下是命令的示例输出:
查询:
{
"locks": {"^myDB": "R"},
"ns": "myDB.bar",
"op": "query",
"opid": 1349152,
"query": {"test": 1},
"secs_running": 15,
"waitingForLock": true
}
更新时间:
{
"locks": {
"^": "w",
"^local": "W",
"^myDB": "W"
},
"ns": "myDB.bar",
"op": "update",
"opid": 1344808,
"query": {},
"secs_running": 53,
"waitingForLock": false
}
我还没有测试过它,但是这样的东西应该得到一个集合的锁:
db.currentOp(
{
$and: [
{"waitingForLock" : true},
{"ns" : "mydb.mycoll"}
]
}
)
答案 1 :(得分:0)
试着看看:
"locks" : {
"Global" : {
"acquireCount" : {
"r" : NumberLong(5776),
"w" : NumberLong(14),
"W" : NumberLong(4)
}
},
"Database" : {
"acquireCount" : {
"r" : NumberLong(2872),
"w" : NumberLong(1),
"R" : NumberLong(7),
"W" : NumberLong(13)
}
},
"Collection" : { <-------------- see collection locks
"acquireCount" : {
"r" : NumberLong(2735)
}
},
有关更多信息,请访问MongoDB网站上的Collection locks