mtools 工具分析日志
更新时间:2024-03-07 19:06:53
PDF
现象描述
线上环境 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 激增是慢查询导致。