時間:2024-02-21 13:55作者:下載吧人氣:35
MongoDB 是一個基于分布式文件存儲的數據庫。由 C++ 語言編寫。旨在為 WEB 應用提供可擴展的高性能數據存儲解決方案。
MongoDB 是一個介于關系數據庫和非關系數據庫之間的產品,是非關系數據庫當中功能最豐富,最像關系數據庫的。
Mongodb如今越來越火,要做好對mongodb的監控就需要從它的安裝配置,到簡單的command語句使用,再到對它運行機制以及狀態獲取方法的掌握。
mongodb有三種基本的狀態獲取方式:
1.mongostat
2.開啟28017的監聽端口,curl http://127.0.0.1:28017/_status
3.進入mongo執行db.serverStatus命令
我用的是第三種方法:
echo “db.serverStatus()” |/usr/local/mongodb/bin/mongo 192.168.1.123:27017/foo –quiet
{
“host” : “TENCENT64.site”, –server的hostname
“version” : “2.0.5”, –mongo版本
“process” : “mongod”, –進程名
“uptime” : 1238418, –啟動時間(單位:S)
“uptimeEstimate” : 1230730, –基于MongoDB內部粗粒度定時器的運行時間
“localTime” : ISODate(“2012-09-14T09:09:52.657Z”), –server的本地時間
“globalLock” : {
“totalTime” : 1238418105923, –全局鎖創建的時間(單位:ms 微秒)
“lockTime” : 75055831911, –全局鎖保持的時間(單位:ms 微秒)
“ratio” : 0.06060621332329477, –lockTime和totalTime的比
“currentQueue” : {
“total” : 0, –等待全局鎖的隊列中操作數目
“readers” : 0, –等待讀鎖的隊列中操作數目
“writers” : 0 –等待寫鎖的隊列中操作數目
},
“activeClients” : {
“total” : 1, –連接到server的當前活動client數目
“readers” : 1, –執行讀操作的當前活動client數目
“writers” : 0 –執行寫操作的當前活動client數目
}
},
“mem” : {
“bits” : 64, –64位機器
“resident” : 18363, –占用物理內存量。
“virtual” : 478810, –占用的虛擬內存量
“supported” : true, –是否支持擴展內存
“mapped” : 233311, –映射到內存的數據文件大小,很接近于你的所有數據庫大小。
“mappedWithJournal” : 466622,
“note” : “virtual minus mapped is large. could indicate a memory leak”
},
“connections” : {
“current” : 737, –當前活動連接量。連接到server的當前活躍連接數目
“available” : 82 –剩余空閑連接量。剩余的可用連接數目
},
“extra_info” : {
“note” : “fields vary by platform”,
“heap_usage_bytes” : 3838448, –此過程中所有的堆字節數目。僅適用于Linux
“page_faults” : 31058356 –此過程中訪問內存中頁面失敗的總次數。僅適用于Linux
},
“indexCounters” : {
“btree” : {
“accesses” : 68229146, –Btree索引的訪問次數(索引被訪問量)
“hits” : 68229146, –內存中的Btree頁的數目。(索引命中量)
“misses” : 0, –內存中不存在的Btree也數目。(索引偏差量)(索引內存訪問失敗次數)
“resets” : 0, –索引計數器被重置為0的次數
“missRatio” : 0 –索引偏差率(未命中率)
}
},
“backgroundFlushing” : {
“flushes” : 20640, –數據庫刷新寫到磁盤的次數
“total_ms” : 2453287, –數據庫刷新數據到磁盤花費的微秒數
“average_ms” : 118.8608042635659, –執行單次刷新花費的平均微秒數
“last_ms” : 1, –最后一次執行完成刷新數據到磁盤花費的微秒數
“last_finished” : ISODate(“2012-09-14T09:09:35.656Z”) –當最后一次刷新數據完成時的時間戳
},
“cursors” : {
“totalOpen” : 0, –server為client保持的游標(cursor)總數
“clientCursors_size” : 0, —
“timedOut” : 24 –server啟動以來游標(cursor)超時的總數
},
“network” : {
“bytesIn” : NumberLong(“1929833164782”), –發送到數據庫的數據總量(bytes)
“bytesOut” : 553137147925, –數據庫發出的數據總量(bytes)
“numRequests” : 2475184328 –發送到數據庫的請求量
},
“opcounters” : {
“insert” : 687531883, –server啟動以來總的insert數據量
“query” : 711010343, –server啟動以來總的query數據量
“update” : 0, –server啟動以來總的update數據量
“delete” : 0, –server啟動以來總的delete數據量
“getmore” : 6484, –server啟動以來調用任何游標的getMore總次數
“command” : 1287537 –server啟動以來執行其他命令的總次數
},
“asserts” : {
“regular” : 0, –server啟動以來拋出正規斷言(assert 類似于異常處理的形式)總數目
“warning” : 1, –server啟動以來拋出的告警總數目
“msg” : 0, –消息斷言數目。服務器內部定義的良好字符串錯誤
“user” : 4, –用戶斷言數目。用戶產生的錯誤,譬如:磁盤空間滿;重復鍵。
“rollovers” : 0 –server啟動以來,assert counters have rolled over的次數
},
“writeBacksQueued” : false, –是否有從mongos執行的retry操作
“dur” : {
“commits” : 30, –上一間隔journal日志發生commit的次數
“journaledMB” : 0, –上一間隔寫到journal日志的數據量(單位:MB)
“writeToDataFilesMB” : 0, –上一間隔journal日志寫到數據文件的數據量(單位:MB)
“compression” : 0, —
“commitsInWriteLock” : 0, –寫鎖期間發生commits的次數
“earlyCommits” : 0, –schedule時間前請求commit的次數
“timeMs” : {
“dt” : 3064,
“prepLogBuffer” : 0, –準備寫journal日志花費的時間
“writeToJournal” : 0, –寫journal日志花費的實際時間
“writeToDataFiles” : 0, –journal日志后寫數據文件花費的時間
“remapPrivateView” : 0 –The amount of time spent remapping copy-on-write memory mapped views
}
},
“ok” : 1 –serverStatus是否返回正確
}
網友評論