博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MongoDB出现CPU飚高,如何强制停止正在执行的操作
阅读量:5298 次
发布时间:2019-06-14

本文共 1616 字,大约阅读时间需要 5 分钟。

  如果发出了一个执行耗时很长的任务给MongoDB服务器,客户端强制终止会导致任务依然在服务器端执行。

  这时MongoDB提供了查询和管理正在执行任务的方式。

// db.currentOp()   获得当前的所有`in progressing`的操作,包括insert/query/update/remove/getmore/command等> db.currentOp(true)

  返回的数据结构如下:

{ "inprog" :           [               {                          "opid" : 3434473,//操作的id                          "active" : 
,//是否处于活动状态 "secs_running" : 0,//操作运行了多少秒 "op" : "
",//具体的操作行为,包括(insert/query/update/remove/getmore/command) "ns" : "
.
",//操作的命名空间,如:数据库名.集合名 "query" : {//具体的操作语句 }, "client" : "
:
",//连接的客户端信息 "desc" : "conn57683",//数据库连接描述 "threadId" : "0x7f04a637b700",//线程id "connectionId" : 57683,//数据库连接id "locks" : {//锁的相关信息 "^" : "w", "^local" : "W", "^
" : "W" }, "waitingForLock" : false,//是否在等待并获取锁, "msg": "
" "numYields" : 0, "progress" : { "done" :
, "total" :
} "lockStats" : { "timeLockedMicros" : {//此操作获得以下锁后,把持的微秒时间 "R" : NumberLong(),//整个mongodb服务实例的全局读锁 "W" : NumberLong(),//整个mongodb服务实例的全局写锁 "r" : NumberLong(),//某个数据库实例的读锁 "w" : NumberLong() //某个数据库实例的写锁 }, "timeAcquiringMicros" : {//此操作为了获得以下的锁,而耗费等待的微秒时间 "R" : NumberLong(),//整个mongodb服务实例的全局读锁 "W" : NumberLong(),//整个mongodb服务实例的全局写锁 "r" : NumberLong(),//某个数据库实例的读锁 "w" : NumberLong()//某个数据库实例的写锁 } } }, ..... ] }

 

找到其中耗时secs_running很长的操作,有可能是异常操作,确认后可
> db.killOp(opid)

转载于:https://www.cnblogs.com/yaohonv/p/mongodb_kill_ops.html

你可能感兴趣的文章
vue.js基础
查看>>
电脑的自带图标的显示
查看>>
[转载] redis 的两种持久化方式及原理
查看>>
关于在Idea 创建Maven项目时,无法在source文件下创建servlet文件问题解决!
查看>>
对 HTTP 304 的理解
查看>>
深入理解css中的margin属性
查看>>
C++ 删除字符串的两种实现方式
查看>>
电容选型
查看>>
ORA-01502: 索引'P_ABCD.PK_WEB_BASE'或这类索引的分区处于不可用状态
查看>>
Spring EL hello world实例
查看>>
百度地图API地理位置和坐标转换
查看>>
MyBatis学习总结(六)——调用存储过程
查看>>
code-代码平台服务器路径
查看>>
离线安装 Visual Studio Express 而不下载整个镜像文件的方法(转载)
查看>>
2017-2018-2偏微分方程复习题解析10
查看>>
Java抽象类和接口的比较
查看>>
iOS UI控件5-UIPickerView
查看>>
php连接postgresql数据库
查看>>
移动应用开发选型:向左还是向右?
查看>>
开发进度一
查看>>