以下是用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
,如需转载请自行联系原作者