MongoDB进程查看方法

(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);

 

【完】

posted @ 2020-07-21 23:20  gegeman  阅读(5034)  评论(0编辑  收藏  举报