天天看點

JS腳本強制kill掉MongoDB慢查詢

以下是用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

<code>var</code> <code>j = 0;   </code>

<code>var</code> <code>_DEF_TIME = 10; </code><code>//設定慢查詢時間    </code>

<code>for</code> <code>(</code><code>var</code> <code>i </code><code>in</code> <code>db.currentOP().inprog) {    </code>

<code>    </code><code>var</code> <code>op = </code><code>""</code><code>;    </code>

<code>    </code><code>var</code> <code>opid;    </code>

<code>    </code><code>var</code> <code>memProg = {}    </code>

<code>    </code><code>if</code> <code>(</code><code>typeof</code><code>(undefined) == </code><code>typeof</code><code>(db.currentOP().inprog[i])) {    </code>

<code>        </code><code>continue</code><code>;    </code>

<code>    </code><code>}    </code>

<code>    </code><code>memProg = db.currentOP().inprog[i];    </code>

<code>    </code><code>op = memProg.op;    </code>

<code>    </code><code>opid = memProg.opid;    </code>

<code>    </code><code>print(i);    </code>

<code>    </code><code>if</code> <code>(op == </code><code>"query"</code><code>) {    </code>

<code>        </code><code>if</code> <code>(memProg.hasOwnProperty(‘secs_running’)) {    </code>

<code>            </code><code>var</code> <code>useTime = memProg.secs_running;    </code>

<code>            </code><code>if</code> <code>(useTime &gt;= _DEF_TIME) {    </code>

<code>                </code><code>db.killOp(opid);    </code>

<code>                </code><code>j++;    </code>

<code>                </code><code>print(</code><code>"killed "</code> <code>+ j + </code><code>" Query Operation!"</code><code>);    </code>

<code>            </code><code>}    </code>

<code>        </code><code>}    </code>

<code>}</code>

運作方式:

<code>.</code><code>/mongo</code> <code>localhost:30000 &lt; .</code><code>/Self-Script/killSlow</code><code>.js</code>

<code></code>

本文轉自UltraSQL51CTO部落格,原文連結:http://blog.51cto.com/ultrasql/1706487 ,如需轉載請自行聯系原作者

上一篇: JS