mongostat是mongdb自帶的狀態檢測工具,在命令行下使用。它會間隔固定時間獲取mongodb的當前運行狀態,並輸出。若是你發現數據庫忽然變慢或者有其餘問題的話,你第一手的操做就考慮採用mongostat來查看mongo的狀態。mongodb
mongostat命令格式,固然也能夠加參數:數據庫
在第一個例子中,mongostat將返回數據的每一秒,持續20秒。 mongostat收集數據的mongod實例上運行的本地主機接口端口27017。如下全部調用產生相同的行爲:
mongostat -rowcount 20 1
mongostat -rowcount 20
mongostat -N 20 1
mongostat -N 20
在下面的例子中,mongostat返回的數據每5分鐘(300秒),只要在程序運行。 mongostat收集數據的mongod實例上運行的本地主機接口端口27017。如下兩種調用產生相同的行爲。
mongostat - rowcount 0 300
mongostat -N 0 300
mongostat 300
在下面的例子中,mongostat返回的數據每5分鐘一個小時(12次)。mongostat收集數據的mongod實例上運行的本地主機接口端口27017。如下兩種調用產生相同的行爲。
mongostat -rowcount 12 300
mongostat -N 12 300
在許多狀況下,使用 -discover將幫助整組機器的狀態,提供更完整的快照。若是Mongos的過程當中,鏈接到一個片式集羣上運行在本地機器上的端口27017,你可使用下面的形式從羣集中的全部成員返回統計:
mongostat -discoverwindows
以上參考文檔:http://cn.docs.mongodb.org/manual/reference/mongostat/ 服務器
主要詳細說明一下各列的意義(也能夠參考./mongostat --help)網絡
insert: 一秒內的插入數
query : 一秒內的查詢數
update: 一秒內的更新數
delete: 一秒內的刪除數
10條簡單的查詢可能比一條複雜的查詢速度還快, 因此數值的大小,意義並不大。
但至少能夠知道,如今是否在處理查詢,是否在插入。
若是是slave,數值前每每有一個*, 表明是replicate操做
getmore: 查詢時遊標(cursor)的getmore操做
用處不大
www.2cto.com
command: 一秒內執行的命令數
好比批量插入,只認爲是一條命令。 意義不大。
若是是slave,會顯示兩個值, local|replicated,經過這兩個數值的比較,或許能夠看出點問題。
flushes: 一秒內flush的次數
通常都是0,或者1,經過計算兩個1之間的間隔時間,能夠大體瞭解多長時間flush一次。
flush開銷是很大的,若是頻繁的flush,可能就要找找緣由了。
mapped:
vsize:
res:
這個和你用top看到的同樣,mapped, vsize通常不會有大的變更, res會慢慢的上升,若是res常常忽然降低,去查查是否有別的程序狂吃內存。
faults:
別被這個名字嚇着,大壓力下這個數值每每不爲0。若是常常不爲0,那就該加內存了。
locked:
MongoDB就一把讀寫鎖,這裏指的是寫鎖所住的時間百分比。這個數值過大(常常超過10%),那就是出情況了。
idx miss:
很是重要的參數, 正常狀況下,全部的查詢都應該經過索引,也就是idx miss爲0。若是這裏數值較大,是否是缺乏索引。
qr|qw: queue lengths for clients waiting (read|write)
ar|aw: active clients (read|write)
若是這兩個數值很大,那麼就是DB被堵住了,DB的處理速度不及請求速度。
看看是否有開銷很大的慢查詢。若是查詢一切正常,確實是負載很大,就須要加機器了。
netIn: network traffic in - bits
netOut: network traffic out - bits
網絡帶寬壓力,通常MongoDB,網絡不會成爲瓶頸
conn: number of open connections
MongoDB爲每個鏈接建立一個線程,線程的建立和釋放也是有開銷的。儘可能不要讓這個數值很大。
repl: 服務器當前狀態
M - master
SEC - secondary
REC - recovering
UNK - unknown
SLV - slave
time: 當前時間
若是在windows下的cmd窗口中執行mongostat命令時,可能因爲窗口太窄,監控數據排列較亂而阻礙視覺的狀況,你們能夠把結果輸出到一個txt文件中,而後去查看這個文件,辦法是曲折了一些哈哈。app
E:\mongodb-win32-x86_64-2.2.1\bin\mongostat -n 2 > E:\test.txt 工具
打印2行結果到E盤的跟目錄下的test.txt中。post
參考文檔:http://cn.docs.mongodb.org/manual/reference/mongostat/