最佳实践

 

mtools 工具分析日志

更新时间 2023-09-06

现象描述

线上环境 CPU 激增,CPU 使用率为 100% , 且持续半小时或更长时间,业务受到影响无法正常工作。

集群状态

  • 连接数正常。
  • 当天业务流量相比前几天增加了10%(多了大概10W条请求)。
  • 内存占用一直维持在 80-90%。

使用 mtools 工具分析日志

使用 mtools 分析工具执行以下查询语句,详细操作请参见 mtools 工具查询日志

  • 查看超过 10s 的查询

    mlogfilter mongod.log --slow 10000 
    
  • 查看所有慢查询并根据频率排序。

    mloginfo mongod.log --queries --sort count
    

业务分析

  • 存在大量慢查询,大量查询超过150s。
  • 大量查询没有使用索引,导致全表扫描。
  • 排序字段没有走索引。
  • 索引设计不合理,利用率低下(比如:扫描 5 万个文档,结果仅返回 0~10 个文档,所以即使走了索引,查询也消耗了100s 左右)。
  • 对某个集合的查询语句不合理,大量的条件重复。
  • 存在上万条 TXN 事务日志。

分析结果

针对日志分析出高频耗时较久的查询集合 A 跟 B,分别在这两张表上创建索引后,CPU 断崖式下降,由此看出 CPU 激增是慢查询导致。

监控

这篇文档解决了您的问题吗?
0
0