栏目头部广告

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云平台推荐


UCloud新用户专属注册连接

UCloud CDN超值特惠专场

UCloud全球云主机(UHost/VPS)大促页面

UCloud快杰云主机大促页面

文章页广告

随便看看

栏目底部广告
`