大量慢sql导致mysql服务器的cpu飙升到100%

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 大量慢sql/mysql/cpu 100%

故障原因

上午10:14左右出现大量慢sql导致mysql服务器的cpu飙升到100%

image.png


处理过程

阿里云查看性能趋势,发现在10:13:28cpu飙升到100%

image.png


排查思路:

8月1号阿里云临时把我们的IOPS调到了7000,一周后调回原值5000,

排查10:13:28附近的IOPS,为3581.5,并未达到峰值7000


image.png


查看扫描行数并未发现明显飙升


image.png

查看10:14:00之前5分钟内的sql洞察,在10:13:28秒左右并没有发现明显异常


image.png

在10:11:56出现一次比较明显的飙升,定位到以下查询语句

image.png


该sql在当时的执行时间大概在3秒左右,理论上不应该是这句sql引起的cpu飙升

继续排查慢日志明细,发现以下几句sql执行时间在12、3秒左右,执行开始时间和飙升发生时间比较接近,把这几句sql单独拿出来放在只读实例中执行都是一秒之内返回,目前来看不可能是单独的几条sql引起的cpu飙升,联系阿里云进行排查,那边给出的回复是并发量达到一定程度,导致主实例的buffer pool占满,拿不到free pages

优化思路为通过阿里云的数据库代理,自动对请求进行转发,写请求转发到主实例上,读请求转发到只读实例上,减少主实例上的大量读请求压力,目前对uat数据库设置了代理,将xxx-pro的uat环境连接地址改成了数据库代理地址,先在uat环境测试一下主流程是否可以正常执行,确保可以正常执行的情况下再对生产环境进行调整


暴露的问题

目前存在较多慢sql,部分慢sql单从sql层面优化空间不大


改进措施

目前发现访问量较大的慢sql主要集中在往来单位查询、台账查询和导出查询等业务相关的sql,已对uat环境的xxx-pro设置了数据库代理,计划在今天发版后对往来单位查询对应的xxx-data-service也使用数据库代理,需要验证下主流程是否可以正常执行

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
3天前
|
SQL Oracle 关系型数据库
SQL(MySQL)
SQL语言是指结构化查询语言,是一门ANSI的标准计算机语言,用来访问和操作数据库。 数据库包括SQL server,MySQL和Oracle。(语法大致相同) 创建数据库指令:CRATE DATABASE websecurity; 查看数据库:show datebase; 切换数据库:USE websecurity; 删除数据库:DROP DATABASE websecurity;
|
1月前
|
存储 关系型数据库 MySQL
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
262 2
|
2月前
|
SQL 运维 关系型数据库
MySQL 运维 SQL 备忘
MySQL 运维 SQL 备忘录
48 1
|
1月前
|
SQL 关系型数据库 MySQL
MySql5.6版本开启慢SQL功能-本次采用永久生效方式
MySql5.6版本开启慢SQL功能-本次采用永久生效方式
38 0
|
1月前
|
SQL 关系型数据库 MySQL
mysql编写sql脚本:要求表没有主键,但是想查询没有相同值的时候才进行插入
mysql编写sql脚本:要求表没有主键,但是想查询没有相同值的时候才进行插入
31 0
|
2月前
|
SQL 存储 关系型数据库
mysql 数据库空间统计sql
mysql 数据库空间统计sql
47 0
|
3月前
|
关系型数据库 MySQL 网络安全
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
|
5月前
|
SQL 存储 监控
SQL Server的并行实施如何优化?
【7月更文挑战第23天】SQL Server的并行实施如何优化?
121 13
|
5月前
|
SQL
解锁 SQL Server 2022的时间序列数据功能
【7月更文挑战第14天】要解锁SQL Server 2022的时间序列数据功能,可使用`generate_series`函数生成整数序列,例如:`SELECT value FROM generate_series(1, 10)。此外,`date_bucket`函数能按指定间隔(如周)对日期时间值分组,这些工具结合窗口函数和其他时间日期函数,能高效处理和分析时间序列数据。更多信息请参考官方文档和技术资料。
|
5月前
|
SQL 存储 网络安全
关系数据库SQLserver 安装 SQL Server
【7月更文挑战第26天】
64 6