Category 皮肤鉴赏馆

这是 MongoDB 监控系列文章的第八篇,前面几篇文章的链接如下:

MongoDB 监控(一)

MongoDB 监控(二)

MongoDB 监控(三)

MongoDB 监控(四)

MongoDB 监控(五)

MongoDB 监控(六)

MongoDB 监控(七)

上一篇文章我们大概浏览了 MongoDB 的 Grafana 仪表盘,从仪表盘中大概了解到了一些较为关键的指标。实际还有另一个方法来辅助我们获知哪些信息较为重要,就是使用 mongostat 命令。mongostat 命令是类似 vmstat 的工具,可以实时查看 MongoDB 的运行状态,包括连接数、查询数、更新数、删除数、命中数、未命中数等等。我们看看 mongostat 的输出中包含哪些指标,就能知道哪些指标比较关键。

mongostat 命令的输出

使用如下命令可以启动 mongostat 命令,连到某个 MongoDB 实例:

mongostat -u username -p password --host 10.99.1.110 --port 27017 --authenticationDatabase admin

上面的命令中,-u 是用户名,-p 是密码,--host 是 MongoDB 实例的 IP 地址,--port 是 MongoDB 实例的端口号,--authenticationDatabase 是认证数据库。换成你自己的认证信息。mongostat 的输出如下:

insert query update delete getmore command dirty used flushes vsize res qrw arw net_in net_out conn time

*0 *0 *0 *0 0 4|0 0.1% 14.9% 0 2.17G 607M 0|0 0|0 416b 58.5k 134 Nov 15 17:49:13.871

*0 *0 *0 *0 0 5|0 0.1% 14.9% 0 2.17G 607M 0|0 0|0 533b 59.3k 134 Nov 15 17:49:14.869

*0 *0 *0 *0 0 4|0 0.1% 14.9% 0 2.17G 607M 0|0 0|0 612b 58.6k 134 Nov 15 17:49:15.879

*0 *0 *0 *0 0 1|0 0.1% 14.9% 0 2.17G 607M 0|0 0|0 113b 58.9k 134 Nov 15 17:49:16.861

*0 *0 *0 *0 0 1|0 0.1% 14.9% 0 2.17G 607M 0|0 0|0 259b 58.1k 134 Nov 15 17:49:17.862

*0 *0 *0 *0 0 2|0 0.1% 14.9% 0 2.17G 607M 0|0 0|0 311b 56.6k 134 Nov 15 17:49:18.897

*0 *0 *0 *0 0 75|0 0.1% 14.9% 0 2.17G 607M 0|0 0|0 15.7k 228k 134 Nov 15 17:49:19.948

*0 *0 *0 *0 0 0|0 0.1% 14.9% 0 2.17G 607M 0|0 0|0 111b 57.6k 134 Nov 15 17:49:20.953

*0 *0 *0 *0 0 1|0 0.1% 14.9% 0 2.17G 607M 0|0 0|0 123b 63.6k 134 Nov 15 17:49:21.864

*0 3 *0 *0 0 6|0 0.1% 14.9% 0 2.17G 607M 0|0 0|0 2.08k 78.1k 134 Nov 15 17:49:22.860

默认 mongostat 每秒采集一次数据,当然你可以调整采集频率,通过 mongostat --help 可以看到有哪些选型可以调整。mongostat 输出的各个字段的含义有:

insert:每秒插入数据库的对象数,如果后面跟着星号(*),则该数据指的是复制操作。

query:每秒执行查询的次数。

update:每秒执行更新的次数。

delete:每秒执行删除的次数。

getmore:每秒执行 getmore(即光标批处理)操作的次数。

command:每秒执行命令的次数。在一个 secondary 节点,会展示两个值,用竖线分隔,前面的值是在本地执行的命令数,后面的值是复制执行的命令数。

dirty:只用于 WiredTiger 存储引擎(这是现在通常使用的存储引擎),WiredTiger cache 中的脏数据的百分比。计算方法是 wiredTiger.cache.tracked dirty bytes in the cache / wiredTiger.cache.maximum bytes configured

used:只用于 WiredTiger 存储引擎,表示 WiredTiger cache 中已使用数据的百分比。计算方法是 wiredTiger.cache.bytes currently in the cache / wiredTiger.cache.maximum bytes configured

flushes:只用于 WiredTiger 存储引擎,表示在上个轮询周期内触发了多少次 checkpoint。

vsize:虚拟内存的大小。

res:常驻内存大小。

qrw:读写操作的队列长度。

arw:活跃读写操作次数。

net_in:每秒接收的字节数。包括了 mongostat 本身触发的网络流量。

net_out:每秒发送的字节数。包括了 mongostat 本身触发的网络流量。

conn:当前打开的连接数。

time:采集时间。

set:如果有的话,表示副本集的名字。

repl:如果有的话,表示当前实例的副本集状态。repl 的可能取值如下

PRI: primary

SEC: secondary

REC: recovering

UNK: unknown

RTR: mongos process (“router”)

ARB: arbiter

总结

mongostat 命令可以实时查看 MongoDB 的运行状态,从 mongostat 的输出中可以看到哪些信息比较关键,概括来看,主要是实例增删改查的次数、缓存的使用情况、网络流量、队列长度、连接数、副本集状态等等。如果我们要制作 MongoDB 监控仪表盘,mongostat 输出的这些信息就是我们必须要放到仪表盘上的指标。

top
Copyright © 2088 英雄新物攻略库 - MOBA游戏活动智库 All Rights Reserved.
友情链接