云数据库 MongoDB CPU 使用率偏高解决方法

日常运维,登录 MongoDB 控制台,单击实例 ID 进入实例详情页面,选择系统监控页签,检查实例的监控指标详情,发现数据库 CPU 监控类 指标明显持续偏高。
。

相关产品
云数据库 MongoDB 产品页,含版本规格、价格与购买入口。

一、问题描述

日常运维,登录 MongoDB 控制台,单击实例 ID 进入实例详情页面,选择系统监控页签,检查实例的监控指标详情,发现数据库 CPU 监控类 指标明显持续偏高。


二、原因分析及解决方法

序号 可能原因 原因分析 排查方法 解决方法
1 频繁建立短连接 实例大量资源消耗在处理频繁短连接上,引起 CPU 使用率较高,连接数较高,然而 QPS(集群每秒访问次数)未达到预期。 借助数据库智能管家 DBbrain 的诊断优化功能,分析数据库实例的实时会话统计视图及数据,确认是否存在连接数突增的现象。具体查询方式,请参见 实时会话。 将短连接调整为长连接,不同语言类型的更多参数信息,请参见 MongoDB 页面。
2 业务侧存在较多非预期的请求耗时较长 非预想的请求较多,或者被恶意请求,可能会导致 CPU 资源过度浪费。 请借助数据库智能管家(TencentDB for DBbrain,DBbrain)的诊断优化功能,在实时会话页面,排查业务侧所有连接的客户端请求,是否为业务实际真实所需。 对于非预期的请求,可在数据库智能管家
(TencentDB for DBbrain,DBbrain)的
诊断优化中,在实时会话页面,直接进行 Kill 操作,进行清理。具体操作,请参见 实时会话。在数据库智能管家(TencentDB for DBbrain,DBbrain)的诊断优化中,在SQL 限流页面,创建 SQL 限流任务,自主设置 SQL 类型、最大并发数、限流时间、SQL 关键词,来控制数据库的请求访问量和 SQL 并发量,从而达到服务的可用性。具体操作及应用案例,请参见 SQL限流。
3 存在高复杂的请求 高复杂的请求,可能因为如下原因导致 CPU 资源过度消耗。排序操作:在查询过程中进行排序,本身将消耗较大 CPU资源。全表扫描:若数据库没有使用索引,请求将可能进行全表扫描,对 CPU 和 IO 资源造成较大的压力,从而导致性能下降。不合理的索引:可能会因为覆盖的字段不足,索引字段的顺序不合理,而导致大量的物理读和逻辑读,占有较多 CPU 资源 高复杂的查询请求,通常比较耗时,会相应产生慢日志。可借助数据库智能管家 DBbrain 的诊断优化功能进行慢日志分析,在慢日志信息列表中,查看是否存在相关的关键字。具体操作,请参见 慢 SQL 分析。排序相关关键字:Sort、hasSortStage
等。全表扫描关键字COLLSCAN:说明该查询进行了全表扫描。docsExamined:代表文档扫描条目。docsExamined 值越大,扫描的文档条目就越多,消耗 CPU 资源越多。不合理索引关键字IXSCAN:代表进行了索引扫描。keysExamined:指明索引扫描条目。keysExamined 值越大,扫描的条目就越多,消耗CPU资源越多。
针对慢查询,请进行索引优化。可借助数据库智能管家(TencentDB for DBbrain,DBbrain)索引推荐 ,选择最优的索引。请参见最佳实践 索引优化解决读写性能瓶颈,提升数据库性能。
4    
5    
6 业务上涨,资源不足 业务量上涨,数据规模增长,当前实例的 CPU 规格不足。 登录 MongoDB 控制台,单击实例 ID 进入实例详情页面,选择系统监控页签,查看实例总请求指标 QPS,查看节点每秒被请求的次数是否明显偏高。 调整实例配置规格。Mongod 节点:提升Mongod 的 CPU 与内存配置。具体信息,请参见 变更 Mongod 节点配置规格。Mongos 节点:如果 Mongos 达到瓶颈,请提升 Mongos 的节点规格,或增加 Mongos 数量。具体操作,请参见 变更 Mongos 节点配置规格 与 新增 Mongos 节点 。
赞 (0)
上一篇 4天前
下一篇 4天前