mongodb监控工具学习之mongostat

对于nosql系列中的mongodb大家应该不陌生了。它自带了一系列监控工具,今天我们来学习第一个监控工具mongostat.
1.简介

mongostat是对当前正在运行mongod或mongos实例状态的快速概览。

mongostat在功能上类似于UNIX/Linux文件系统中的vmstat,只是提供的是关于mongod和mongos实例的数据 。

值得注意的是:

mongostat是在系统命令行中运行,而不是mongo shell中。
2.mongostat选项

--help:返回选项信息和mongostat的用法。

--verbose,-v:增加返回到标准输出或者日志文件中的内部报告的量。直白的说就是详细模式,多个v可以增加更加详细的输出,如-vvvv。

--version:返回mongostat版本号。

--host <:port>, -h <:port>:默认值为:localhost:27017,

指定mongod要连接的可解析主机名,在默认情况下,mongostat尝试连接运行在本地的端口号为27017的MongoDB实例。

备注:如果要连接到一个副本集,可以通过指定一个或多个成员集,

例如:--host <:port>, <:port>,<...>

--port :默认:27017,指定MongoDB实例侦听客户端连接的TCP端口。

--ipv6 :启用IPv6支持,但在3.0版本中弃用了

--ssl:使用mongostat通过TLS/SSL方式连接mongod或mongos。

--sslCAFile :指定一个包含认证授权后的.pem文件,可以是相对路径也可以是绝对路径。

--username , -u :指定开启了安全认证功能的mongodb数据库的用户名,与--password和 --authenticationDatabase选项一起使用。

--password , -p :指定开启了安全认证功能的mongodb数据库的密码,与--password和 --authenticationDatabase选项一起使用。

--authenticationDatabase :指定用户创建的数据库,如果mongod和mongos实例启用了安全认证机制,则--authenticationDatabase就必须要有

--authenticationMechanism :指定认证机制,包含:SCRAM-SHA-1、MONGODB-CR、MONGODB-X509、GSSAPI(Kerberos)、PLAIN(LDAP SASL)

--humanReadable boolean:默认:True,如果为True,则mongostat返回的日期和数量格式更方便阅读。

如果为True,显示如下:

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

    991    *0     *0     *0       0     2|0  3.4% 4.5%       0 2.90G 297M 0|0 0|0  12.9m   84.2k    2    Oct  6 09:45:37.478

    989    *0     *0     *0       0     2|0  3.6% 4.7%       0 2.91G 310M 0|0 0|0  12.9m   84.1k    2    Oct  6 09:45:38.476

    988    *0     *0     *0       0     1|0  3.7% 4.8%       0 2.92G 323M 0|0 0|0  12.8m   83.8k    2    Oct  6 09:45:39.481

    976    *0     *0     *0       0     2|0  3.9% 5.0%       0 2.94G 335M 0|0 0|0  12.7m   83.7k    2    Oct  6 09:45:40.476

如果为False,则显示如下:

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

992    *0     *0     *0       0     2|0   1.3  2.4       0 2941255680 149946368 0|0 0|0 12913607   84271    2  2016-10-06T09:45:25-04:00

989    *0     *0     *0       0     1|0   1.5  2.6       0 2974810112 163577856 0|0 0|0 12873225   84087    2  2016-10-06T09:45:26-04:00

996    *0     *0     *0       0     1|0   1.6  2.8       0 2972712960 177209344 0|0 0|0 12955423   84345    2  2016-10-06T09:45:27-04:00

987    *0     *0     *0       0     1|0   1.8  2.9       0 2989490176 190840832 0|0 0|0 12861852   84008    2  2016-10-06T09:45:28-04:00

-o :指定需要返回的字段,如果指定了,mongostat返回的输出结果就仅包含指定字段。使用点符号(.)指定,例如metrics.document.inserted.

使用rate()查看每秒改变速率,使用diff()查看从上一次调用mongostat到现在serverStatus相关字段的变化量

--noheaders:不显示列或字段名称。

--rowcount , -n :控制要输出的行数。与sleeptime参数一起使用来控制mongostat操作的持续时间。

  除非--rowcount指定,否则mongostat 将返回无限数量的行

--discover:当连接到一个副本集中的任何一个成员时,mongostat会发现并显示副本集中其他成员的状态信息

--all:显示所有的字段信息

--json:以JSON格式返回mongostat的输出结果

:在两次调用mongostat之间的时间间隔,也就是mongostat输出结果的间隔时间,默认是每隔一秒输出一次
3.输出字段

insert:每秒插入到数据库中的对象数量,如果跟在一个*后面,表示这是复制操作。

query:每秒查询操作数量。

update:每秒更新操作数量。

delete:每秒删除操作数量。

getmore:每秒get more操作的数量。

command:每秒执行数据库命令操作的数量 。

flushes:对于 MMAPv1存储引擎而言它表示每秒执行fsync操作的数量;对WiredTiger存储引擎而言,它表示在每个轮询间隔之间触发的WiredTiger检查点的数量。

dirty:WiredTiger缓存的脏字节数的百分比,仅适合WiredTiger存储引擎。

mapped:映射数据的总量,以兆字节M表示。这里的数据是从上次mongostat显示到这次的数量。

vsize:最后一次调用mongostat时mongod或mongos进程用掉的虚拟内存,以兆字节M表示。

non-mapped:最后一次mongostat调用时,所有虚拟内存总量(不包括映射内存),仅适合MMAPv1存储引擎。

res:上次调用mongostat时,进程使用的驻留内存量(以兆字节为单位)。

faults:每秒的页面错误数量,仅适用于MMAPv1存储引擎。

locked:mongod进程在全局锁上花销的时间,以百分比表示。

idx miss:表示需要一个页面错误来加载一个Btree节点的索引访问尝试的百分比。

qr:客户端等待从MongoDB实例读操作的队列长度。

qw:客户端等待从MongoDB实例写操作的队列长度。

ar:正在执行读操作的客户端数量。

aw:正在执行写操作的客户端数量。

netIn:MongoDB实例接收到的网络流量,用字节bytes表示,包括mongostat本身连接MongoDB实例产生的流量。

netOut:MongoDB实例发送出去的网络流量,用字节bytes表示,包括mongostat本身连接MongoDB实例产生的流量。

conn:打开的连接数总数。

set:副本集的名称。

repl:副本集的状态:PRI表示是Primary,SEC表示是Secondary,M表示是master,REC表示是recovering,

  UNK表示是unknown,SLV表示是slave,ARB表示是arbiter。

参考地址:https://docs.mongodb.com/manual/reference/program/mongostat/

你可能感兴趣的:(mongodb)