慢sql较多,导致数据库cpu打满,造成系统无法正常使用

简介: 慢sql较多,导致数据库cpu打满,造成系统无法正常使用

故障原因

上午09:13左右钉钉业务报警群出现ice连接数不够和rds的cpu使用率告警,

bug反馈群有客户反馈钉钉版无法登录的情况,查看数据库资源占用情况,发现在

09:10:16开始数据库的cpu使用率达到了100%,一直没有降下来,A进行了一次主备切换,并重启xxx-pro,

重启之后cpu使用率有所下降,但没过多长时间又接近100%,而且一直没有下降,查找慢sql,把其中发生次数最多的慢sql的调用入口做了访问屏蔽,A再次做了主备切换并重启xxx-pro服务,cpu降到60左右,

系统恢复正常访问,本次故障的原因为慢sql较多,导致数据库cpu打满,造成系统无法正常使用

image.png

image.png

image.png





处理过程

9点15分查看rds监控,发现cpu短时间内迅速飙满,

image.png



暴露的问题

慢sql访问量较大导致数据库cpu平均使用率在60%左右,高峰期经常会出现占满的情况,一旦cpu占满后没有出现回落,便会导致数据库异常,引发系统无法正常访问的情况


改进措施

对于本次故障,主要从以下几方面做优化

1.定期收集线上慢sql,统计到tb上,tb上的技术改造需求下有慢sql分类,可以把需求建到该分类下,对于高频访问的慢sql要尽快修复,优先级不高的慢sql也要考虑排期逐步优化,部分sql直接从语句层面优化空间很小,需要考虑从产品层面做调整,对于生产环境影响比较大的这部分查询需要尽快考虑如何优化



相关文章
|
2天前
|
SQL 自然语言处理 网络协议
【Linux开发实战指南】基于TCP、进程数据结构与SQL数据库:构建在线云词典系统(含注册、登录、查询、历史记录管理功能及源码分享)
TCP(Transmission Control Protocol)连接是互联网上最常用的一种面向连接、可靠的、基于字节流的传输层通信协议。建立TCP连接需要经过著名的“三次握手”过程: 1. SYN(同步序列编号):客户端发送一个SYN包给服务器,并进入SYN_SEND状态,等待服务器确认。 2. SYN-ACK:服务器收到SYN包后,回应一个SYN-ACK(SYN+ACKnowledgment)包,告诉客户端其接收到了请求,并同意建立连接,此时服务器进入SYN_RECV状态。 3. ACK(确认字符):客户端收到服务器的SYN-ACK包后,发送一个ACK包给服务器,确认收到了服务器的确
|
7天前
|
SQL 存储 Java
SQL数据库学习指南:从基础到高级
SQL数据库学习指南:从基础到高级
|
9天前
|
SQL 弹性计算 数据管理
数据管理DMS产品使用合集之sql server实例,已经创建了数据库,登录时提示实例已存在,该怎么处理
阿里云数据管理DMS提供了全面的数据管理、数据库运维、数据安全、数据迁移与同步等功能,助力企业高效、安全地进行数据库管理和运维工作。以下是DMS产品使用合集的详细介绍。
22 1
|
13天前
|
SQL druid Java
传统后端SQL数据层替代解决方案: 内置数据源+JdbcTemplate+H2数据库 详解
传统后端SQL数据层替代解决方案: 内置数据源+JdbcTemplate+H2数据库 详解
15 1
|
3天前
|
SQL 存储 搜索推荐
SQL游标的原理与在数据库操作中的应用
SQL游标的原理与在数据库操作中的应用
|
5天前
|
SQL 存储 搜索推荐
SQL游标的原理与在数据库操作中的应用
SQL游标的原理与在数据库操作中的应用
|
5天前
|
SQL 存储 Java
SQL数据库学习指南:从基础到高级
SQL数据库学习指南:从基础到高级
|
7天前
|
SQL 存储 关系型数据库
【SQL注入】 数据库基础
SQL注入 MYSQL数据库结构 数据库操作
9 0
|
10天前
|
监控 算法 Java
CPU突然被打满的原因(全方位分析)
CPU突然被打满的原因(全方位分析)
|
11天前
|
SQL 关系型数据库 分布式数据库
PolarDB产品使用问题之在一个集群上创建多个数据库实例,是否可以做cpu和内存的配额指定
PolarDB产品使用合集涵盖了从创建与管理、数据管理、性能优化与诊断、安全与合规到生态与集成、运维与支持等全方位的功能和服务,旨在帮助企业轻松构建高可用、高性能且易于管理的数据库环境,满足不同业务场景的需求。用户可以通过阿里云控制台、API、SDK等方式便捷地使用这些功能,实现数据库的高效运维与持续优化。