美文网首页
MongoDB常用工具介绍

MongoDB常用工具介绍

作者: 唯爱熊 | 来源:发表于2019-12-26 22:02 被阅读0次

    一.命令介绍

    mongod          #启动命令
    mongo           #登录命令         
    mongodump       #备份导出,全备压缩
    mongorestore    #恢复
    mongoexport     #备份,数据可读json
    mongoimport     #恢复
    mongostat       #查看mongo运行状态
    mongotop        #查看mongo运行状态
    mongos          #集群分片命令
    

    二.mongdb排查工具详解

    #mongostat
    [root@mongodb01 ~]# mongostat --port 28019
    insert query update delete getmore command dirty used flushes vsize   res qrw arw net_in net_out conn set repl                time
        *0    *0     *0     *0       2     6|0  0.2% 0.3%       0 1.51G 61.0M 0|0 1|0  4.70k   71.5k   23 dba  PRI Dec 26 21:54:43.689
        *0    *0     *0     *0       0     4|0  0.2% 0.3%       0 1.51G 61.0M 0|0 1|0   678b   69.0k   23 dba  PRI Dec 26 21:54:44.688
        *0    *0     *0     *0       0     4|0  0.2% 0.3%       0 1.51G 61.0M 0|0 1|0   576b   69.1k   23 dba  PRI Dec 26 21:54:45.687
        *0    *0     *0     *0       0     4|0  0.2% 0.3%       0 1.51G 61.0M 0|0 1|0   679b   69.1k   23 dba  PRI Dec 26 21:54:46.685
        *0    *0     *0     *0       0     3|0  0.2% 0.3%       0 1.51G 61.0M 0|0 1|0   574b   68.8k   23 dba  PRI Dec 26 21:54:47.688
        *0    *0     *0     *0       5     9|0  0.2% 0.3%       0 1.51G 61.0M 0|0 1|0  8.93k   74.7k   23 dba  PRI Dec 26 21:54:48.693
        *0    *0     *0     *0       0     4|0  0.2% 0.3%       0 1.51G 61.0M 0|0 1|0   582b   69.8k   23 dba  PRI Dec 26 21:54:49.682
    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以下,基本满足多数场景
    #mongotop
    [root@mongodb01 ~]# mongotop --port 28019
    2019-12-26T21:55:25.133+0800    connected to: 127.0.0.1:28019
    
                        ns    total    read    write    2019-12-26T21:55:26+08:00
            local.oplog.rs      1ms     1ms      0ms                             
         admin.system.keys      0ms     0ms      0ms                             
        admin.system.roles      0ms     0ms      0ms                             
      admin.system.version      0ms     0ms      0ms                             
             backup.backup      0ms     0ms      0ms                             
           backup.oplog.rs      0ms     0ms      0ms                             
    config.system.sessions      0ms     0ms      0ms                             
       config.transactions      0ms     0ms      0ms                             
    local.replset.election      0ms     0ms      0ms                             
    local.replset.minvalid      0ms     0ms      0ms                             
    
    

    相关文章

      网友评论

          本文标题:MongoDB常用工具介绍

          本文链接:https://www.haomeiwen.com/subject/qqzloctx.html