RDS for MySQL CPU 性能问题分析

时间:2024-03-20 15:14:08

RDS for MySQL CPU 使用率高是使用 RDS for MySQL 实例过程中比较常见的一类性能问题。

由于实例 CPU 资源打满会直接导致业务受损,且问题发生过程迅速、临界时间短 统计采集困难、问题发生后统计指标呈反向曲线,加之日常运维过程中问题征兆容易被忽视,非常容易导致用户体感问题突然性强烈,因此在这里我们对 RDS for MySQL 的 CPU 使用率高的原因做一个比较详细的分析说明。

1. 原因

1.1 宏观

RDS for MySQL CPU 资源使用率达到 100% 的问题, 从宏观的角度来看,主要体现为 RDS 实例的 CPU 时间(处理能力)完全被占用。

RDS for MySQL CPU 性能问题分析

1.2 微观

查询执行所需的 逻辑读 总量过高,或者有大量的计算操作 、行锁冲突。

RDS for MySQL CPU 性能问题分析

1.3 外部因素

应用提交的查询量过高,RDS 实例规格不满足应用的需求。

RDS for MySQL CPU 性能问题分析

1.4 内部因素

存在高执行成本的查询(有可能是慢查询),注意要捕捉到主要矛盾。

RDS for MySQL CPU 性能问题分析

2. 释疑

2.1 疑问一

关于 CPU 使用率问题的宏观、微观原因解释是否正确?

RDS for MySQL CPU 性能问题分析
RDS for MySQL CPU 性能问题分析
RDS for MySQL CPU 性能问题分析
RDS for MySQL CPU 性能问题分析
2.2 疑问二

问题出现前 RDS 实例已经正常运行了一段时间,业务量也没有明显变化,为什么当前 CPU 使用率会到 100%?

RDS for MySQL CPU 性能问题分析
RDS for MySQL CPU 性能问题分析
2.3 疑问三

反馈的问题查询所涉及的表数据量很少,怎么会导致实例 CPU 使用率 100%?

RDS for MySQL CPU 性能问题分析

2.4 疑问四

RDS 实例 CPU 使用率 100% 是否和实例所在物理机负载有关系?

RDS for MySQL CPU 性能问题分析

3. 后记

在后续的文章中我们会分享下 RDS for MySQL CPU 使用率高问题的解决方法。