Mongo监控

来源:互联网 发布:c还是java 编辑:程序博客网 时间:2024/05/21 09:58

一. 监控正在执行的操作

    db.currentOp();

    opid: 唯一标识符

    active: 操作是否在运行

    secs_running: 操作已经运行的时间

    locks: 使用的锁类型,^表示全局锁

可以传入查询条件进行查询,比如耗时大于3s的查询db.currentOp({"secs_running":{"gt":3000}}),终止某一个操作db.killOp(opid).


二. 系统分析器

     使用系统分析器,可以查找耗时过长的操作。如果系统负载本来比较重,建议不要使用。

db.setProfilingLevel(1,500), //级别为1,只显示耗时长的操作,默认是大于100ms。第二参数可以修改这个默认值,这里我们指定的是500ms。如果级别设置为0,是关闭系统分析器,但是关闭了也会记录大于500ms操作的日志。注意,别把默认超时设置很短。


三. mongotop和mongostat

    mongotop 类似linux中的top命令,看哪个集合最繁忙。 mongotop-locks查看锁状态

    mongostat 当前服务器的状态列表

    flushes: mongo将数据刷新到磁盘的次数

    mapped:映射内存数量,约等于数据目录大小

    res: mongo正在使用的内存大小

    idx miss: 多少索引在访问中发生了页中断,索引入口不在内存中,需要从磁盘中进行读取。

    qr|qw: 读写操作的队列大小,有多少读或者写操作被阻塞,等待处理

    ar|aw: 读写操作活动的客户端。

    netin: 网络传输进来的字节数

    netout: 网络输出的字节数

    conn: 服务打开的连接数