1. 程式人生 > 資料庫 >mongodb監控工具mongostat的使用及命令詳解

mongodb監控工具mongostat的使用及命令詳解

mongostat是mongodb自帶的狀態檢測工具,在命令列下使用,會間隔固定時間獲取mongodb的當前執行狀態,並輸出。

1、mongostat常用命令格式

mongostat --host 192.168.11.11:27017 --username root --password 12345678 --authenticationDatabase admin

mongostat引數說明:

--host :指定IP地址和埠,也可以只寫IP,然後使用--port引數指定埠號
--username: 如果開啟了認證,則需要在其後填寫使用者名稱
--password : 不用多少,肯定是密碼

--authenticationDatabase:若開啟了認證,則需要在此引數後填寫認證庫(注意是認證上述賬號的資料庫)

命令輸出格式

2、各欄位解釋說明:

insert/s : 官方解釋是每秒插入資料庫的物件數量,如果是slave,則數值前有*,則表示複製集操作
query/s : 每秒的查詢操作次數
update/s : 每秒的更新操作次數
delete/s : 每秒的刪除操作次數
getmore/s: 每秒查詢cursor(遊標)時的getmore運算元
command: 每秒執行的命令數,在主從系統中會顯示兩個值(例如 3|0),分表代表 本地|複製命令

注: 一秒內執行的命令數比如批量插入,只認為是一條命令(所以意義應該不大)

dirty: 僅僅針對WiredTiger引擎,官網解釋是髒資料位元組的快取百分比
used:僅僅針對WiredTiger引擎,官網解釋是正在使用中的快取百分比

flushes:

For WiredTiger引擎:指checkpoint的觸發次數在一個輪詢間隔期間
For MMAPv1 引擎:每秒執行fsync將資料寫入硬碟的次數

注:一般都是0,間斷性會是1, 通過計算兩個1之間的間隔時間,可以大致瞭解多長時間flush一次。flush開銷是很大的,如果頻繁的flush,可能就要找找原因了

vsize: 虛擬記憶體使用量,單位MB (這是 在mongostat 最後一次呼叫的總資料)
res: 實體記憶體使用量,單位MB (這是 在mongostat 最後一次呼叫的總資料)

注:這個和你用top看到的一樣,vsize一般不會有大的變動, res會慢慢的上升,如果res經常突然下降,去查查是否有別的程式佔用大量記憶體。

qr: 客戶端等待從MongoDB例項讀資料的佇列長度
qw:客戶端等待從MongoDB例項寫入資料的佇列長度
ar: 執行讀操作的活躍客戶端數量
aw: 執行寫操作的活客戶端數量

注:如果這兩個數值很大,那麼就是DB被堵住了,DB的處理速度不及請求速度。看看是否有開銷很大的慢查詢。如果查詢一切正常,確實是負載很大,就需要加機器了

netIn:MongoDB例項的網路進流量
netOut:MongoDB例項的網路出流量

注:此兩項欄位表名網路頻寬壓力,一般情況下,不會成為瓶頸

conn: 開啟連線的總數,是qr,qw,ar,aw的總和

注:MongoDB為每一個連線建立一個執行緒,執行緒的建立與釋放也會有開銷,所以儘量要適當配置連線數的啟動引數,maxIncomingConnections,阿里工程師建議在5000以下,基本滿足多數場景