• 主页

  • 投资

  • IT

    🔥
  • 设计

  • 销售

关闭

返回栏目

关闭

返回MongoDB栏目

13 - 使用 - 监控 - mongostat、mongotop

作者:

贺及楼

成为作者

更新日期:2024-04-09 13:50:35

使用 - 监控 - mongostat、mongotop

mongostat
mongostat是mongodb自带的状态检测工具,在命令行下使用。它会间隔固定时间获取mongodb的当前运行状态,并输出;进入mongodb\bin执行mongostat命令

mongotop
mongotop也是mongodb下的一个内置工具,跟踪一个MongoDB的实例,查看哪些大量的时间花费在读取和写入数据。 mongotop提供每个集合的水平的统计数据。默认情况下,mongotop返回值的间隔为一秒

进入mongodb\bin执行mongotop命令,可以在后面指定间隔时间

  1. insert/s : 官方解释是每秒插入数据库的对象数量,如果是slave,则数值前有*,则表示复制集操作
  2. query/s : 每秒的查询操作次数
  3. update/s : 每秒的更新操作次数
  4. delete/s : 每秒的删除操作次数
  5. getmore/s: 每秒查询cursor(游标)时的getmore操作数
  6. command: 每秒执行的命令数,在主从系统中会显示两个值(例如 3|0),分表代表 本地|复制 命令
  7. dirty: 仅仅针对WiredTiger引擎
  8. used:仅仅针对WiredTiger引擎,官网解释是正在使用中的缓存百分比
  9. flushes:
  10. For WiredTiger引擎:指checkpoint的触发次数在一个轮询间隔期间
  11. For MMAPv1 引擎:每秒执行fsync将数据写入硬盘的次数
  12. 注:一般都是0,间断性会是1 通过计算两个1之间的间隔时间,可以大致了解多长时间flush一次。flush开销是很大的,如果频繁的flush,可能就要找找原因了
  13. vsize 虚拟内存使用量,单位MB (这是 mongostat 最后一次调用的总数据)
  14. res: 物理内存使用量,单位MB (这是 mongostat 最后一次调用的总数据)
  15. 注:这个和你用top看到的一样, vsize一般不会有大的变动, res会慢慢的上升,如果res经常突然下降,去查查是否有别的程序狂吃内存。
  16. qr: 客户端等待从MongoDB实例读数据的队列长度
  17. qw: 客户端等待从MongoDB实例写入数据的队列长度
  18. ar: 执行读操作的活跃客户端数量
  19. aw: 执行写操作的活客户端数量
  20. 注:如果这两个数值很大,那么就是DB被堵住了,DB的处理速度不及请求速度。看看是否有开销很大的慢查询。如果查询一切正常,确实是负载很大,就需要加机器了
  21. netIn:MongoDB实例的网络进流量
  22. netOutMongoDB实例的网络出流量
  23. 注:此两项字段表名网络带宽压力,一般情况下,不会成为瓶颈
  24. conn: 打开连接的总数,是qr,qw,ar,aw的总和
  25. 注:MongoDB为每一个连接创建一个线程,线程的创建与释放也会有开销,所以尽量要适当配置连接数的启动参数,maxIncomingConnections,阿里工程师建议在5000以下,基本满足多数场景