MongoDB性能分析之db.currentOp
1. 命令简介
db.currentOp顾名思义,就是当前正在执行的操作。信息包括insert/query/update/remove/getmore/command等等。
#查询正在执行任务命令
db.currentOp(true)
2. 命令输出字段解读
#命令输出
> db.currentOp()
{ "inprog" :
[
{
"opid" : 3434473, # 操作的id
"active" : <boolean>, # 是否处于活动状态
"secs_running" : 0, # 操作运行了多少秒
"op" : "<operation>", # 具体的操作行为,包括(insert/query/update/remove/getmore/command)
"ns" : "<database>.<collection>", # 操作的命名空间,如:数据库名.集合名
"query" : { # 具体的操作语句
},
"client" : "<host>:<outgoing>", # 连接的客户端信息
"desc" : "conn57683", # 数据库连接描述
"threadId" : "0x7f04a637b700", # 线程id
"connectionId" : 57683, # 数据库连接id
"locks" : { # 锁的相关信息
"^" : "w",
"^local" : "W",
"^<database>" : "W"
},
"waitingForLock" : false, # 是否在等待并获取锁,
"msg": "<string>"
"numYields" : 0,
"progress" : {
"done" : <number>,
"total" : <number>
}
"lockStats" : {
"timeLockedMicros" : { # 此操作获得以下锁后,把持的微秒时间
"R" : NumberLong(), # 整个mongodb服务实例的全局读锁
"W" : NumberLong(), # 整个mongodb服务实例的全局写锁
"r" : NumberLong(), # 某个数据库实例的读锁
"w" : NumberLong() # 某个数据库实例的写锁
},
"timeAcquiringMicros" : { # 此操作为了获得以下的锁,而耗费等待的微秒时间
"R" : NumberLong(), # 整个mongodb服务实例的全局读锁
"W" : NumberLong(), # 整个mongodb服务实例的全局写锁
"r" : NumberLong(), # 某个数据库实例的读锁
"w" : NumberLong() # 某个数据库实例的写锁
}
}
},
.....
]
}3. 常见操作
MongoDB出现负载异常或业务请求无响应,已经影响到现网业务的情况下,可以通过该命令查询到耗时(关注指标:secs_running)很长的操作,然后将异常操作kill掉,命令如下:
db.killOp(opid)
作者:UStarGao
链接:https://www.starcto.com/mongodb/95.html
来源:STARCTO
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
UCloud云平台推荐
随便看看
- 2021-06-27Nginx应用场景详解
- 2021-02-12MySQL主从同步异常1864
- 2021-09-27MongoDB compact 操作介绍-碎片整理
- 2021-11-19Windows云主机服务器高频配置集锦
- 2024-01-12Linux Screen命令提升运维效率



