MongoDB进程查看方法

背景

用于故障解决

写在前面
摘自https://www.cnblogs.com/lijiaman/p/13358077.html
link

1.查看MongoDB的连接信息

db.serverStatus().connections

{
        "current" : 11,
        "available" : 838849,
        "totalCreated" : 100,
        "active" : 2
}

各个关键词的含义:

current:当前连接数
available:可用连接数
TotalCreated:累计创建线程数

2.使用db.currentOP()方法查看进程信息

注意输出信息较多
db.currentOP() 

各个关键词的含义:

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.1 使用db.currentOP()查看所有进程

可以使用 db.currentOP(<operations>) 查看所有进程,operations取值如下:

参数类型描述
operationsboolean or document– 定义为true,结果包含空闲的连接和系统后台进程 – 定义为document with query conditions ,结果返回符合条件的操作

定义为布尔值true,返回全部连接

// 定义为true,返回全部连接,包含active、idle、system
db.currentOP({"$all":true})
//或
db.currentOp(true)

定义为文档,返回符合条件的连接

1.查看等待获取锁的会话

db.currentOP({"waitingForLock" : true})

{
        "inprog" : [ ],
        "ok" : 1,
        "$clusterTime" : {
                "clusterTime" : Timestamp(1608605514, 1),
                "signature" : {
                        "hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
                        "keyId" : NumberLong(0)
                }
        },
        "operationTime" : Timestamp(1608605514, 1)
}

2.查看db1数据库执行时间超过3秒的活动进程

``
操作xxx集合并且执行时间已超过3s

``

db.currentOP(
  {
      "active" : true,
      "secs_running":{"$gt":3},
      "ns":/^xxx\./
  }
)


{
        "inprog" : [ ],
        "ok" : 1,
        "$clusterTime" : {
                "clusterTime" : Timestamp(1608605584, 1),
                "signature" : {
                        "hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
                        "keyId" : NumberLong(0)
                }
        },
        "operationTime" : Timestamp(1608605584, 1)
}


也可以不指定db
db.currentOp(
   {     "active" : true,     "secs_running" : { "$gt" : 3 }
   }
)

3.MongoDB杀死正在执行的进程

db.killOp(opid);

补充

检查oplog日志时间和大小
rs0:PRIMARY>rs.printReplicationInfo()

查看当前连接
db.getMongo()

查看当前所在库名
db
查看版本
db.version();

本文说明,主要技术内容来自互联网技术大佬的分享,还有一些自我的加工(仅仅起到注释说明的作用)。如有相关疑问,请留言,将确认之后,执行侵权必删

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值