MongoDB数据库在安装包里提供了mongotop和mongostat工具,用于MongoDB数据库性能监控,这里我们来了解一下如何使用。

 

(一)mongotop

mongotop提供了一种跟踪MongoDB实例mongod花费在读写数据上的时间的方法。mongotop提供每个集合级别的统计信息。默认情况下,mongotop每秒返回一次值。可以使用 mongotop [frequency]

// 每隔10s打印一次结果
[root@mongodbserver1 ~]# mongotop --authenticationDatabase admin -uroot -p123456 10


java 获取Prometheus监控mongodb的内存占用及cpu占用 mongodb 性能监控_命名空间

 字段含义:

ns     : 命名空间,包含了数据库名字和集合名字

total  : 在此命名空间上花费的总的时间

read  : 在此命名空间上执行读取操作花费的时间

write : 在此命名空间上执行写操作花费的时间

 

 

 

(二)mongostat

mongostat提供了当前啊正在运行的mongod或mongos实例状态的快速概述。mongostat在此功能上类似于UNIX/Linux的vmstat,但是提供有关mongod和mongos实例的数据。

// mongostat默认每1s打印一次,可以在后面添加数字10,改为10s打印一次 
// mongostat返回1s内操作的值,当mongostat <sleeptime>的值大于1时,mongostat取平均值以反映每秒的平均数。 
[root@mongodbserver1 ~]# mongostat --authenticationDatabase admin -uroot -p123456 10

 

java 获取Prometheus监控mongodb的内存占用及cpu占用 mongodb 性能监控_命名空间_02


// 使用--discover关键字可以打印出集群内的非隐藏节点
[root@mongodbserver1 ~]# mongostat --authenticationDatabase admin -uroot -p123456 --discover

java 获取Prometheus监控mongodb的内存占用及cpu占用 mongodb 性能监控_命名空间_03

 字段含义:

insert           :每秒插入数据库的对象数。如果右面带有*号,则是复制操作

query           :每秒查询操作数

update         :每秒更新操作数

delete          :每秒删除操作数

getmore       :每秒获得更多(即批处理游标)操作数

command    :每秒的命令数,管道字符分隔的2个值代表local | replicated

dirty             :脏数据的占总缓存的百分比。计算公式:wiredTiger.cache.tracked dirty bytes in the cache / wiredTiger.cache.maximum bytes configured

used            :正在使用的WiredTiger缓存的百分比。计算公式:wiredTiger.cache.bytes currently in the cache / wiredTiger.cache.maximum bytes configured

flushes        :每2个轮询间隔之间触发WiredTiger检查点的次数

vsize           :MongoDB正在使用的虚拟内存大小

res              :MongoDB正在使用的内存大小

qr                :等待从MongoDB实例读取数据的客户端队列的长度

qw              :等待从MongoDB实例写入数据的客户端队列的长度

ar                :执行读操作的活动客户端数

aw               :执行写操作的活动客户端数

net_in          :MongoDB接收的网络流量

net_out        :MongoDB发送的网络流量

conn            :打开的连接数

set               :副本集的名称

repl              :副本集成员的复制状态。

                             -- M : master

                          -- SEC : secondary

        -- REC : recovering

        -- UNK : unknown

        -- RTR : mongos process("router")

        -- ARB : arbiter