時間:2024-02-09 10:40作者:下載吧人氣:17
前面的話
本文將詳細介紹MongoDB數據庫索引構建情況分析
概述
創建索引可以加快索引相關的查詢,但是會增加磁盤空間的消耗,降低寫入性能。這時,就需要評判當前索引的構建情況是否合理。有4種方法可以使用
1、mongostat工具
2、profile集合介紹
3、日志
4、explain分析
mongostat
mongostat是mongodb自帶的狀態檢測工具,在命令行下使用。它會間隔固定時間獲取mongodb的當前運行狀態,并輸出。如果發現數據庫突然變慢或者有其他問題的話,首先就要考慮采用mongostat來查看mongo的狀態
mongostat是查看mongodb運行狀態的程序,使用方式如下
mongostat -h ip:port
【字段說明】
insert/s : 每秒插入數據庫的對象數量,如果是slave,則數值前有*,則表示復制集操作 query/s : 每秒的查詢操作次數 update/s : 每秒的更新操作次數 delete/s : 每秒的刪除操作次數 getmore/s: 每秒查詢cursor(游標)時的getmore操作數 command: 每秒執行的命令數,在主從系統中會顯示兩個值(例如 3|0),分別代表 本地|復制 命令 dirty: 臟數據字節的緩存百分比 used:正在使用中的緩存百分比 flushes:checkpoint的觸發次數在一個輪詢間隔期間。一般都是0,間斷性會是1, 通過計算兩個1之間的間隔時間,可以大致了解多長時間flush一次。flush開銷是很大的,如果頻繁的flush,可能就要找找原因了 vsize: 虛擬內存使用量,單位MB res: 物理內存使用量,單位MB。 res會慢慢的上升,如果res經常突然下降,要查看下是否有別的程序狂吃內存 qr: 客戶端等待從MongoDB實例讀數據的隊列長度 qw:客戶端等待從MongoDB實例寫入數據的隊列長度 ar: 執行讀操作的活躍客戶端數量 aw: 執行寫操作的活客戶端數量。如果ar或aw數值很大,那么就是DB被堵住了,DB的處理速度不及請求速度。查看是否有開銷很大的慢查詢。如果查詢一切正常,確實是負載很大,就需要加機器了 netIn:MongoDB實例的網絡進流量 netOut:MongoDB實例的網絡出流量 conn: 打開連接的總數,是qr,qw,ar,aw的總和 time:當前時間
網友評論