MongoDB数据库在安装包里提供了mongotop和mongostat工具,用于MongoDB数据库性能监控,这里我们来了解一下如何使用。
(一)mongotop
mongotop提供了一种跟踪MongoDB实例mongod花费在读写数据上的时间的方法。mongotop提供每个集合级别的统计信息。默认情况下,mongotop每秒返回一次值。可以使用
mongotop [frequency] 来控制频率,单位为秒。
// 每隔10s打印一次结果
[root@mongodbserver1 ~]# mongotop --authenticationDatabase admin -uroot -p123456 10
字段含义:
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
// 使用--discover关键字可以打印出集群内的非隐藏节点
[root@mongodbserver1 ~]# mongostat --authenticationDatabase admin -uroot -p123456 --discover
字段含义:
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