MongoDB是一个流行的开源文档型数据库系统,以其灵活性和高性能而受到广泛的采用。在管理和优化MongoDB实例时,监控其运行状态是至关重要的。mongodb-stat
命令是MongoDB提供的一个实用工具,用于实时查看数据库的性能指标。通过这个命令,我们可以了解数据库的插入、查询、更新、删除等操作的频率,以及内存使用、磁盘写入、索引命中率等关键信息。
-
监控项说明
-
insert: 显示每秒插入到集合中的文档数量。
- query: 指示每秒执行的查询操作数。
- update: 表示每秒执行的更新操作数。
- delete: 显示每秒删除的文档数。
- getmore: 每秒执行的
getmore
操作次数,通常与分页查询相关。 - command/s: 统计每秒执行的所有命令,包括但不限于上述的插入、查询、更新和删除。
- flushes/s: 每秒执行的
fsync
操作次数,确保数据被持久化到磁盘。 - mapped/s: 显示所有通过内存映射的数据总量(MB)。
- vsize: 虚拟内存的总使用量(MB)。
- res: 物理内存使用量(MB)。
- faults/s: 每秒的页面错误(页失效)次数,当数据从内存交换到交换空间时发生。
- locked %: 数据库被锁定的时间百分比,应尽量保持在较低水平以避免阻塞。
- idx miss %: 索引未命中的百分比,如果过高可能需要检查索引设置。
- q t|r|w: 队列长度信息,分别代表总的、读操作和写操作的队列长度。
- conn: 当前连接到MongoDB实例的客户端连接数。
-
time: 输出的时间戳。
-
web控制台监控
MongoDB还提供了一个基于Web的监控界面,监听在端口28017,默认情况下可以通过浏览器访问http://
来查看。此界面提供更直观的图形化展示,包括服务器基本信息、连接状态(如锁类型、等待和查询信息)、各个数据库和集合的访问统计,以及日志信息等。
在监控MongoDB性能时,可以使用mongodb-stat
命令的参数来调整监控的间隔时间和次数,例如./mongostat -n 10 1
表示每秒执行一次监控,总共执行1次。