天天看點

Mongodb慢查詢處理-01

收到線上資料庫cpu告警資訊,檢視發現資料庫監控發現Mongodb primary節點 cpu使用率接近90%。用到指令db.currentOp()和db.killOp()

日志分析:全表掃描,使用索引過濾文檔數0,全表掃描1146174個文檔,執行時間720ms,過濾日志發現次數3000多次。

planSummary: COLLSCAN keysExamined:0 docsExamined:1146174 cursorExhausted:1 numYields:8954 nreturned:1 reslen:1762 locks:{ Global: { acquireCount: { r: 17910 } }, Database: { acquireCount: { r: 8955 } }, Collection: { acquireCount: { r: 8955 } } } protocol:op_msg 720ms

Mongodb慢查詢處理-01

定位到慢查詢操作的opid

Mongodb慢查詢處理-01

Mongodb 4.2版本之前建立索引需要 添加background指定為true,如果索引v2版本指定"background" : 1,預設為false前台索引建立會阻塞資料庫上的所有其他操作,我們使用的版本為3.6。

注意:這兩個指令是不一樣的

檢視監控,已恢複正常
Mongodb慢查詢處理-01
和業務進行溝通新上線了功能,集合沒有添加索引,通路量上來導緻全表掃描。 db.currentOp({"$ownOps" :true}) //檢視目前使用者的操作資訊

繼續閱讀