随笔 - 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命令用于返回数据库进程状态的概述文档. 大部分监控程序都会定期运行此命令来收集实例相关的统计信息:
{ 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默认包含的任何字段。
也可参考
db.serverStatus()
输出
serverStatus命令反映的是数据库状态的信息集合。这些数据对于诊断和评估MongoDB实例的性能是非常有用的.
3.0版本中修改: 服务器状态输出报告中不再包含workingSetindexCounters, recordStats部分.
有关serverStatus的输出示例,参考Server Status Output.
也可参考
serverStatus的大部分输出也可通过mongostat来动态显示。 更多信息请参阅mongostat命令。
Instance信息
有关实例信息的示例,可参考Server状态输出页面的实例信息部分 .
serverStatus.host
host字段表示系统的主机名称.在Unix/Linux系统中,等同于hostname命令输出.
serverStatus.version
version字段包含了当前mongod或mongos实例上运行的MongoDB版本。
serverStatus.process
process字段用于标识当前运行的MongoDB实例的类别.可能值为:
serverStatus.uptime
uptime字段值表示mongosmongod进程已激活或已持续运行的秒数.
serverStatus.uptimeEstimate
uptimeEstimate提供了由MongoDB内部粗粒度计时系统计算出的正常运行时间.
serverStatus.localTime
localTime值用以表示服务器的当前UTC时间(ISODate格式表示)。
locks
有关locksr的输出示例,可参考Server Status Output页面的locks section .
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
有关globalLock输出的示例,可查看Server Status Output页面的globalLock section.
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
有关mem的输出示例,可参考Server Status Output 页面的mem section.
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
有关connections的输出示例,可参考Server Status Output 页面的connections section.
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
有关extra_info的输出示例,可参考Server Status Output 页面的extra_info section.
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存储引擎的实例中.
有关backgroundFlushing的输出示例, 参考Server Status Output页面的backgroundFlushing section.
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_mstotal_ms提供的历史数据一致.
serverStatus.backgroundFlushing.last_finished
last_finished字段表示最后一次完成刷新操作的时间戳(格式为ISODate.如果此值相对服务器时间超过了数分钟,那么重启数据库可能会造成数据丢失.此外运行中的常规阻塞写入操作也可能歪曲此值。
cursors
2.6中已废弃: 另请参考serverStatus.metrics.cursor字段.
有关cursors输出, 可参考Server Status Output 页面的cursors section.
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
totalNoTimeout表示设置了DBQuery.Option.noTimeout选项(在某段时间内不活跃时,阻止其超时)后,打开的游标个数.
serverStatus.cursors.pinned
serverStatus.cursors.pinned表示固定打开游标的个数.
network
有关network的输出示例,参考Server Status Output 页面的network section.
serverStatus.network
network数据提供了有关MongoDB网络使用情况的信息.
serverStatus.network.bytesIn
bytesIn字段值表示数据库服务器收到的总字节数.
可使用此值来判断mongod进程接收到的网络流量与整体应用程序发送的流量是否一致。
serverStatus.network.bytesOut
bytesOut字段值反映的是数据库发出的总字节数.
可使用此值来判断mongod进程发出的网络流量与整体应用程序接收的流量是否一致.
serverStatus.network.numRequests
numRequests字段值表示服务器接收到不同请求的总数量. 此值可为bytesIn和bytesOut值提供上下文参考,以判断MongoDB的网络利用率与应用程序的期望值是否一致.
repl
有关repl的输出示例,参考Server Status Output页面的repl section.
serverStatus.repl
repl数据结构包含了有关MongoDB复制集配置的状态信息. 这些值只在当前主机了启用复制集时出现.
参考Replication来了解更多有关复制的相关信息.
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版本中出现的新选项.
Rollback 标识符. 用于确定当前mongod实例是否发生了回滚.
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
有关opcountersRepl的输出示例,参考Server Status Output页面的opcountersRepl section.
serverStatus.opcountersRepl
opcountersRepl数据结构与opcounters数据结构类似,都提供了按类型来统计数据库复制操作情况,并可借此来更细粒度地分析复制负载.此值只在当前主机启用了复制时出现.
因复制期间MongoDB序列化操作方式的差异,此值可能不同于opcounters值.
查看Replication来了解更多有关复制的信息.
这些数值会随着数据库的使用,而不断增长,因此分析这些值可跟踪数据库的使用情况。
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
有关opcounters的输出示例,参考Server Status Output页面的opcounters section.
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实例启动以来,执行的命令总数.
command会统计除insertupdate, 和delete之外的所有其它命令.
rangeDeleter
3.0.0版本引入的新选项.
注意
rangeDeleter数据只在明确启用的情况下,才会包含在serverStatus的输出中.
要返回rangeDeleter,可使用下面的某个命令:
db.serverStatus( { rangeDeleter: 1 } ) db.runCommand( { serverStatus: 1, rangeDeleter: 1 } )
serverStatus.rangeDeleter
此值是一个文档,用于报告cleanupOrphaned命令以及moveChunk命令清理阶段的工作执行情况.
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版本中引入的新选项.
有关security的输出示例, 参考Server Status Output页面的security section.
serverStatus.security
报告安全配置细节的文档.仅适用于支持TLS / SSL编译的mongod实例。
serverStatus.security.SSLServerSubjectName
由net.ssl.PEMKeyPassword指定的且与TLS / SSL证书关联的主题名称.
serverStatus.security.SSLServerHasCertificateAuthority
当net.ssl.PEMKeyPassword指定的TLS / SSL证书与证书颁发机构相关联时,该属性为true
当TLS/SSL是自我签发时,此值为false.
serverStatus.security.SSLServerCertificateExpirationDate
用以表示net.ssl.PEMKeyPassword指定的TLS / SSL证书过期时的date对象.
storageEngine
3.0.0版本中的新选项.
有关storageEngine的输出示例,参考Server Status Output页面的storageEngine section.
serverStatus.storageEngine
用以表示当前存储引擎相关数据的文档.
serverStatus.storageEngine.name
用以表示当前存储引擎名称的字符串.
asserts
有关asserts的输出示例,参考Server Status Output页面的asserts section.
serverStatus.asserts
asserts文档用以报告数据库中的断言数量.虽然断言错误通常不常见,但如果断言有非零值,则应检查mongod进程的日志文件以获取更多信息。 在多数情况下,这些错误是微不足道的,但值得研究。
serverStatus.asserts.regular
regular计数器用以跟踪自服务器进程启动以来引发的常规断言数。
检查日志文件以获取有关这些消息的更多信息。
serverStatus.asserts.warning
warning计数器用以跟踪自服务器进程启动后引发的警告数。
检查日志文件以获取有关这些警告的更多信息。
serverStatus.asserts.msg
msg计数器用以跟踪自服务器进程启动以来引发的消息断言数。
检查日志文件以获取有关这些消息的更多信息。
serverStatus.asserts.user
user计数器报告自上次服务器进程启动以来发生的“用户断言”数 . 这些是用户引发的错误,如磁盘空间溢出或重复键. 您可以通过修复应用程序或部署中的问题来防止这些断言。 检查MongoDB日志以获取更多信息。
serverStatus.asserts.rollovers
rollovers计数器表示自上次服务器进程启动以来翻滚的次数. 在230条断言之后,计数器将翻转到零。 使用此值为断言数据结构中的其他值提供上下文。
writeBacksQueued
有关writeBacksQueued的输出示例,参考Server Status Output页面的writeBacksQueued section.
serverStatus.writeBacksQueued
当mongos实例中存在重试排队操作时,writeBacksQueued值将为true. 通常情况下,此选项的值为false.
也可参考
writeBacks
Journaling (dur)
NOTE
Journaling(dur)信息只出现在使用了MMAPv1引擎的mongod实例且启用了日志的环境中.
有关Journaling (dur)的输出示例,参考Server Status Output页面的journaling section.
serverStatus.dur
dur (“durability”的缩写) 文档提供了有关mongod的日志相关操作与性能方面的数据
只在mongod使用了journaling来运行的情况下,这些数据才会出现在serverStatus的输出中.
MongoDB会按3秒的时间频率来报告过去3-6秒内收集的数据.
也可参考
Journaling 提供了有关日志操作的更多信息.
serverStatus.dur.commits
commits提供了上次日志组提交间隔期间写入journal的事务数.
serverStatus.dur.journaledMB
journaledMB提供了上次日志组提交间隔期间写入journal的数据总量,单位MB.
serverStatus.dur.writeToDataFilesMB
writeToDataFilesMB提供了上次日志组提交间隔期间从journal写入数据文件的数据总量,单位MB.
serverStatus.dur.compression
compression表示数据写入journal的压缩率:
( 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
有关metrics的输出示例,参考Server Status Output页面的metrics section.
2.4.0版本中的新选项
serverStatus.metrics
metrics 文档中包含了许多统计信息,这些信息可反映当前正在运行的mongod实例的使用情况和状态.
serverStatus.metrics.commands
3.0.0版本引入的新选项.
用于报告数据库命令使用情况的文档。commands中的字段代表的是数据库命令的名称,且每个值都会报告命令执行的总次数以及失败次数.
serverStatus.metrics.commands.<command>.failed
在此mongod <command> 执行失败的次数.
serverStatus.metrics.commands.<command>.total
在此mongod <command> 执行的总次数.
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
getLastError表示getLastError使用的文档。
serverStatus.metrics.getLastError.wtime
wtime是一个嵌入文档,报告带有w参数大于1的getLastError操作计数。
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用于报告在查询和查询计划评估期间,扫描索引项的总数.
此计数等同于explain()输出中的totalKeysExamined.
serverStatus.metrics.queryExecutor.scannedObjects
scannedObjects用于报告在查询和查询计划评估期间,扫描文档的总数.
此计数等同于explain()输出中的totalDocsExamined
serverStatus.metrics.record
record是用于报告与磁盘内存文件中记录分配相关的文档.
serverStatus.metrics.record.moves
对于MMAPv1存储引擎moves用于报告在MongoDB数据集磁盘中文档移动的总次数.
文档移动是由于操作的结果,使文档的大小超过了其分配的记录大小。
serverStatus.metrics.repl
repl包含一个内嵌文档,用于报告有关复制进程的指标信息
repl文档会在所有mongod实例上显示,即使它不是复制集成员.
serverStatus.metrics.repl.apply
apply包含一个内嵌文档,用于报告复制oplog中的操作.
serverStatus.metrics.repl.apply.batches
batches用于报告复制集次成员上执行oplog的应用程序进程.
参考Multithreaded Replication来了解有关更多oplog应用程序过程的信息
serverStatus.metrics.repl.apply.batches.num
num用于报告跨数据库使用batches的总数.
serverStatus.metrics.repl.apply.batches.totalMillis
totalMillis用于报告mongod执行oplog中操作所花的时间量.
serverStatus.metrics.repl.apply.ops
ops报告要执行oplog操作的总数。
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
oplog是一个文档,报告了这个mongod实例的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,以提高复制吞吐量.
参考Multithreaded Replication来了解更多有关复制过程中预提取阶段的信息.
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是一个内嵌文档,用于报告在复制预提取阶段,加载进内存的索引.
参考Multithreaded Replication来了解更多有关复制过程中预提取阶段的信息.
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
requests用于报告mongod搜索可记录分配的次数.
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版本中的新选项.
noTimeout表示打开游标的数目,这些游标设置了DBQuery.Option.noTimeout选项,以阻止其一段时间不活跃后超时.
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,为服务器汇总。
有关wiredTiger的输出示例,参考Server Status Output页面的wiredTiger section.
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用于从缓存中返回缓存和页面驱逐的统计信息.
缓存的大小可以通过storage.wiredTiger.engineConfig.cacheSizeGB设置来调整.
如果缓存无足够的空间来加载其它数据,WiredTiger会驱逐缓存中的页面以释放空间.
注意
storage.wiredTiger.engineConfig.cacheSizeGB只能限制WiredTiger缓存的大小,而不能限制mongod使用的内存总量. WiredTiger缓存只是MongoDB使用RAM的一个组件. MongoDB也会通过文件系统缓存来自动使用机器上所有空闲内存(文件系统缓存中的数据经过压缩的).
此外,操作系统也会使用任何空闲RAM来缓存文件系统块.
为了迁就RAM的其它消费者,你可以降低WiredTiger缓存大小. 应该避免将WiredTiger缓存大小设置为超过默认值.
默认WiredTiger缓存大小值会假设每个节点上只存在单个mongod实例.如果单个节点上部署了多个实例,那么你可以降低其值来迁就其它mongod实例.
如果你通过容器(如lxccgroups, Docker等容器,不能使用这些容器的所有可用RAM)来运行mongod, 你必须将storage.wiredTiger.engineConfig.cacheSizeGB的值设为小于容器可用RAM的值.
明确的数量取决于运行于容器中的其它进程.
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)统计信息.
也可参考
Journaling与WiredTiger
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特有的.
要更改并发读取和写入事务的设置,可参考wiredTigerConcurrentReadTransactions 和wiredTigerConcurrentWriteTransactions.
posted on 2017-06-26 21:08 胡小军 阅读(2482) 评论(0)  编辑  收藏 所属分类: MongoDB

只有注册用户登录后才能发表评论。


网站导航: