mongodb的監控與效能優化

2021-06-21 04:30:43 字數 3700 閱讀 5457

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() 檢視當前的監控日誌。

如: view source

print?

1> db.system.profile.find(})

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

3} 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的執行狀態

view source

print?

01> db.serverstatus()

02,

18"activeclients":

23},

24"mem": ,

31"connections": ,

35"extra_info": ,

40"indexcounters":

48},

49"backgroundflushing": ,

56"cursors": ,

61"network": ,

66"opcounters": ,

74"asserts": ,

81"writebacksqueued":false,

82"ok": 1

83}

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

view source

print?

01> db.stats()

02

檢視集合記錄用

view source

print?

01> db.order.stats()

02,

17"ok": 1

18}

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

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

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

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

view source

print?

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

02

15}

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

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

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

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

建立後重新執行

view source

print?

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

02

20}

掃瞄數量減少,速度提高。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...