MongoDB是一个流行的开源文档型数据库系统,以其灵活性和高性能而受到广泛的采用。在管理和优化MongoDB实例时,监控其运行状态是至关重要的。mongodb-stat命令是MongoDB提供的一个实用工具,用于实时查看数据库的性能指标。通过这个命令,我们可以了解数据库的插入、查询、更新、删除等操作的频率,以及内存使用、磁盘写入、索引命中率等关键信息。

  1. 监控项说明

  2. insert: 显示每秒插入到集合中的文档数量。

  3. query: 指示每秒执行的查询操作数。
  4. update: 表示每秒执行的更新操作数。
  5. delete: 显示每秒删除的文档数。
  6. getmore: 每秒执行的getmore操作次数,通常与分页查询相关。
  7. command/s: 统计每秒执行的所有命令,包括但不限于上述的插入、查询、更新和删除。
  8. flushes/s: 每秒执行的fsync操作次数,确保数据被持久化到磁盘。
  9. mapped/s: 显示所有通过内存映射的数据总量(MB)。
  10. vsize: 虚拟内存的总使用量(MB)。
  11. res: 物理内存使用量(MB)。
  12. faults/s: 每秒的页面错误(页失效)次数,当数据从内存交换到交换空间时发生。
  13. locked %: 数据库被锁定的时间百分比,应尽量保持在较低水平以避免阻塞。
  14. idx miss %: 索引未命中的百分比,如果过高可能需要检查索引设置。
  15. q t|r|w: 队列长度信息,分别代表总的、读操作和写操作的队列长度。
  16. conn: 当前连接到MongoDB实例的客户端连接数。
  17. time: 输出的时间戳。

  18. web控制台监控

MongoDB还提供了一个基于Web的监控界面,监听在端口28017,默认情况下可以通过浏览器访问http://:28017/来查看。此界面提供更直观的图形化展示,包括服务器基本信息、连接状态(如锁类型、等待和查询信息)、各个数据库和集合的访问统计,以及日志信息等。

在监控MongoDB性能时,可以使用mongodb-stat命令的参数来调整监控的间隔时间和次数,例如./mongostat -n 10 1表示每秒执行一次监控,总共执行1次。