mongodb的監控與效能優化

2021-08-26 00:26:14 字數 2106 閱讀 8036

mongodb可以通過profile來監控資料,進行優化。

檢視當前是否開啟profile功能用命令

db.getprofilinglevel()  返回level等級,值為0|1|2,分別代表意思:0代表關閉,1代表記錄慢命令,2代表全部

開始profile功能為

db.setprofilinglevel(level);  #level等級,值同上

level為1的時候,慢命令預設值為100ms,更改為db.setprofilinglevel(level,slowms)如db.setprofilinglevel(1,50)這樣就更改為50毫秒

通過db.system.profile.find() 檢視當前的監控日誌。 如:

> db.system.profile.find(})

nreturned:101 bytes:11006 640ms", "millis" : 640 }

} nreturned:101 bytes:11130 647ms", "millis" : 647 }

這裡值的含義是

ts:命令執行時間

info:命令的內容

query:代表查詢

order.order: 代表查詢的庫與集合

reslen:返回的結果集大小,byte數

nscanned:掃瞄記錄數量

nquery:後面是查詢條件

nreturned:返回記錄數及用時

millis:所花時間

如果發現時間比較長,那麼就需要作優化。

比如nscanned數很大,或者接近記錄總數,那麼可能沒有用到索引查詢。

reslen很大,有可能返回沒必要的字段。

nreturned很大,那麼有可能查詢的時候沒有加限制。

mongo可以通過db.serverstatus()檢視mongod的執行狀態

> db.serverstatus()

, "activeclients" :

}, "mem" : ,

"connections" : ,

"extra_info" : ,

"indexcounters" :

}, "backgroundflushing" : ,

"cursors" : ,

"network" : ,

"opcounters" : ,

"asserts" : ,

"writebacksqueued" : false,

"ok" : 1

}

db.stats()檢視某乙個庫的原先狀況

> db.stats()

檢視集合記錄用

> db.order.stats()

, "ok" : 1

}

mongostat命令檢視執行中的實時統計,表示每秒實時執行的次數

mongodb還提供了乙個機遇http的監控頁面,可以訪問http://ip:28017來檢視,這個頁面基本上是對上面的這些命令做了一下綜合,所以這裡不細述了。

根據上面這些監控手段,找到問題後,我們可以進行優化

上面找到了某一下慢的命令,現在我們可以通過執行計畫跟蹤一下,如

> db.order.find( }).explain()

}

對於這樣的,我們可以建立索引

可以通過  db.collection.ensureindex() 來建立索引,1為公升序,-1為降序,在已經有多資料的情況下,可用後台來執行,語句db.collection.ensureindex( , ) 

獲取索引用db.collection.getindexes() 檢視

這裡我們建立乙個user.uid的索引 >db.order.ensureindex()

建立後重新執行

db.order.find( }).explain()

}

掃瞄數量減少,速度提高。mongodb的索引設計類似與關聯式資料庫,按索引查詢加快書讀,但是多了會對寫有壓力,所以這裡就不再敘述了。

2.其他優化可以用hint強制索引查詢,返回只是需要的資料,對資料分頁等。

mongodb的監控與效能優化

mongodb可以通過profile來監控資料,進行優化。檢視當前是否開啟profile功能用命令 db.getprofilinglevel 返回level等級,值為0 1 2,分別代表意思 0代表關閉,1代表記錄慢命令,2代表全部 開始profile功能為 db.setprofilinglevel...

mongodb的監控與效能優化

mongodb的監控與效能優化 mongodb可以通過profile來監控資料,進行優化。www.2cto.com 檢視當前是否開啟profile功能用命令 db.getprofilinglevel 返回level等級,值為0 1 2,分別代表意思 0代表關閉,1代表記錄慢命令,2代表全部 開始pr...

mongodb 效能監控

一 使用mongostat.exe cd c program files mongodb server 3.0 bin mongostat.exe mongostat n 10 c test.txt 列印10行到文字檔案,方便檢視 mongo.exe 執行mongodb命令 二 伺服器執行狀態 db...