下面是关于“mongodb监控工具mongostat的使用及命令详解”的完整攻略,包含两条示例说明。
mongostat是什么
mongostat是MongoDB自带的用于监控MongoDB服务器状态的命令行工具。它可以以统计数据、表格和图形的形式展示在终端中。通过mongostat,我们可以监控MongoDB服务器的常见性能指标、进程、连接、锁、操作等情况。
命令格式
mongostat的命令格式如下:
mongostat [options] [sleepTime [iterations]]
其中,options
是命令的选项参数,sleepTime
指定了每次更新之间的时间间隔(秒),iterations
则指定了mongostat输出的次数。
常用选项参数
如下是mongostat常用的选项参数,更多设计参数请查阅MongoDB官网:
-h/--host
:指定MongoDB服务器的主机名和端口-u/--username
:指定登录MongoDB服务器的用户名-p/--password
:指定登录MongoDB服务器的密码-a/--authenticationDatabase
:指定登录MongoDB服务器的身份验证数据库-n/--noheaders
:关闭表格输出的表头-F/--format
:以指定的格式输出数据,支持表格、CSV、JSON、TSV四种输出格式-c/--rowcount
:指定表格输出的行数-i/--iso8601
:时间戳使用ISO 8601格式-t/--tcpkeepalive
:启用TCP keepalive选项-V/--version
:输出mongostat的版本信息-?/--help
:输出mongostat的帮助信息
示例一:使用mongostat输出MongoDB服务器性能指标
我们可以使用mongostat命令来监控数据服务器的性能指标。使用如下命令:
mongostat -h 127.0.0.1:27017
执行后,可以看到输出形如:
insert query update delete getmore command dirty used flushes vsize res qrw arw netin netout conn time
0 0 0 0 0 1 0 0.0% 1.8% 0 0|0 0|0 1.57b 948.4m 1 11:20:43
1 0 1 0 0 1 0 0.0% 1.8% 0 0|0 0|0 1.57b 948.4m 1 11:20:44
1 0 1 0 0 1 0 0.0% 1.8% 0 0|0 0|0 1.57b 948.4m 1 11:20:45
...
其中,每个列名代表的值的含义如下:
insert
:每秒钟插入数目query
:每秒钟查询数目update
:每秒钟更新数目delete
:每秒钟删除数目getmore
:每秒钟获取更多指令的数目command
:每秒钟运行的命令数目dirty
:MongoDB实例中脏页所占用的百分比used
:MongoDB数据文件中使用的百分比flushes
:每秒刷回磁盘的大小vsize
:mongod进程的虚拟内存大小(单位:字节)res
:mongod进程在物理内存中占用的大小(单位:字节)qrw
:每秒行读写数arw
:每秒活跃读写数netin
:每秒钟从客户端接收的数据大小(单位:比特)netout
:每秒钟发送到客户端的数据大小(单位:比特)conn
:当前连接数
使用-n/--noheaders
选项可以取消表头输出。使用-F/--format
选项可以输出指定格式的数据。
示例二:使用mongostat查看MongoDB连接信息
我们可以通过mongostat查看MongoDB连接情况。使用如下命令:
mongostat --host example.com:27017 --ssl --username user --password pass --authenticationDatabase admin --humanReadable --discover
执行后,可以看到输出形如:
host open conn used|l used|r res | qrw arw netIn netOut cmd | query update insert delete qr|qw ar|aw arw|qrw awaited h
example.com:27017 554 538 .7 .8 5.53 | 15 0 94k 25k 0 | 2 3 1 0 0|0 0|0 0|15 0 0:02:20
example.com:27017 554 538 .6 .7 5.53 | 15 0 94k 25k 0 | 2 3 1 0 0|0 0|0 0|15 0 0:02:21
example.com:27017 554 538 .6 .9 5.53 | 15 0 94k 25k 0 | 2 3 1 0 0|0 0|0 0|15 0 0:02:22
...
其中,每个列名的含义如下:
host
:MongoDB服务器的主机名和端口open
:MongoDB服务器打开的连接数conn
:MongoDB服务器现有的连接数used|1
:每个连接的读取操作used|2
:每个连接的写入操作res
:服务器响应时间qrw
:每秒行读写数arw
:每秒活跃读写数netIn
:每秒从客户端接收的字节数netOut
:每秒从服务器发送到客户端的字节数cmd
:MongoDB服务器每秒执行的命令数query
:MongoDB服务器每秒执行的查询数update
:MongoDB服务器每秒执行的更新数insert
:MongoDB服务器每秒执行的插入操作数目delete
:MongoDB服务器每秒执行的删除操作数目qr|qw
:客户端请求队列和响应队列的长度ar|aw
:同步阻塞请求和同步阻塞响应的长度arw|qrw
:活跃读写数和行读写数awaited
:在等待的请求数量h
:mongostat输出的时间。
我们可以使用--ssl
选项指定使用SSL连接,使用--username
、--password
选项指定用户名和密码登录MongoDB服务器,使用--authenticationDatabase
选项指定身份验证数据库,使用--discover
选项自动发现MongoDB服务器。
结论
使用mongostat可以很方便地监控MongoDB服务器的状态,帮助我们快速发现问题并定位解决。在实际使用中,可以根据自己的需求选择不同的选项参数和输出格式。