隨筆 - 41  文章 - 7  trackbacks - 0
          <2017年6月>
          28293031123
          45678910
          11121314151617
          18192021222324
          2526272829301
          2345678

          常用鏈接

          留言簿

          隨筆分類

          隨筆檔案

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

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

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導航:
           
          主站蜘蛛池模板: 东辽县| 太和县| 温宿县| 临城县| 巢湖市| 郴州市| 司法| 山阳县| 治县。| 道真| 上杭县| 惠东县| 华坪县| 吉木萨尔县| 凤阳县| 唐河县| 曲水县| 长治县| 扶余县| 依安县| 榆社县| 迁西县| 梁河县| 封开县| 常山县| 平湖市| 台东市| 武鸣县| 宁国市| 闻喜县| 永福县| 南漳县| 开鲁县| 望城县| 惠安县| 余庆县| 原平市| 巩义市| 曲水县| 葫芦岛市| 荆门市|