阿里云面试官:如果是MySQL引起的CPU消耗过大,你会如何优化?

本文涉及的产品
RDS AI 助手,专业版
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
RDS DuckDB + QuickBI 企业套餐,8核32GB + QuickBI 专业版
简介: SQL数据库开发

目录

谁在消耗cpu?
祸首是谁?

  • 用户
  • IO等待
  • 产生影响

如何减少CPU消耗?

  • 减少等待
  • 减少计算
  • 升级cpu

谁在消耗CPU?

用户+系统+IO等待+软硬中断+空闲

40.jpg41.jpg

祸首是谁?

用户

用户空间CPU消耗,各种逻辑运算

正在进行大量tps
函数/排序/类型转化/逻辑IO访问…

用户空间消耗大量cpu,产生的系统调用是什么?那些函数使用了cpu周期?

IO等待

等待IO请求的完成

此时CPU实际上空闲

如vmstat中的wa 很高。但IO等待增加,wa也不一定会上升(请求I/O后等待响应,但进程从核上移开了)

42.jpg43.jpg

产生影响

用户和IO等待消耗了大部分cpu

  • 吞吐量下降(tps)
  • 查询响应时间增加
  • 慢查询数增加
  • 对mysql的并发陡增,也会产生上诉影响

44.jpg

如何减少CPU消耗?

减少等待

减少IO量SQL/index,使用合适的索引减少扫描的行数(需平衡索引的正收益和维护开销,空间换时间)提升IO处理能力加cache/加磁盘/SSD


45.jpg

减少计算

减少逻辑运算量

  • 避免使用函数,将运算转移至易扩展的应用服务器中
    如substr等字符运算,dateadd/datesub等日期运算,abs等数学函数

  • 减少排序,利用索引取得有序数据或避免不必要排序
    如union all代替 union,order by 索引字段等

  • 禁止类型转换,使用合适类型并保证传入参数类型与数据库字段类型绝对一致
    如数字用tiny/int/bigint等,必需转换的在传入数据库之前在应用中转好

  • 简单类型,尽量避免复杂类型,降低由于复杂类型带来的附加运算。更小的数据类型占用更少的磁盘、内存、cpu缓存和cpu周期
  • ….

减少逻辑IO量

  • index,优化索引,减少不必要的表扫描
    如增加索引,调整组合索引字段顺序,去除选择性很差的索引字段等等
  • table,合理拆分,适度冗余
    如将很少使用的大字段拆分到独立表,非常频繁的小字段冗余到“引用表”
  • SQL,调整SQL写法,充分利用现有索引,避免不必要的扫描,排序及其他操作
    如减少复杂join,减少order by,尽量union all,避免子查询等
  • 数据类型,够用就好,减少不必要使用大字段
    如tinyint够用就别总是int,int够用也别老bigint,date够用也别总是timestamp
  • ….


46.jpg

减少query请求量(非数据库本身)

  • 适当缓存,降低缓存数据粒度,对静态并被频繁请求的数据进行适当的缓存
    如用户信息,商品信息等
  • 优化实现,尽量去除不必要的重复请求
    如禁止同一页面多次重复请求相同数据的问题,通过跨页面参数传递减少访问等
  • 合理需求,评估需求产出比,对产出比极端底下的需求合理去除
  • ….



47.jpg

升级cpu

若经过减少计算和减少等待后还不能满足需求,cpu利用率还高T_T

是时候拿出最后的杀手锏了,升级cpu,是选择更快的cpu还是更多的cpu了?

  • 低延迟(快速响应),需要更快的cpu(每个查询只能使用一个cpu)
  • 高吞吐,同时运行很多查询语句,能从多个cpu处理查询中收益
相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
7月前
|
SQL 监控 关系型数据库
【紧急救援】MySQL CPU 100%!一套组合拳教你快速定位并解决!
凌晨三点MySQL CPU飙至100%,业务瘫痪!本文亲历30分钟应急排障全过程:从紧急止血、定位慢查询、分析锁争用,到优化SQL与索引,最终恢复服务。总结一套可复用的排查路径与预防方案,助你告别深夜救火。
|
7月前
|
弹性计算 ice
阿里云4核8G云服务器配置价格:热门ECS实例及CPU处理器型号说明
阿里云2025年4核8G服务器配置价格汇总,涵盖经济型e实例、计算型c9i等热门ECS实例,CPU含Intel Xeon及AMD EPYC系列,月费159元起,年付低至1578元,按小时计费0.45元起,实际购买享折扣优惠。
2652 1
|
9月前
|
存储 弹性计算 安全
阿里云轻量服务器通用型、CPU优化型、多公网IP型、国际型、容量型不同实例区别与选择参考
阿里云轻量应用服务器实例类型分为通用型、CPU优化型、多公网IP型、国际型、容量型,不同规格族的适用场景和特点不同,收费标准也不一样。本文为大家介绍轻量应用服务器通用型、多公网IP型、容量型有何区别?以及选择参考。
|
8月前
|
存储 弹性计算 网络协议
阿里云服务器ECS通用算力型u2a实例,CPU采用AMD EPYC处理器,睿频最高3.7 GHz
阿里云ECS通用算力型u2a实例搭载AMD EPYC处理器,睿频高达3.7GHz,基于CIPU架构,网络与存储突发带宽最高25Gbps,I/O性能强、延迟低。支持多种云盘及IPv4/IPv6,适用于中小型数据库、APP服务等场景,性价比高,官网价降低9%-22%,是中小企业上云优选。
943 0
|
9月前
|
存储 弹性计算 网络协议
阿里云服务器ECS实例规格族是什么?不同规格CPU型号、处理器主频及网络性能参数均不同
阿里云ECS实例规格族是指具有不同性能特点和适用场景的实例类型集合。不同规格族如计算型c9i、通用算力型u1、经济型e等,在CPU型号、主频、网络性能、云盘IOPS等方面存在差异。即使CPU和内存配置相同,性能参数和价格也各不相同,适用于不同业务需求。
611 144
|
7月前
|
弹性计算 定位技术 数据中心
阿里云服务器配置选择方法:付费类型、地域及CPU内存配置全解析
阿里云服务器怎么选?2025最新指南:就近选择地域,降低延迟;长期使用选包年包月,短期灵活选按量付费;企业选2核4G5M仅199元/年,个人选2核2G3M低至99元/年,高性价比爆款推荐,轻松上云。
819 11
|
8月前
|
存储 缓存 数据挖掘
阿里云轻量应用服务器“CPU优化型”配置介绍、费用价格说明
阿里云轻量应用服务器推出CPU优化型,提供更强计算性能,2核4GB起,最高16核64GB,全系支持200Mbps带宽。适用于企业级应用、数据库、游戏服务器等高算力场景,保障稳定高效运行。
902 1
|
8月前
|
机器学习/深度学习 弹性计算 编解码
阿里云服务器4核8G配置:ECS实例规格、CPU型号及使用场景说明
阿里云4核8G服务器提供多种ECS实例规格,如高主频计算型hfc8i、ecs.c9i、计算型c8i、通用算力型u1、经济型e等,适配不同应用场景,涵盖高性能计算、AI推理、Web服务、数据分析等领域。
1253 2
|
9月前
|
弹性计算 前端开发 NoSQL
2025最新阿里云服务器配置选择攻略:CPU、内存、带宽与系统盘全解析
本文详解2025年阿里云服务器ECS配置选择策略,涵盖CPU、内存、带宽与系统盘推荐,助你根据业务需求精准选型,提升性能与性价比。

推荐镜像

更多