(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(
可以使用 db.currentOP(
参数 | 类型 | 描述 |
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);
【完】