(1)查看MongoDB的連接信息
db.serverStatus().connections
結果如下:
{ "current" : 233, "available" : 50967, "totalCreated" : NumberLong(191495) }
各個關鍵詞的含義:
current:當前連接數
available:可用連接數
TotalCreated:累計創建線程數
(2)使用db.currentOP()方法查看進程信息
(2.1)使用db.currentOP()查看活躍進程操作
db.currentOP()
結果如下:
{
"inprog" : [
{
"opid" : 555344731,
"active" : true,
"secs_running" : 4,
"microsecs_running" : NumberLong(4245011),
"op" : "getmore",
"ns" : "local.oplog.$main",
"query" : {
"ts" : {
"$gte" : Timestamp(1587629847, 1)
}
},
"client" : "10.1.70.58:39730",
"desc" : "conn138331",
"threadId" : "0x7e9b25584700",
"connectionId" : 138331,
"waitingForLock" : false,
"numYields" : 0,
"lockStats" : {
"timeLockedMicros" : {
"r" : NumberLong(364),
"w" : NumberLong(0)
},
"timeAcquiringMicros" : {
"r" : NumberLong(16),
"w" : NumberLong(0)
}
}
}
]
}
各個關鍵詞的含義:
opid:進程號
active:是否活躍狀態
secs_running:操作運行秒數
microsecs_running:操作運行微秒數
op:操作類型,包括(insert/update/query/remove/getmore/command)
ns:命名空間
query:查詢語句
client:連接的客戶端信息
desc:描述信息
threadId:線程id
connectionId:連接id
waitingForLock:是否等待獲取鎖
lockStats.timeLockedMicros.r:持有讀鎖的時間(微秒)
lockStats.timeLockedMicros.w:持有寫鎖的時間(微秒)
lockStats.timeAcquiringMicros.r:請求讀鎖的時間(微秒)
lockStats.timeAcquiringMicros.2:請求寫鎖的時間(微秒)
(2.2)使用db.currentOP(<operations>)查看所有進程
可以使用 db.currentOP(<operations>) 查看所有進程,operations取值如下:
參數 | 類型 | 描述 |
operations | boolean or document | -- 定義為true,結果包含空閑的連接和系統后台進程 -- 定義為document with query conditions ,結果返回符合條件的操作 |
(2.2.1)定義為布爾值true,返回全部連接
// 定義為true,返回全部連接,包含active、idle、system db.currentOP({"$all":true}) //或 db.currentOp(true)
(2.2.2)定義為文檔,返回符合條件的連接
例子1:查看等待獲取鎖的會話
db.currentOP({"waitingForLock" : true})
例子2:查看db1數據庫執行時間超過3秒的活動進程
db.currentOP( { "active" : true, "secs_running":{"$gt":3}, "ns":/^db1\./ } )
(3)MongoDB殺死正在執行的進程
db.killOp(opid);
【完】