1、Mongostat命令简介
Mongostat是mongodb自带的状态检测工具,在命令行下使用。它会间隔固定时间获取mongodb的当前运行状态,并输出。如果发现数据库突然变慢或者有其他问题的话,第一手的操作就要考虑采用mongostat来查看mongo的状态。
2、帮助命令及参数说明
[root@ggtest1 bin]# mongostat –help
--version 返回mongostat的版本信息
--verbose,-v详细模式,多个v可以增加详细输出,如-vvvv --host:默认情况下,mongostat会尝试连接本机的27017端口。
--port 指定端口
--ssl 使用mongostat通过SSL方式连接mongod
--username,-u 指定连接的用户名
--password,-p 指定连接的用户密码 这里需要注意的是,如果mongod是以认证方式启动的,即加了--auth参数。指定的用户必须要有执行数据库命令serverStatus的权限才行。
--authenticationDatabase 指定用户认证的库
--authenticationMechanism 指定认证机制
--noheaders 不显示行或列名称
--rowcount, -n指定显示行数,可以和sleeptime一起使用 如 mongostat -vvvvv --port 28018 --noheaders --rowcount 10 3
--discover 当连接到一个replica set中的任何一个成员时,mongostat会发现并显示replica set其他成员的状态信息
--all 显示所有的字段信息
mongostat 输出结果的间隔时间,默认是每隔一秒输出一次
3、mongostat命令用法:
启动Mongod服务,进入到安装MongoDB目录下的bin目录, 然后输入mongostat命令,如下所示:
[root@ggtest1 bin]# mongostat -h localhost:27018
insert query update delete getmore command % dirty % used flushes vsize res qr|qw ar|aw netIn netOut conn set repl time
*0 *0 *0 *0 0 1|0 0.0 0.1 0 826.0M 53.0M 0|0 0|0 79b 19k 3 testrs PRI 2016-10-28T14:32:15+08:00
*0 *0 *0 *0 0 1|0 0.0 0.1 0 826.0M 53.0M 0|0 0|0 79b 19k 3 testrs PRI 2016-10-28T14:32:16+08:00
*0 *0 *0 *0 0 3|0 0.0 0.1 0 826.0M 53.0M 0|0 0|0 408b 19k 3 testrs PRI 2016-10-28T14:32:17+08:00
*0 *0 *0 *0 0 1|0 0.0 0.1 1 826.0M 53.0M 0|0 0|0 79b 19k 3 testrs PRI 2016-10-28T14:32:18+08:00
*0 *0 *0 *0 0 1|0 0.0 0.1 0 826.0M 53.0M 0|0 0|0 79b 19k 3 testrs PRI 2016-10-28T14:32:19+08:00
*0 *0 *0 *0 0 1|0 0.0 0.1 0 826.0M 53.0M 0|0 0|0 79b 19k 3 testrs PRI 2016-10-28T14:32:20+08:00
*0 *0 *0 *0 0 1|0 0.0 0.1 0 826.0M 53.0M 0|0 0|0 79b 19k 3 testrs PRI 2016-10-28T14:32:21+08:00
*0 *0 *0 *0 0 3|0 0.0 0.1 0 826.0M 53.0M 0|0 0|0 408b 19k 3 testrs PRI 2016-10-28T14:32:22+08:00
*0 *0 *0 *0 0 1|0 0.0 0.1 0 826.0M 53.0M 0|0 0|0 79b 19k 3 testrs PRI 2016-10-28T14:32:23+08:00
*0 *0 *0 *0 0 1|0 0.0 0.1 0 826.0M 53.0M 0|0 0|0 79b 19k 3 testrs PRI 2016-10-28T14:32:24+08:00
[root@ggtest1 bin]# mongostat -h localhost:27018 --rowcount 20 1
注:mongostat将返回数据的每一秒,持续20秒。
[root@ggtest1 bin]# mongostat -h localhost:27018 –discover
注:在许多情况下,使用 -discover将帮助整组机器的状态,提供更完整的快照。如果Mongos的过程中,连接到一个片式集群上运行在本地机器上的端口27018,你可以使用上面的形式从集群中的所有成员返回统计。
4、输出字段说明:
insert 表示每秒插入数据库的对象数量,如果跟在一个*后面,表示这是复制操作
query 每秒查询操作数量
update 每秒更新操作数量
delete 每秒删除操作数量
getmore 每秒get more操作的数量
command 每秒执行数据库命令操作的数量(比如插入、查找、更新、删除等等)
flushes 每秒执行fsync操作的数量
mapped 映射数据的总量,以兆字节M表示。这里的数据是从上次mongostat显示到这次的数量
vsize mongod或mongos进程用掉的虚拟内存,以兆字节M表示
locked db 这里的值表示当前列出的数据库在锁定状态上花销的时间加上mongod进程在全局锁上花销的时间,以百分比表示
idx miss 表示需要一个页面错误来加载一个Btree节点的索引访问尝试的百分比
qr 客户端等待从MongoDB实例读操作的队列长度
qw 客户端等待从MongoDB实例写操作的队列长度
ar 正在执行读操作的客户端数量
aw 正在执行写操作的客户端数量
netIn MongoDB实例接收到的网络流量,用字节bytes表示,包括mongostat本身连接MongoDB实例产生的流量
netOut MongoDB实例发送出去的网络流量,用字节bytes表示,包括mongostat本身连接MongoDB实例产生的流量
conn 打开的连接数总数
set replica set的名称
repl replica set的状态 PRI 表示是Primary,SEC表示是Secondary
參考連結 :
MongoDB性能监控(1)—mongostat监控命令 | 大中华官方唯一支持 - mongodb - 官方 - mongodb论坛