以下是用JavaScript脚本写的循环kill操作,它可以强制kill MongoDB数据库慢查询。
很多时候,有些慢查询导致MongoDB压力很大, 花了点时间写了个脚本循环kill些慢查询操作。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
var j = 0;
var _DEF_TIME = 10; //设置慢查询时间
for ( var i in db.currentOP().inprog) {
var op = "" ;
var opid;
var memProg = {}
if ( typeof (undefined) == typeof (db.currentOP().inprog[i])) {
continue ;
}
memProg = db.currentOP().inprog[i];
op = memProg.op;
opid = memProg.opid;
print(i);
if (op == "query" ) {
if (memProg.hasOwnProperty(‘secs_running’)) {
var useTime = memProg.secs_running;
if (useTime >= _DEF_TIME) {
db.killOp(opid);
j++;
print( "killed " + j + " Query Operation!" );
}
}
}
} |
运行方式:
1
|
. /mongo localhost:30000 < . /Self-Script/killSlow .js
|
本文转自UltraSQL51CTO博客,原文链接:http://blog.51cto.com/ultrasql/1706487 ,如需转载请自行联系原作者