mongodb的監控與效能優化

2021-12-29 19:45:34 字數 2260 閱讀 5946

mongodb的監控與效能優化

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

www.2cto.com  

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

如:  www.2cto.com   1

> db.system.profile.find(})

2 nreturned: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的執行狀態 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" : 183}

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

01> db.stats()

02檢視集合記錄用

www.2cto.com   01

> db.order.stats()02,

17    "ok" : 118}

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

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

二.mongodb的優化

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

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

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

0215

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

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

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

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

建立後重新執行 01

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

0220

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

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

mongodb的監控與效能優化

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

mongodb的監控與效能優化

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

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...