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-08-08UCloud ULB负载均衡https解决方案
- 2023-05-07如何快速部署ChatGPT应用并绕开限制
- 2021-04-10MySQL数据库页损坏修复方案
- 2022-05-10Linux内网带宽压测工具-iperf3
- 2021-09-09开源Wazuh安全平台容器化部署