定義
serverStatus
serverStatus命令用于返回數據庫進程狀態的概述文檔. 大部分監控程序都會定期運行此命令來收集實例相關的統計信息:
{ serverStatus: 1 }
其值(即上面的1)不影響命令的操作。
2.4版本中修改: 在2.4中, 你可以下面的示例一樣,動態地抑制serverStatus的輸出部分, 或通過向command文檔添加字段來包含抑制部分:
db.runCommand( { serverStatus: 1, repl: 0 } ) db.runCommand( { serverStatus: 1, metrics: 0, locks: 0 } ) serverStatus會默認包含除rangeDeleter和repl文檔中某些內容外的所有字段。
注意
您只能動態地包含默認情況下serverStatus文檔中未包含的頂級字段。
當然您也可以排除serverStatus默認包含的任何字段。
也可參考
輸出
serverStatus命令反映的是數據庫狀態的信息集合。這些數據對于診斷和評估MongoDB實例的性能是非常有用的.
3.0版本中修改: 服務器狀態輸出報告中不再包含workingSet, indexCounters, recordStats部分.
也可參考
serverStatus的大部分輸出也可通過mongostat來動態顯示。 更多信息請參閱mongostat命令。
Instance信息
serverStatus.host
host字段表示系統的主機名稱.在Unix/Linux系統中,等同于hostname命令輸出.
serverStatus.version
serverStatus.process
process字段用于標識當前運行的MongoDB實例的類別.可能值為:
serverStatus.uptime
serverStatus.uptimeEstimate
uptimeEstimate提供了由MongoDB內部粗粒度計時系統計算出的正常運行時間.
serverStatus.localTime
localTime值用以表示服務器的當前UTC時間(ISODate格式表示)。
locks
serverStatus.locks
3.0版本中修改.
locks文檔中含有針對每種鎖類型、模式提供細粒度報告的內嵌文檔.
可能的鎖類型如下所示:
- Global 代表的是全局鎖.
- MMAPV1Journal 代表MMAPv1存儲引擎所特有的鎖類型(用于同步journal寫入);對于非MMAPv1存儲引擎s, MMAPV1Journal的模式是空的。
- Database代表的是數據庫鎖.
- Collection代表的是集合鎖.
- Metadata代表的是元數據鎖.
- oplog代表的是oplog上的鎖.
可能的鎖模式如下:
- R 代表Shared (S) lock(共享鎖).
- W代表Exclusive (X) lock(獨占鎖).
- r代表Intent Shared (IS) lock.
- w代表Intent Exclusive (IX) lock.
所有值的類型都是NumberLong().
serverStatus.locks.acquireCount
用以表示特定模式下獲取鎖的次數。
serverStatus.locks.acquireWaitCount
因鎖沖突而等待鎖的次數.
serverStatus.locks.timeAcquiringMicros
獲取鎖時累計等待的時間(單位:毫秒).
timeAcquiringMicros除以acquireWaitCount就可得到特定鎖模式下的平均等待時間.
serverStatus.locks.deadlockCount
獲取鎖時遇到死鎖的次數.
globalLock
serverStatus.globalLock
globalLock數據結構包含有關數據庫當前鎖狀態,歷史鎖狀態,當前操作隊列,以及活動客戶端數量等信息.
serverStatus.globalLock.totalTime
totalTime值表示自數據庫最后一次啟動并創建globalLock的時間(單位:微秒).這大致相當于服務器總正常運行時間。
serverStatus.globalLock.currentQueue
currentQueue數據結構值提供了因鎖而造成操作排隊數量的有關信息.
serverStatus.globalLock.currentQueue.total
total值提供了因等待鎖而造成操作排隊的總數.
不需要關注那些小隊列,尤其是很短的操作.
但應該留意等待讀鎖(即readers)和寫鎖(即writers)的隊列大小.
serverStatus.globalLock.currentQueue.readers
readers值表示當前正在等待讀鎖而排隊的操作數量. 不需要關注那么較小的讀取隊列,尤其是很短的操作。
serverStatus.globalLock.currentQueue.writers
writers值表示當前正在等待寫鎖而排隊的操作數量. 不需要關注那么較小的寫隊列,尤其是很短的操作。
globalLock.activeClients
serverStatus.globalLock.activeClients
activeClients數據結構提供了有關已連接客戶端數量的信息,以及它們執行的操作類型(例如讀取或寫入)的詳細信息。使用此數據可為currentQueue數據提供上下文.
serverStatus.globalLock.activeClients.total
total的值表示當前已連接到數據庫的活動客戶端總個數. 它包含了那些正在執行讀操作(即readers)和寫操作(即writers)的客戶端總數.
serverStatus.globalLock.activeClients.readers
readers值表示執行讀操作的活動客戶端連接總數。
serverStatus.globalLock.activeClients.writers
writers值表示執行寫操作的活動客戶端連接總數。
mem
serverStatus.mem
mem數據結構提供了有關mongod目標系統架構以及當前內存使用情況等信息。 serverStatus.mem.bits
bits值為64或32, 具體取決于在mongod編譯過程中指定的目標架構.多數情況下,此值為64,且此值不隨時間改變.
serverStatus.mem.resident
resident值大致等同于當前數據庫進程消耗的內存(RAM)數值,單位MB. 正常情況下此值往往會增長.
在專用數據庫服務器中,這個數字往往會接近系統的內存總量。
serverStatus.mem.virtual
virtual值表示當前mongod進程消耗的虛擬內存總量,單位MB. 在啟用了journaling時, 此值至少是mapped值的兩倍.如果virtual值明顯高于mapped值 (如,是其3倍或更高),則表示存在內存泄露. serverStatus.mem.supported
supported為true,則表明底層系統支持擴展內存,反之,則底層系統不支持擴展內存,在這種情況下,數據庫服務也不能訪問其它mem值.
serverStatus.mem.mapped
mapped表示數據庫使用的映射內存數量,單位MB. 由于MongoDB使用的是內存映射文件,因此其值 大致上等同于數據庫的總大小.
serverStatus.mem.mappedWithJournal
mappedWithJournal表示數據庫使用的映射內存,同時也包含日志消耗內存的總量,單位MB.
此值通常是mapped值的兩倍. 只在啟用了日志時,才會包含此字段.
serverStatus.mem.note
僅在supported為false時,才會出現note字段.note字段會包含這樣的文本: "not all mem infosupport on this platform".
connections
serverStatus.connections
connections的子文檔提供了有關入站連接的當前狀態,以及數據庫可用連接等信息.
可使用這些值來評估服務器當前的負載和容量需求。
serverStatus.connections.current
current表示連接到數據庫服務器的客戶端數目. 此數字也包含了當前shell會話連接.可考慮available的值以為此基準提供更多上下文參考。這數值包含了所有入站連接:包括所有shell連接或來自其它服務器(如復制集成員或mongos實例)的連接.
serverStatus.connections.available
available表示數據庫可提供的未使用且可用的入站連接數目. 可將此值與current值結合起來理解數據庫的連接負載,并查看UNIX ulimit Settings 文檔來了解系統可用連接閥值的更多信息. serverStatus.connections.totalCreated
totalCreated表示服務器創建的所有入站連接總數.此數字包含已經關閉的連接數目.
extra_info
serverStatus.extra_info
extra_info數據結構提供了由mongod實例收集的有關底層系統信息的數據. 您的系統有可能只會報告以下字段的子集. serverStatus.extra_info.note
note字段會根據底層平臺來報告數據,并具有文本: “fields vary by platform.”
serverStatus.extra_info.heap_usage_bytes
heap_usage_bytes字段只在Unix/Linux系統可用,且會報告數據庫進程所消耗的堆空間字節.
serverStatus.extra_info.page_faults
page_faults用于報告需要磁盤操作的頁面錯誤總數. 頁面錯誤指的是數據庫服務器需要訪問內存中不可用數據的操作. page_faults計數器會在性能不佳時顯著增長,其原因可能與有限的內存環境,以及較大的數據集有關. 有限的零星頁面錯誤不代表系統出了問題.
Windows系統描述了硬頁面錯誤(通過磁盤IO來移動頁面)與軟頁面錯誤(通過在內存中移動頁面)的區別,但MongoDB會統計所有硬頁面和軟頁面錯誤.
backgroundFlushing
注意
backgroundFlushing信息只會出現在那些使用了MMAPv1存儲引擎的實例中.
serverStatus.backgroundFlushing
mongod會周期地將寫入數據刷新至磁盤(在默認配置中,間隔周期為60秒),而backgroundFlushing數據結構就包含了與這些操作相關的數據. 如果您對寫入性能和日志有疑慮,那么可以參考這些值. serverStatus.backgroundFlushing.flushes
flushes是一個計數器,用于收集數據庫刷新所有寫入至磁盤的次數.
此值會隨著數據庫運行周期的加長而不斷增長.
serverStatus.backgroundFlushing.total_ms
total_ms值表示mongod進程花在刷新寫入至磁盤的總時間,單位毫秒.
由于此值是一個絕對值,因此可參考flushes和average_ms值以提供更好的上下文參考.
serverStatus.backgroundFlushing.average_ms
average_ms值描述了總刷新(即flushes值)次數與總刷新時間(即total_ms值)的比例關系.
flushes值越大越能代表正常時間,但異常數據可能會歪曲此值.可使用last_ms來確保高平均值不會被瞬態歷史問題或隨機寫入分配所扭曲.
serverStatus.backgroundFlushing.last_ms
last_ms字段代表的是完成最后一次刷新操作的時間,單位毫秒. 可使用此值來驗證服務器的當前性能是否與average_ms和total_ms提供的歷史數據一致.
serverStatus.backgroundFlushing.last_finished
last_finished字段表示最后一次完成刷新操作的時間戳(格式為ISODate).如果此值相對服務器時間超過了數分鐘,那么重啟數據庫可能會造成數據丟失.此外運行中的常規阻塞寫入操作也可能歪曲此值。 cursors
serverStatus.cursors
cursors 數據結構提供了有關游標狀態及其使用等信息.
serverStatus.cursors.note
note用于指定使用serverStatus.metrics.cursor字段來代替serverStatus.cursors.
serverStatus.cursors.totalOpen
totalOpen表示MongoDB為客戶端維護的游標數量. 由于MongoDB會釋放未使用的游標,所以通常此值會很小. 然而,如果隊列中存在過期的tailable cursor或存在大量操作時,此值會增長. serverStatus.cursors.clientCursors_size
自1.x版本已廢棄: 另請參考totalOpen
serverStatus.cursors.timedOut
timedOut表示自服務器進程啟動以來,已超時的游標總數.如果此值很大或按固定頻率增長,那么通常表示應用程序存在錯誤.
serverStatus.cursors.totalNoTimeout
serverStatus.cursors.pinned
serverStatus.cursors.pinned表示固定打開游標的個數.
network
serverStatus.network
network數據提供了有關MongoDB網絡使用情況的信息.
serverStatus.network.bytesIn
bytesIn字段值表示數據庫服務器收到的總字節數.
可使用此值來判斷mongod進程接收到的網絡流量與整體應用程序發送的流量是否一致。 serverStatus.network.bytesOut
bytesOut字段值反映的是數據庫發出的總字節數.
可使用此值來判斷mongod進程發出的網絡流量與整體應用程序接收的流量是否一致.
serverStatus.network.numRequests
numRequests字段值表示服務器接收到不同請求的總數量. 此值可為bytesIn和bytesOut值提供上下文參考,以判斷MongoDB的網絡利用率與應用程序的期望值是否一致.
repl
serverStatus.repl
repl數據結構包含了有關MongoDB復制集配置的狀態信息. 這些值只在當前主機了啟用復制集時出現.
serverStatus.repl.setName
setName字段表示當前復制集的名稱. 該值反映的是--replSet命令行參數或配置文件中replSetName的值. serverStatus.repl.ismaster
ismaster字段表示當前節點在復制集中是否是master節點,是則為ture,反之則為false.
serverStatus.repl.secondary
secondary字段表示當前節點在復制集中是否是secondray節點,是則為true,反之則false.
serverStatus.repl.primary
3.0.0版本中出現的新選項.
按"[hostname]:[port]"字符串格式列出復制集的當前primary成員. serverStatus.repl.hosts
hosts是一個數組,用于列出當前復制集中的其它成員. 復制集的每個成員都會按hostname:port格式進行顯示.
serverStatus.repl.me
3.0.0版本中出現的新選項.
復制集中當前成員的[主機名]:[端口]組合。
serverStatus.repl.rbid
3.0.0版本中出現的新選項.
serverStatus.repl.slaves
3.0.0版本中出現的新選項.
針對每個復制集成員的文檔數組,用于報告此成員的復制過程. 通常會是primary,但如果使用了鏈式復制則是secondaries.
要包含此輸出,你必須向serverStatus傳遞repl選項,如下所示:
db.serverStatus({ "repl": 1 }) db.runCommand({ "serverStatus": 1, "repl": 1 })
slaves片斷的內容取決于每個成員的復制源. 本節支持的內部操作,僅作內部和診斷使用。
serverStatus.repl.slaves[n].rid
ObjectId用作復制集成員的ID.僅作內部使用.
serverStatus.repl.slaves[n].host
針對復制集成員[hostname]:[port]格式中的host.
serverStatus.repl.slaves[n].optime
表示當前成員執行oplog中最后一次操作的時間.
serverStatus.repl.slaves[n].memberID
針對此復制集成員的整形標識符.
opcountersRepl
serverStatus.opcountersRepl
opcountersRepl數據結構與opcounters數據結構類似,都提供了按類型來統計數據庫復制操作情況,并可借此來更細粒度地分析復制負載.此值只在當前主機啟用了復制時出現.
因復制期間MongoDB序列化操作方式的差異,此值可能不同于opcounters值.
這些數值會隨著數據庫的使用,而不斷增長,因此分析這些值可跟蹤數據庫的使用情況。
serverStatus.opcountersRepl.insert
insert表示自mongod實例最后一次啟動以來,執行復制插入操作總數.
serverStatus.opcountersRepl.query
queryt表示自mongod實例最后一次啟動以來,執行復制查詢操作的總數.
serverStatus.opcountersRepl.update
update表示自mongod實例最后一次啟動以來,執行復制更新操作的總數.
serverStatus.opcountersRepl.delete
delete表示自mongod實例最后一次啟動以來,執行復制刪除操作的總數.
serverStatus.opcountersRepl.getmore
getmore表示自mongod實例最后一次啟動以來,執行getmore操作的總數.
即使query值很低,此值也可能很高. Secondary成員可作為復制過程的一部分發送getMore操作.
serverStatus.opcountersRepl.command
command表示自mongod實例最后一次啟動以來,執行復制命令的總數.
opcounters
serverStatus.opcounters
opcounters數據結構提供了按類型來統計數據庫操作情況,并可借此來更細粒度地分析數據庫負載.
注意
opcounters中的數據會將影響多個文檔的操作,如批量插入或批量更新操作,視為單個操作.
有關更詳細的文檔級操作,請參閱文檔。
此外,這些值反映的是接收到的操作,即使操作未成功執行,其數值也會增加.
serverStatus.opcounters.insert
insert表示自最后一次mongod實例啟動以來,接收到的插入操作總數. serverStatus.opcounters.query
query表示自最后一次mongod實例啟動以來,接收到的查詢操作總數. serverStatus.opcounters.update
update表示自最后一次mongod實例啟動以來,接收到的更新操作總數. serverStatus.opcounters.delete
delete表示自最后一次mongod實例啟動以來,接收到的刪除操作總數. serverStatus.opcounters.getmore
getmore表示自最后一次mongod實例啟動以來,執行getmore操作的總數. 即使query數值很低,此值也會很高. Secondary節點會在復制過程中發送getMore操作.
serverStatus.opcounters.command
command表示自最后一次mongod實例啟動以來,執行的命令總數. rangeDeleter
3.0.0版本引入的新選項.
注意
rangeDeleter數據只在明確啟用的情況下,才會包含在serverStatus的輸出中.
要返回rangeDeleter,可使用下面的某個命令:
db.serverStatus( { rangeDeleter: 1 } ) db.runCommand( { serverStatus: 1, rangeDeleter: 1 } )
serverStatus.rangeDeleter
serverStatus.rangeDeleter.lastDeleteStats
此值是一個數組文檔,每個數組元素都會報告最后一次執行遷移清理操作的情況.
lastDeleteStats最多只會報告最后10個操作的數據.
serverStatus.rangeDeleter.lastDeleteStats[n].deletedDocs
在遷移清理操作過程中刪除的文檔個數.
serverStatus.rangeDeleter.lastDeleteStats[n].queueStart
用于反映操作進入遷移清理操作隊列的時間戳.
具體來說,當mongod在等待打開的游標關閉命名空間時,操作會在隊列中等待. serverStatus.rangeDeleter.lastDeleteStats[n].queueEnd
用于反映遷移清理開始時的時間戳。
serverStatus.rangeDeleter.lastDeleteStats[n].deleteStart
作為遷移清理操作的一部分,執行刪除過程的開始時間戳.
serverStatus.rangeDeleter.lastDeleteStats[n].deleteEnd
作為遷移清理操作的一部分,結束刪除過程的時間戳.
serverStatus.rangeDeleter.lastDeleteStats[n].waitForReplStart
反映遷移清理操作中開始等待復制以處理刪除操作的時間戳.
serverStatus.rangeDeleter.lastDeleteStats[n].waitForReplEnd
反映遷移清理操作中完成等待復制以處理刪除操作的時間戳.
security
3.0.0版本中引入的新選項.
serverStatus.security
serverStatus.security.SSLServerSubjectName
由net.ssl.PEMKeyPassword指定的且與TLS / SSL證書關聯的主題名稱.
serverStatus.security.SSLServerHasCertificateAuthority
當TLS/SSL是自我簽發時,此值為false.
serverStatus.security.SSLServerCertificateExpirationDate
用以表示net.ssl.PEMKeyPassword指定的TLS / SSL證書過期時的date對象. storageEngine
3.0.0版本中的新選項.
serverStatus.storageEngine
用以表示當前存儲引擎相關數據的文檔.
serverStatus.storageEngine.name
用以表示當前存儲引擎名稱的字符串.
asserts
serverStatus.asserts
serverStatus.asserts.regular
regular計數器用以跟蹤自服務器進程啟動以來引發的常規斷言數。
檢查日志文件以獲取有關這些消息的更多信息。
serverStatus.asserts.warning
warning計數器用以跟蹤自服務器進程啟動后引發的警告數。
檢查日志文件以獲取有關這些警告的更多信息。
serverStatus.asserts.msg
msg計數器用以跟蹤自服務器進程啟動以來引發的消息斷言數。
檢查日志文件以獲取有關這些消息的更多信息。
serverStatus.asserts.user
user計數器報告自上次服務器進程啟動以來發生的“用戶斷言”數 . 這些是用戶引發的錯誤,如磁盤空間溢出或重復鍵. 您可以通過修復應用程序或部署中的問題來防止這些斷言。 檢查MongoDB日志以獲取更多信息。
serverStatus.asserts.rollovers
rollovers計數器表示自上次服務器進程啟動以來翻滾的次數. 在230條斷言之后,計數器將翻轉到零。 使用此值為斷言數據結構中的其他值提供上下文。
writeBacksQueued
serverStatus.writeBacksQueued
當mongos實例中存在重試排隊操作時,writeBacksQueued值將為true. 通常情況下,此選項的值為false.
也可參考
Journaling (dur)
NOTE
Journaling(dur)信息只出現在使用了MMAPv1引擎的mongod實例且啟用了日志的環境中. serverStatus.dur
dur (“durability”的縮寫) 文檔提供了有關mongod的日志相關操作與性能方面的數據. 只在mongod使用了journaling來運行的情況下,這些數據才會出現在serverStatus的輸出中. MongoDB會按3秒的時間頻率來報告過去3-6秒內收集的數據.
也可參考
serverStatus.dur.commits
serverStatus.dur.journaledMB
serverStatus.dur.writeToDataFilesMB
serverStatus.dur.compression
( journaled_size_of_data / uncompressed_size_of_data )
serverStatus.dur.commitsInWriteLock
commitsInWriteLock表示在獲得寫鎖時發生的提交數量. 寫鎖中的提交表明MongoDB節點處于高寫入負載之下,并需要進行進一步地診斷.
serverStatus.dur.earlyCommits
earlyCommits值反映的是在日志組提交間隔之前,MongoDB請求提交的次數. 使用此值可確保您的日志組提交間隔對您的部署來說不會太長。 serverStatus.dur.timeMS
timeMS文檔提供有關上一個日志組提交間隔期間日志記錄的各個階段中的mongod實例的性能的信息.
serverStatus.dur.timeMS.dt
dt值以毫秒為單位,用以表示MongoDB收集timeMS數據所花費的時間.此字段可為其它timeMS字段值提供上下文參考.
serverStatus.dur.timeMS.prepLogBuffer
prepLogBuffer值以毫秒為單位,用以表示準備寫入日志所花的時間. 此值越小,則日志性能越高.
serverStatus.dur.timeMS.writeToJournal
writeToJournal值以毫秒為單位,用以表示實際寫入日志所花的時間. 文件系統速度和設備接口可能會影響性能。
serverStatus.dur.timeMS.writeToDataFiles
writeToDataFiles值以毫秒為單位,用以表示日志記錄之后花在寫入數據文件上的時間. 文件系統速度和設備接口可能會影響性能。
serverStatus.dur.timeMS.remapPrivateView
remapPrivateView值以毫秒為單位,用以表示重新映射copy-on-write內存映射視圖所花費的時間. 此值越小,則日志性能越高.
serverStatus.dur.timeMS.commits
commits值表示花在提交上的時間,單位毫秒.
serverStatus.dur.timeMS.commitsInWriteLock
commitsInWriteLock值表示獲取到寫鎖時花在提交上的時間,單位毫秒.
metrics
2.4.0版本中的新選項
serverStatus.metrics
metrics 文檔中包含了許多統計信息,這些信息可反映當前正在運行的mongod實例的使用情況和狀態. serverStatus.metrics.commands
3.0.0版本引入的新選項.
用于報告數據庫命令使用情況的文檔。commands中的字段代表的是數據庫命令的名稱,且每個值都會報告命令執行的總次數以及失敗次數. serverStatus.metrics.commands.<command>.failed
serverStatus.metrics.commands.<command>.total
serverStatus.metrics.document
document包含一個反映文檔訪問,修改模式以及數據使用情況的文檔.
可將這些值與opcounters文檔中的數據進行比較,以跟蹤總操作數.
serverStatus.metrics.document.deleted
deleted表示已刪除文檔的總數.
serverStatus.metrics.document.inserted
inserted表示已插入文檔的總數.
serverStatus.metrics.document.returned
returned表示通過查詢返回的文檔總數.
serverStatus.metrics.document.updated
updated表示已更新文檔的總數.
serverStatus.metrics.getLastError
serverStatus.metrics.getLastError.wtime
serverStatus.metrics.getLastError.wtime.num
num用于報告使用特定寫關注(即w)時得到getLastError操作總數,此寫關注會等待復制集的一個或多個成員確認寫操作(即 w值大于1.) serverStatus.metrics.getLastError.wtime.totalMillis
totalMillis用于報告mongod使用寫關注(即w)時,執行getLastError操作所花費的時間(單位毫秒),此寫入關注會等待復制集的一個或多個成員確認寫操作(即 w值大于1.) serverStatus.metrics.getLastError.wtimeouts
wtimeouts報告由于getLastError的wtimeout閾值,寫關注操作超時的次數。
serverStatus.metrics.operation
operation是一個內嵌文檔,其中包含多種更新,查詢操作類型的計數.
serverStatus.metrics.operation.fastmod
fastmod用于報告不會導致文檔增長或索引更新的更新操作數目.
例如,此計數器會記錄那些使用$inc操作符來遞增未添加索引字段值的更新操作. serverStatus.metrics.operation.idhack
idhack用于報告包含了_id字段的查詢數.
對于這些查詢,MongoDB會使用_id字段上的默認索引,并跳過所有查詢計劃分析.
serverStatus.metrics.operation.scanAndOrder
scanAndOrder用于報告無法使用索引執行排序操作的查詢總數.
serverStatus.metrics.operation.writeConflicts
writeConflicts用于報告遇到寫沖突的查詢總數。
serverStatus.metrics.queryExecutor
queryExecutor用于報告從查詢執行系統中返回數據的文檔.
serverStatus.metrics.queryExecutor.scanned
scanned用于報告在查詢和查詢計劃評估期間,掃描索引項的總數.
serverStatus.metrics.queryExecutor.scannedObjects
scannedObjects用于報告在查詢和查詢計劃評估期間,掃描文檔的總數.
serverStatus.metrics.record
record是用于報告與磁盤內存文件中記錄分配相關的文檔.
serverStatus.metrics.record.moves
文檔移動是由于操作的結果,使文檔的大小超過了其分配的記錄大小。
serverStatus.metrics.repl
repl包含一個內嵌文檔,用于報告有關復制進程的指標信息.
serverStatus.metrics.repl.apply
apply包含一個內嵌文檔,用于報告復制oplog中的操作.
serverStatus.metrics.repl.apply.batches
batches用于報告復制集次成員上執行oplog的應用程序進程.
serverStatus.metrics.repl.apply.batches.num
num用于報告跨數據庫使用batches的總數.
serverStatus.metrics.repl.apply.batches.totalMillis
totalMillis用于報告mongod執行oplog中操作所花的時間量.
serverStatus.metrics.repl.apply.ops
serverStatus.metrics.repl.buffer
在批量執行oplog中的操作前,MongoDB會緩沖來自復制同步源中的oplog操作. buffer提供了追蹤oplog buffer的方式. 參考多線程復制來了解更多有關oplog應用程序過程的信息. serverStatus.metrics.repl.buffer.count
count用于報告oplog緩沖區中的操作數目.
serverStatus.metrics.repl.buffer.maxSizeBytes
maxSizeBytes用于報告緩沖的最大大小.在mongod中,此值是一個常量,不配置.
serverStatus.metrics.repl.buffer.sizeBytes
sizeBytes用于報告oplog緩沖區中當前內容的大小.
serverStatus.metrics.repl.network
network用于報告復制過程所使用的網絡
serverStatus.metrics.repl.network.bytes
bytes用于報告從復制源中已讀取的數據總量.
serverStatus.metrics.repl.network.getmores
getmores用于報告getmore操作,它是oplog復制過程的一部分,用于從oplog游標中請求其它結果.
serverStatus.metrics.repl.network.getmores.num
num用于報告getmore操作的總數,這是從復制同步源請求一組附加操作的操作.
serverStatus.metrics.repl.network.getmores.totalMillis
totalMillis用于報告從getmore操作收集數據所需的總時間.
注意
此數據可能非常大,因為MongoDB會等待更多的數據,即使getmore操作沒有初始返回數據。
serverStatus.metrics.repl.network.ops
ops用于報告從復制源中讀取操作的總數.
serverStatus.metrics.repl.network.readersCreated
readersCreated用于報告創建oplog查詢過程的總數. MongoDB會在任何時間因連接錯誤(連接超時或網絡操作錯誤)而創建一個新的oplog查詢.而且,每次MongoDB選擇一個新的復制源時,ReaderCreated都會增加。
serverStatus.metrics.repl.oplog
serverStatus.metrics.repl.oplog.insert
insert是用于報告向oplog執行插入操作的文檔.
serverStatus.metrics.repl.oplog.insert.num
num用于報告向oplog中執行插入操作的總數.
serverStatus.metrics.repl.oplog.insert.totalMillis
totalMillis用于報告mongod向oplog中插入數據時所花費的總時間.
serverStatus.metrics.repl.oplog.insertBytes
insertBytes表示向oplog上插入文檔的總大小.
serverStatus.metrics.repl.preload
preload用于報告在預提取階段,MongoDB加載文檔和索引至RAM,以提高復制吞吐量.
serverStatus.metrics.repl.preload.docs
docs是一個內嵌文檔,用于報告在預提取階段,向內存中加載的文檔.
serverStatus.metrics.repl.preload.docs.num
num用于報告在預提取階段,向內存中加載的文檔總數.
serverStatus.metrics.repl.preload.docs.totalMillis
totalMillis用于報告在復制預提取階段,向內存中加載文檔時所花費的總時間.
serverStatus.metrics.repl.preload.indexes
indexes是一個內嵌文檔,用于報告在復制預提取階段,加載進內存的索引.
serverStatus.metrics.repl.preload.indexes.num
在更新文檔(作為復制預提取階段的一部分)之前,num用于報告成員加載的索引條目總數.
serverStatus.metrics.repl.preload.indexes.totalMillis
totalMillis用于報告加載索引條目(作為復制預提取階段的一部分) 所花費的時間總量.
serverStatus.metrics.storage.freelist.search.bucketExhausted
bucketExhausted用于報告mongod未找到合適大記錄分配而檢查空閑列表的次數. serverStatus.metrics.storage.freelist.search.requests
serverStatus.metrics.storage.freelist.search.scanned
scanned用于報告mongod已搜索出可用記錄分配的數目.
serverStatus.metrics.ttl
ttl是一個內嵌文檔,用于報告那些使用了ttl索引的資源使用情況. serverStatus.metrics.ttl.deletedDocuments
deletedDocuments用于報告使用ttl 索引從集合中刪除文檔的總數. serverStatus.metrics.ttl.passes
passes用于報告后臺進程使用ttl 索引從集合中刪除文檔的次數. serverStatus.metrics.cursor
2.6版本中的新選項.
cursor是一個包含有關游標狀態和使用數據的文檔.
serverStatus.metrics.cursor.timedOut
2.6版本中的新選項.
timedOut表示自服務器進程啟動以來,超時的游標數目. 如果此數值很大或按固定頻率增長,那么這通常意味著應用程序出現了錯誤.
serverStatus.metrics.cursor.open
2.6版本中的新選項.
open是一個內嵌文檔,它包含了打開游標的相關信息.
serverStatus.metrics.cursor.open.noTimeout
2.6版本中的新選項.
serverStatus.metrics.cursor.open.pinned
2.6版本中的新選項.
serverStatus.metrics.cursor.open.pinned表示固定(pinned)打開游標的個數.
serverStatus.metrics.cursor.open.total
2.6版本中的新選項.
total表示MongoDB為客戶端維護游標的數目. 因為MongoDB會釋放未使用游標,因此通常此值很小或為0. 但是,如果這里有一個過期tailable游標隊列或者具有大量操作,此值可能會上升.
serverStatus.metrics.cursor.open.singleTarget
3.0.0版本中的新選項.
singleTarget反映的是單個分片上的游標總數. 只有mongos實例能報告singleTarget值. serverStatus.metrics.cursor.open.multiTarget
3.0.0版本中的新選項.
multiTarget反映的是多個分片上的游標總數. 只有mongos實例才能報告multiTarget值. wiredTiger
3.0.0版本中的新選項.
注意
wiredTiger信息只出現于使用了WiredTiger存儲引擎的mongod實例. 一些統計信息,如serverStatus.wiredTiger.LSM,為服務器匯總。
serverStatus.wiredTiger.uri
3.0.0版本中的新選項.
serverStatus.wiredTiger.uri包含一個字符串,一般由MongoDB內部使用.
serverStatus.wiredTiger.LSM
3.0.0版本中的新選項.
serverStatus.wiredTiger.LSM用以返回LSM (Log-Structured Merge)樹的統計信息.
此值反映的是所有被服務器使用的LSM樹信息.
serverStatus.wiredTiger.async
3.0.0版本中的新選項.
serverStatus.wiredTiger.async返回與異步操作API相關的統計信息。 MongoDB未使用此選項。
serverStatus.wiredTiger.block-manager
3.0.0版本中的新選項.
serverStatus.wiredTiger.block-manager將返回block管理器操作上的統計信息.
serverStatus.wiredTiger.cache
3.0.0版本中的新選項.
serverStatus.wiredTiger.cache用于從緩存中返回緩存和頁面驅逐的統計信息.
如果緩存無足夠的空間來加載其它數據,WiredTiger會驅逐緩存中的頁面以釋放空間.
注意
此外,操作系統也會使用任何空閑RAM來緩存文件系統塊.
為了遷就RAM的其它消費者,你可以降低WiredTiger緩存大小. 應該避免將WiredTiger緩存大小設置為超過默認值.
默認WiredTiger緩存大小值會假設每個節點上只存在單個mongod實例.如果單個節點上部署了多個實例,那么你可以降低其值來遷就其它mongod實例. 明確的數量取決于運行于容器中的其它進程.
serverStatus.wiredTiger.connection
3.0.0版本中的新選項.
serverStatus.wiredTiger.connection返回與WiredTiger連接相關的統計信息.
serverStatus.wiredTiger.cursor
3.0.0版本中的新選項.
serverStatus.wiredTiger.cursor返回與WiredTiger游標相關的統計信息.
serverStatus.wiredTiger.data-handle
3.0.0版本中的新選項.
serverStatus.wiredTiger.data-handle返回數據處理和掃描的統計信息。
serverStatus.wiredTiger.log
3.0.0版本中的新選項.
serverStatus.wiredTiger.log用于返回WiredTiger的寫提前日志(write ahead log)統計信息.
也可參考
serverStatus.wiredTiger.reconciliation
3.0.0版本中的新選項.
serverStatus.wiredTiger.reconciliation用于返回和解過程的統計信息。
serverStatus.wiredTiger.session
3.0.0版本中的新選項.
serverStatus.wiredTiger.session用于返回打開的游標數,以及打開的會話數.
serverStatus.wiredTiger.thread-yield
3.0.0版本中的新選項.
serverStatus.wiredTiger.thread-yield用于在頁面獲取期間作出讓步的統計信息.
serverStatus.wiredTiger.transaction
3.0.0版本中的新選項.
serverStatus.wiredTiger.transactions返回有關事務檢查點和操作的統計信息。
serverStatus.wiredTiger.concurrentTransactions
3.0.0版本中的新選項.
serverStatus.wiredTiger.concurrentTransactions返回有關允許進入WiredTiger存儲引擎的并發事務數量的信息. 此設置是MongoDB特有的.
posted on 2017-06-26 21:08
胡小軍 閱讀(2553)
評論(0) 編輯 收藏 所屬分類:
MongoDB