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