(转)MongoDB 实现currentOp定时捕获

Posted 凌风阁 QQ:413708116

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(转)MongoDB 实现currentOp定时捕获相关的知识,希望对你有一定的参考价值。

问题描述:

当分析生产环境发生的性能问题时,常常因为没有实时的依据而无从下手。那么笔者通过捕获db.currentOp()到文件,并作为定时任务,可供后续分析。

解决方法:
 
步骤一:Shell脚本记录db.currentOp()

1. 创建文件夹

mkdir currentOp

2.创建currentOp.sh

#!/bin/sh 
MONGO=/usr/bin/mongo
DATE=$(date +%Y%m%d%H%M) 
CURRENTOPFILE=/home/xucy/currentOp/$DATE 
$MONGO admin -uxucy –pPassw0rd --eval "rs.slaveOk();printjson(db.currentOp());" > $CURRENTOPFILE 2>&1 
LOCATION=/home/xucy/currentOp/
find $LOCATION -mtime +1 -type f |xargs rm -f 
 
步骤二:加入Crontab定时任务

crontab –e 
*/5 * * * * /bin/sh /home/xucy/currentOp.sh > /dev/null 2>&1

以上是关于(转)MongoDB 实现currentOp定时捕获的主要内容,如果未能解决你的问题,请参考以下文章

MongoDB出现CPU飚高,如何强制停止正在执行的操作

有用的 Mongo命令行 db.currentOp() db.collection.find().explain() - 摘自网络

MongoDBMongoDB管理:使用killOp干掉Long Running Operation

mongodb 常用查询语句

mongodb系统知识(11)

MongoDB kill 慢线程