首页 > 数据库 > MongoDB > 正文

mongostat怎么使用?一文迅速了解mongostat命令

2024-09-07 00:22:32
字体:
来源:转载
供稿:网友
       文本主要给大家分享的是mongodb监控工具mongostat的使用,很多人可能对于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以下,基本满足多数场景。

(编辑:武林网)

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表