MongoDB版本:4.2
mongostat
官方文档: https://docs.mongodb.com/v4.2/reference/program/mongostat/
常用参数
--host: 服务器地址 Default: localhost:27017
--port: 服务器端口 Default: 27017
--username -u: MongoDB用户名 需要注意用户是否有权限
--password -p: MongoDB密码
--authenticationDatabase: 登录的库
--authenticationMechanism: 认证机制 Default: SCRAM-SHA-1
-o: 指定输出字段
-O: 为输出字段取别名 <field>=<customName>
--json: 以JSON格式返回mongostat的输出
--interactive: 不滚动显示
<sleeptime>: 指定刷新时间 Default:1秒
输出字段
inserts: 每秒插入数(带*的表示复制集的从库,下同)
query: 每秒查询数
update: 每秒更新数
delete: 每秒删除数
getmore: 每秒返回的游标数
command: 每秒的命令数 local|replicated
flusher: 每个查询间隔之间的checkpoint触发次数
dirty: wiredtiger特有的参数,记录wiredtiger缓存中脏数据的比例
used: wiredtiger特有的参数,记录wiredtiger缓存使用百分比
Vsize: 虚拟内存使用量,单位为MB
res: 物理内存使用量,单位为MB
qrw: 客户端等待从MongoDB实例读写数据的队列长度,|隔开 r|w
arw: 执行读写操作的活跃客户端数量,|隔开 r|w
netIn: MongoDB实例的网络进流量
netOut: MongoDB实例的网络出流量
conn: 连接数
set: 复制集名称
repl: 复制集中的状态 M:master | SEC:secondary | REC:recovering
UNK:unknown | RTR:mongos process (“router”) |
ARB:arbiter
mongotop
官方文档: https://docs.mongodb.com/v4.2/reference/program/mongotop/
常用参数
--host: 服务器地址 Default: localhost:27017
--port: 服务器端口 Default: 27017
--username -u: MongoDB用户名 需要注意用户是否有权限
--password -p: MongoDB密码
--authenticationDatabase: 登录的库
--authenticationMechanism: 认证机制 Default: SCRAM-SHA-1
--json: 以JSON格式返回mongostat的输出
<sleeptime>: 指定刷新时间 Default:1秒
输出字段
ns: 库表名
total: 当前库表名操作的总时间
read: 当前库表名读操作的总时间
write: 当前库表名写操作的总时间
当前时间时间
db.serverStatus
输出内容
#实例信息
"host": "mongodb001:27118", # 系统主机名
"version": "4.2.2", # MongoDB版本
"process": "mongod", # 当前进程类型 mongod or mongos
"pid": NumberLong("3380"), # 进程ID号
"uptime": 17406691, # 当前MongoDB进程处于活跃状态的秒数
"uptimeMillis": NumberLong("17406691571"), # 进程处于活跃状态的毫秒数
"uptimeEstimate": NumberLong("17406691"), # 正常运行时间秒数
"localTime": ISODate("2020-09-16T02:35:30.882Z"), # 当前时间减8小时((The ISODate representing the current time, according to the server, in UTC))
#断言信息
"asserts": {
"regular": NumberInt("0"), # 服务启动后正常的asserts错误个数,可通过log查看更多该信息
"warning": NumberInt("0"), # 服务启动后的warning个数
"msg": NumberInt("3"), # 服务启动后的message assert个数
"user": NumberInt("3057057"), # 服务启动后的user asserts个数
"rollovers": NumberInt("0") # 服务启动后的重置次数
},
#连接数信息
"connections": {
"current": NumberInt("45"), # 当前连接数
"available": NumberInt("51155"), # 可用连接数
"totalCreated": NumberInt("109337"), # 截止目前为止总共创建的连接数
"active": NumberInt("2") # 活动的连接数,活动客户端连接是指当前正在进行操作的客户端连接
},
# electionMetrics
# 提供有关此mongod实例为成为主要实例而进行的选举的信息
# 如有需要请查看官方文档:https://docs.mongodb.com/v4.2/reference/command/serverStatus/
# 提供有关基础系统的其他信息的文档
"extra_info": {
"note": "fields vary by platform", # 表示当前这个extra_info的显示信息依赖于底层系统
"user_time_us": NumberLong("959372216071"),
"system_time_us": NumberLong("213190273967"),
"maximum_resident_set_kb": NumberLong("34167464"),
"input_blocks": NumberLong("4736"),
"output_blocks": NumberLong("416808424"),
"page_reclaims": NumberLong("129580505"),
"page_faults": NumberLong("4"), # 页面错误总数。该 extra_info.page_faults计数器可以表现不佳的时刻期间显着地增加,并且可以具有有限的存储器的环境和更大的数据集相关联。有限且偶发的页面错误不一定表示存在问题。
"voluntary_context_switches": NumberLong("1442053776"),
"involuntary_context_switches": NumberLong("3904063")
},
# 流量控制,返回有关流控制的统计信息的文档
"flowControl": {
"enabled": true, # 一个布尔值,指示流控制是启用(true)还是禁用(false)
"targetRateLimit": NumberInt("1000000000"), #
"timeAcquiringMicros": NumberLong("30632862"), #在辅助服务器上运行时,返回的数字是占位符;在主服务器上运行时,总的写操作等待获取票证的时间
"locksPerOp": 1.199, # 在主服务器上运行时,近似于每个操作获取的锁数;在辅助服务器上运行时,返回的数字是占位符
"sustainerRate": NumberInt("0"), # 在主服务器上运行时,辅助服务器每秒维持提交点的每秒近似操作数;在辅助服务器上运行时,返回的数字是占位符
"isLagged": false, # 在主数据库上运行时,一个布尔值,指示是否已使用流控制。当大多数承诺滞后时间大于配置的某个百分比时,将启用流控制;在辅助服务器上运行时,返回的布尔值是一个占位符
"isLaggedCount": NumberInt("9"), # 在主服务器上运行时,自上次重新启动以来,流控制已参与的次数。当大多数承诺的滞后大于一定百分比时,进行流量控制;在辅助服务器上运行时,返回的布尔值是一个占位符
"isLaggedTimeMicros": NumberLong("8999993") # 在主服务器上运行时,自上次重新启动以来已花费了很多时间进行流控制。当大多数承诺的滞后大于一定百分比时,进行流量控制;在辅助服务器上运行时,返回的数字是占位符
},
# 免费云监控的信息
"freeMonitoring": {
"state": "disabled", # 状态有:启用|停用。如果启用免费监视遇到注册错误,则为等待
"retryIntervalSecs": NumberLong("60"), # 上传数据的频率(以秒为单位)
"lastRunTime": "2020-08-14T16:34:00.589+0800", # 上次运行指标上载的日期和时间
"registerErrors": NumberLong("0"), # 注册错误的数量,由于意外的HTTP状态或网络错误而增加
"metricsErrors": NumberLong("0") # 上载指标时遇到的错误数
},
# 全局锁信息
"globalLock": {
"totalTime": NumberLong("17406691568000"), # mongod启动后到现在的总时间,单位微秒
"currentQueue": {
"total": NumberInt("0"), # 当前的全局锁等待锁等待的个数
"readers": NumberInt("0"), # 当前的全局读锁等待个数
"writers": NumberInt("0") # 当前全局写锁等待个数
},
"activeClients": {
"total": NumberInt("0"), # 当前活跃客户端的个数
"readers": NumberInt("0"), # 当前活跃客户端中进行读操作的个数
"writers": NumberInt("0") # 当前活跃客户端中进行写操作的个数
}
},
# 报告每个锁的文件
# locks
"locks": {
"ParallelBatchWriterMode": { # 表示并行批处理写入器模式的锁
"acquireCount": {
"r": NumberLong("212105154"),
"W": NumberLong("2")
}
},
"ReplicationStateTransition": { # 表示用于副本集成员状态转换的锁定
"acquireCount": {
"w": NumberLong("5982090612"),
"W": NumberLong("2")
},
"acquireWaitCount": {
"w": NumberLong("2"),
"W": NumberLong("2")
},
"timeAcquiringMicros": {
"w": NumberLong("296"),
"W": NumberLong("83")
}
},
"Global": { # 全局锁
"acquireCount": {
"r": NumberLong("5793186576"),
"w": NumberLong("187543391"),
"W": NumberLong("5")
},
"acquireWaitCount": {
"r": NumberLong("1"),
"W": NumberLong("1")
},
"timeAcquiringMicros": {
"r": NumberLong("435"),
"W": NumberLong("22")
}
},
"Database": { # 数据库锁
"acquireCount": {
"r": NumberLong("5756206026"),
"w": NumberLong("185841307"),
"R": NumberLong("3824"),
"W": NumberLong("473")
},
"acquireWaitCount": {
"r": NumberLong("26"),
"w": NumberLong("2"),
"R": NumberLong("1"),
"W": NumberLong("18")
},
"timeAcquiringMicros": {
"r": NumberLong("86303"),
"w": NumberLong("106"),
"R": NumberLong("140"),
"W": NumberLong("20679856")
}
},
"Collection": { # 集合锁
"acquireCount": {
"r": NumberLong("5640843860"),
"w": NumberLong("185801606"),
"R": NumberLong("4162"),
"W": NumberLong("3387")
},
"acquireWaitCount": {
"r": NumberLong("73"),
"W": NumberLong("22")
},
"timeAcquiringMicros": {
"r": NumberLong("313493"),
"W": NumberLong("5993")
}
},
"Metadata": { # 元数据锁
"acquireCount": {
"W": NumberLong("197")
}
},
"Mutex": { # 代表互斥体
"acquireCount": {
"r": NumberLong("361715139"),
"W": NumberLong("2")
}
},
"oplog": { # oplog锁
"acquireCount": {
"r": NumberLong("117108152"),
"w": NumberLong("3")
}
}
},
R: 表示共享锁 S
W: 表示排他锁 X
r: 表示共享意图锁 IS
w: IX锁
# 提供有关服务器会话缓存的指标
"logicalSessionRecordCache": {
"activeSessionsCount": NumberInt("4"), # 自上一次刷新周期以来,由mongod或mongos实例缓存在内存中的所有活动本地会话的数量
"sessionsCollectionJobCount": NumberInt("58023"), # 跟踪刷新进程在config.system.sessions集合上运行的次数的数目
"lastSessionsCollectionJobDurationMillis": NumberInt("7"), # 上次刷新的长度(以毫秒为单位)
"lastSessionsCollectionJobTimestamp": ISODate("2020-09-16T02:34:00.159Z"), # 上次刷新的时间
"lastSessionsCollectionJobEntriesRefreshed": NumberInt("2"), # 上次刷新期间刷新的会话数
"lastSessionsCollectionJobEntriesEnded": NumberInt("0"), # 上次刷新期间结束的会话数
"lastSessionsCollectionJobCursorsClosed": NumberInt("0"), # 上次config.system.sessions集合刷新期间关闭的游标数
"transactionReaperJobCount": NumberInt("58023"), # 跟踪事务记录清理进程在config.transactions 集合上运行的次数的数目
"lastTransactionReaperJobDurationMillis": NumberInt("1"), # 上次事务记录清理的长度(以毫秒为单位)
"lastTransactionReaperJobTimestamp": ISODate("2020-09-16T02:34:00.159Z"), # 最后一次事务记录清理的时间
"lastTransactionReaperJobEntriesCleanedUp": NumberInt("0"), # 在上次事务记录清理期间删除的config.transactions集合中的条目数
"sessionCatalogSize": NumberInt("3") # config.transactions 条目的内存缓存大小
},
# 报告有关MongoDB网络使用情况数据的文档
"network": {
"bytesIn": NumberLong("93751993843"), # 反映网络流量的接收量的字节数通过这个数据库。使用此值可确保发送到该mongod进程的网络流量与期望值和整个应用程序间流量一致
"bytesOut": NumberLong("341281988614"), # 反映从此数据库发送的网络流量的字节数 。使用此值可确保该mongod进程发送的网络流量与期望值和整个应用程序间流量一致
"physicalBytesIn": NumberLong("77786895069"),
"physicalBytesOut": NumberLong("273504229448"),
"numRequests": NumberLong("112271508"), # 服务器已收到的不同请求的总数。使用此值为network.bytesIn和network.bytesOut 值提供上下文, 以确保MongoDB的网络利用率与期望和应用程序使用一致
"compression": {
"snappy": {
"compressor": {
"bytesIn": NumberLong("112019679714"),
"bytesOut": NumberLong("43319161087")
},
"decompressor": {
"bytesIn": NumberLong("32878177071"),
"bytesOut": NumberLong("53090243207")
}
},
"zstd": {
"compressor": {
"bytesIn": NumberLong("0"),
"bytesOut": NumberLong("0")
},
"decompressor": {
"bytesIn": NumberLong("0"),
"bytesOut": NumberLong("0")
}
},
"zlib": {
"compressor": {
"bytesIn": NumberLong("0"),
"bytesOut": NumberLong("0")
},
"decompressor": {
"bytesIn": NumberLong("0"),
"bytesOut": NumberLong("0")
}
}
},
"serviceExecutorTaskStats": {
"executor": "passthrough",
"threadsRunning": NumberInt("45")
}
},
# 实例的操作延迟
"opLatencies": {
"reads": { # 读请求的延迟统计信息
"latency": NumberLong("790381679186"),
"ops": NumberLong("34544821")
},
"writes": { # 写操作的延迟统计信息
"latency": NumberLong("32984480609"),
"ops": NumberLong("9472437")
},
"commands": { # 数据库命令的延迟统计信息
"latency": NumberLong("6323105420"),
"ops": NumberLong("68254248")
},
"transactions": { # 事务的延迟统计信息
"latency": NumberLong("13406008070"),
"ops": NumberLong("40833")
}
},
# 报告自上次启动以来对mongod实例查询操作指定 的读取关注级别的文档
"opReadConcernCounters": {
"available": NumberLong("0"), # 指定读取关注级别"available"的查询操作数
"linearizable": NumberLong("0"), # 指定读取关注级别"linearizable"的查询操作数
"local": NumberLong("0"), # 指定读取关注级别"local"的查询操作数
"majority": NumberLong("0"), # 指定读取关注级别"majority"的查询操作数
"snapshot": NumberLong("4"), # 指定读取关注级别"snapshot"的查询操作数
"none": NumberLong("12334969") # 未指定读取关注级别的查询操作数,而是使用默认读取关注级别
},
# 报告自上次启动以来特定write concerns 下mongod实例的写入操作的文档
# opWriteConcernCounters
"wmajority": 指定w: "majority"的插入操作数
"wnum": 指定w: <num>的插入操作数。计数按<num>具体分组
"wtag": 指定w: <tag>的插入操作数。计数按<tag>具体分组
"none": 未指定w值的插入操作数。这些操作使用w默认值1
# 自mongod上次启动实例以来, 按数据库操作类型报告的文档
"opcounters": {
"insert": NumberLong("31357950"), # 自上次启动mongod实例以来收到的插入操作总数
"query": NumberLong("12334973"), # 自上次启动mongod实例以来收到的查询总数
"update": NumberLong("8150111"), # 自上次启动mongod实例以来收到的更新操作总数
"delete": NumberLong("99731"), # 自上次启动mongod实例以来的删除操作总数
"getmore": NumberLong("18278216"),# 自上次启动mongod实例以来“getmore”(从游标获取数据)操作的总数。即使查询数目较低,此计数器也可能很高。作为复制进程的一部分,Secondary节点将发送 getMore操作
"command": NumberLong("72401180") # 自mongod上次启动实例以来向数据库发出的命令总数
},
# 自上次启动mongod实例以来按类型报告数据库复制操作的文档。当前主机是副本集的成员时才会显示这些值。
"opcountersRepl": {
"insert": NumberLong("0"), # 自上次启动mongod实例以来复制插入操作的总数
"query": NumberLong("0"), # 自上次启动mongod实例以来复制查询的总数
"update": NumberLong("0"), # 自上次启动mongod实例以来复制更新操作总数
"delete": NumberLong("0"), # 自上次启动mongod实例以来复制的删除操作总数
"getmore": NumberLong("0"),# 自上次启动mongod实例以来“getmore”操作的总数。即使查询数目较低,此计数器也可能很高。作为复制进程的一部分,secondary节点发送getMore操作
"command": NumberLong("0") # 自上次启动mongod实例以来发送到数据库的复制命令总数
},
# oplog 删除的报告
"oplogTruncation": {
"totalTimeProcessingMicros": NumberLong("1137"), # 扫描或采样oplog以确定oplog清理点所花费的总时间(以微秒为单位)
"processingMethod": "scanning", # 启动时用于确定oplog截断点的方法。该值可以是"sampling"或"scanning"
"totalTimeTruncatingMicros": NumberLong("10465465"), # 执行oplog清理所花费的累积时间(以微秒为单位)
"truncateCount": NumberLong("197") # 清理的次数
},
# 复制集群的信息
# repl
# 存储引擎信息
"storageEngine": {
"name": "wiredTiger",
"supportsCommittedReads": true,
"oldestRequiredTimestampForCrashRecovery": Timestamp(1600223710, 1),
"supportsPendingDrops": true,
"dropPendingIdents": NumberLong("0"),
"supportsSnapshotReadConcern": true,
"readOnly": false,
"persistent": true,
"backupCursorOpen": false
},
# 包含有关可重试写入和 多文档事务的数据的文档
"transactions": {
"retriedCommandsCount": NumberLong("0"), # 相应的可重试写入命令已经提交之后收到的重试总数。也就是说,即使写入已成功并且在config.transactions 集合中存在的事务和会话的关联记录,可重试写入继续尝试,例如客户端的初始写入响应丢失。
"retriedStatementsCount": NumberLong("0"),
"transactionsCollectionWriteCount": NumberLong("860856"),
"currentActive": NumberLong("0"),
"currentInactive": NumberLong("0"),
"currentOpen": NumberLong("0"),
"totalAborted": NumberLong("753"),
"totalCommitted": NumberLong("40080"),
"totalStarted": NumberLong("40833"),
"totalPrepared": NumberLong("0"),
"totalPreparedThenCommitted": NumberLong("0"),
"totalPreparedThenAborted": NumberLong("0"),
"currentPrepared": NumberLong("0"),
"lastCommittedTransaction": {
"operationCount": NumberLong("2"),
"oplogOperationBytes": NumberLong("1731"),
"writeConcern": { }
}
},
其他请参考官方文档:https://docs.mongodb.com/v4.2/reference/command/serverStatus/