mongoDB之監控工具mongostat

 

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/
相關文章
相關標籤/搜索