如何在mongodb中使用mongostat监控工具

61次阅读
没有评论

共计 1520 个字符,预计需要花费 4 分钟才能阅读完成。

自动写代码机器人,免费开通

如何在 mongodb 中使用 mongostat 监控工具?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

mongostat 是 mongodb 自带的状态检测工具,在命令行下使用,会间隔固定时间获取 mongodb 的当前运行状态,并输出。

1、mongostat 常用命令格式:

mongostat –host 192.168.11.11:27017 –username root –password 12345678 –authenticationDatabase admin

mongostat 参数说明:

–host : 指定 IP 地址和端口,也可以只写 IP,然后使用 –port 参数指定端口号
–username:如果开启了认证,则需要在其后填写用户名
–password : 不用多少,肯定是密码
–authenticationDatabase:若开启了认证,则需要在此参数后填写认证库(注意是认证上述账号的数据库)

命令输出格式

2、各字段解释说明:

insert/s : 官方解释是每秒插入数据库的对象数量,如果是 slave,则数值前有 *, 则表示复制集操作
query/s : 每秒的查询操作次数
update/s : 每秒的更新操作次数
delete/s : 每秒的删除操作次数
getmore/s: 每秒查询 cursor(游标) 时的 getmore 操作数
command: 每秒执行的命令数,在主从系统中会显示两个值(例如 3|0), 分表代表 本地 | 复制命令

注:一秒内执行的命令数比如批量插入,只认为是一条命令(所以意义应该不大)

dirty: 仅仅针对 WiredTiger 引擎,官网解释是脏数据字节的缓存百分比
used: 仅仅针对 WiredTiger 引擎,官网解释是正在使用中的缓存百分比

flushes:

For WiredTiger 引擎:指 checkpoint 的触发次数在一个轮询间隔期间
For MMAPv1 引擎:每秒执行 fsync 将数据写入硬盘的次数

注:一般都是 0,间断性会是 1,通过计算两个 1 之间的间隔时间,可以大致了解多长时间 flush 一次。flush 开销是很大的,如果频繁的 flush,可能就要找找原因了

vsize:虚拟内存使用量,单位 MB(这是 在 mongostat 最后一次调用的总数据)
res:  物理内存使用量,单位 MB(这是 在 mongostat 最后一次调用的总数据)

注:这个和你用 top 看到的一样, vsize 一般不会有大的变动,res 会慢慢的上升,如果 res 经常突然下降,去查查是否有别的程序占用大量内存。

qr: 客户端等待从 MongoDB 实例读数据的队列长度
qw:客户端等待从 MongoDB 实例写入数据的队列长度
ar: 执行读操作的活跃客户端数量
aw: 执行写操作的活客户端数量

注:如果这两个数值很大,那么就是 DB 被堵住了,DB 的处理速度不及请求速度。看看是否有开销很大的慢查询。如果查询一切正常,确实是负载很大,就需要加机器了

netIn:MongoDB 实例的网络进流量
netOut:MongoDB 实例的网络出流量

注:此两项字段表名网络带宽压力,一般情况下,不会成为瓶颈

conn: 打开连接的总数,是 qr,qw,ar,aw 的总和

注:MongoDB 为每一个连接创建一个线程,线程的创建与释放也会有开销,所以尽量要适当配置连接数的启动参数,maxIncomingConnections,阿里工程师建议在 5000 以下,基本满足多数场景

看完上述内容,你们掌握如何在 mongodb 中使用 mongostat 监控工具的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注丸趣 TV 行业资讯频道,感谢各位的阅读!

向 AI 问一下细节

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-12-04发表,共计1520字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)