RDS for MySQL CPU 使用率高是使用 RDS for MySQL 实例过程中比较常见的一类性能问题。
由于实例 CPU 资源打满会直接导致业务受损,且问题发生过程迅速、临界时间短 统计采集困难、问题发生后统计指标呈反向曲线,加之日常运维过程中问题征兆容易被忽视,非常容易导致用户体感问题突然性强烈,因此在这里我们对 RDS for MySQL 的 CPU 使用率高的原因做一个比较详细的分析说明。
1. 原因
1.1 宏观
RDS for MySQL CPU 资源使用率达到 100% 的问题, 从宏观的角度来看,主要体现为 RDS 实例的 CPU 时间(处理能力)完全被占用。
1.2 微观
查询执行所需的 逻辑读 总量过高,或者有大量的计算操作 、行锁冲突。
1.3 外部因素
应用提交的查询量过高,RDS 实例规格不满足应用的需求。
1.4 内部因素
存在高执行成本的查询(有可能是慢查询),注意要捕捉到主要矛盾。