mongodb 狀態監控命令詳解


mongostat是mongdb自帶的狀態檢測工具,在命令行下使用。它會間隔固定時間獲取mongodb的當前運行狀態,並輸出。如果你發現數據庫突然變慢或者有其他問題的話,你第一手的操作就考慮采用mongostat來查看mongo的狀態。

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是mongdb自帶的狀態檢測工具,在命令行下使用。它會間隔固定時間獲取mongodb的當前運行狀態,並輸出。如果你發現數據庫突然變慢或者有其他
在下面的例子中,mongostat返回的數據每5分鍾一個小時(12次)。mongostat收集數據的mongod實例上運行的本地主機接口端口27017。以下兩種調用產生相同的行為。
mongostat -rowcount 12 300
mongostat -N 12 300
在許多情況下,使用 -discover將幫助整組機器的狀態,提供更完整的快照。如果Mongos的過程中,連接到一個片式集群上運行在本地機器上的端口27017,你可以使用下面的形式從群集中的所有成員返回統計:

mongostat -discover

以上參考文檔: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文件中,然后去查看這個文件,辦法是曲折了一些哈哈。

E:\mongodb-win32-x86_64-2.2.1\bin\mongostat -n 2 > E:\test.txt 

 打印2行結果到E盤的跟目錄下的test.txt中。

參考文檔:http://cn.docs.mongodb.org/manual/reference/mongostat/ 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM