前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【最佳实践】巡检项:云数据库(MongoDB)CPU 使用率

【最佳实践】巡检项:云数据库(MongoDB)CPU 使用率

原创
作者头像
ivesjiang@DBA
修改2022-04-13 18:09:47
9000
修改2022-04-13 18:09:47
举报
文章被收录于专栏:腾讯云顾问

问题描述

检查腾讯云数据库 MySQL 实例的 CPU 使用率情况,如果MongoDB实例的CPU使⽤率过⾼,会导致MonogoDB响应缓慢,甚⾄业务不可⽤。

解决方案

CPU 使用率高一般是多种问题综合影响的,一般可以按照如下顺序进行排查:

  1. 慢查询堆积。
  2. 业务高峰期,请求量突增,出现过量的并发。

针对慢查询堆积:

1、优化处理慢查询

方式一:选择数据库管理 > 慢查询管理页,列表会展示当前实例正在执行的请求(包括从节点的请求),您可单击批量Kill对慢查询语句进行 Kill 操作。

慢查询管理
慢查询管理

方式二:选择慢日志查询页,您可以浏览分析慢日志,系统会记录执行时间超过100毫秒的操作,慢日志保留时间为7天。

抽象查询:代表是经过对查询条件的模糊处理后的统计值,这里可以看到按平均执行时长排序的慢查询统计,我们建议先优化top5的请求。

慢查询查询
慢查询查询

具体查询:代表是记录完整的用户执行请求,包括执行计划,扫描的行数,执行时长,锁等待的一些信息。

请关注:command、COLLSCAN、IXSCAN、keysExamined、docsExamined 等关键字 需注意的关键字如下:

  • command 指出慢日志中记录的操作。
  • COLLSCAN 代表该查询进行了全表扫描(全表扫描说明没有用上索引,或者优化器认为索引扫描的效率更低),IXSCAN 代表进行了索引扫描。
  • keysExamined 代表索引扫描条目,docsExamined 代表文档扫描条目。keysExamined 和 docsExamined 越大代表没有建索引或者索引的区分度不高。请确认索引的创建字段

针对并发过大的场景

这里如果业务侧没有特别慢的请求,引起CPU占用高的可能原因为业务并发过⾼。如果是并发过⾼导致了CPU占用高的问题,在云数据库MongoDB可以通过扩容CPU来解决:

1、通过升级配置来增加云数据库的读写能力

  • 登录 MongoDB 控制台
  • 在左侧导航栏 MongoDB 的下拉列表中,选择副本集实例或者分片实例。 副本集实例与分片实例操作类似。
  • 在右侧实例列表页面上方,选择地域。
  • 在实例列表中,找到目标实例。
  • 在目标实例的操作列,在配置调整的下拉列表中,选择配置调整
  • 配置调整页面,可以重新调整节点内存、节点中容量、Oplog 容量。如下图(以分片实例)所示。

2、如果是读多写少,对数据库一致性要求不是十分高的业务场景,可以增加副本个数,当前没有开启副本读,也是开启读从副本,具体参考文档

3、如果是想要扩展写能力,除了升级配置外,也可以通过DTS升级至分片集群,这样可以进一步提升云数据库的读写能力。

注意事项

MongoDB频繁短连接也会导致CPU使用升高,如果日志中发现⼤量包含saslStart的报错信息,如果业务存在这种情况可以优化为长连接来解决。

慢查询堆积的时候也可以通过回滚业务变更,并 kill 掉堆积的慢查询来解决。慢查询优化级数据库问题咨询等方面如需要协助,可以联系通讯云数据库技术专家团队。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 问题描述
  • 解决方案
  • 注意事项
相关产品与服务
云顾问
云顾问(Tencent Cloud Smart Advisor)是一款提供可视化云架构IDE和多个ITOM领域垂直应用的云上治理平台,以“一个平台,多个应用”为产品理念,依托腾讯云海量运维专家经验,助您打造卓越架构,实现便捷、灵活的一站式云上治理。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档