云数据库 MySQL 支持设置实例 CPU 的自动扩容以及自定义扩容,能更好的缓解突发请求带来的性能压力,适配业务高峰流量,保障线上业务稳定性,并且支持在流量下降时进行 CPU 回缩,避免资源浪费。本文介绍 CPU 弹性扩容的功能简介。
背景
在较多业务场景中,业务高峰期或突发流量洪峰会导致服务器负载面临极大的压力,应用程序的 CPU 使用率会急剧增加,如果不能及时扩容 CPU 资源,可能会导致系统性能下降、请求响应时间延长等问题,严重影响用户体验和满意度。除了突发流量的场景,当出现数据库缓存命中率低、索引失效、数据库死锁、数据库查询语句复杂、大量并发更新操作等场景且硬件配置不足时,也会造成 CPU 被打爆的情况。
传统解决方案

当发现 CPU 被打爆时,由用户通过控制台手动申请升配操作,然后等待升配完成,升配完成的时间受数据量影响,等待时长不确定,且升配过程中可能会出现闪断,会影响业务的正常运行,从升配完成到业务流量恢复平稳后,还需要人工通过控制台申请降配。综上,传统解决方案存在需要反应迅速、预期时间不定、有闪断风险、后续工作较多的不足。
CPU 弹性扩容
场景1:日常开启,面对不确定/未知流量

场景2:有明确的活动时间,存在流量高峰

CPU 弹性扩容功能基于云环境优势,可实现动态分配 CPU 资源(当数据库访问量增加或 CPU 资源占用率上升时,可以自动添加更多的 CPU 资源,并在高峰期结束后自动缩减)。用户可在控制台上选择是否开启 CPU 弹性扩容功能,根据业务的需求和业务量动态地配置数据库的 CPU 资源,从而完成弹性扩展,应对高峰压力,确保数据库实例的高性能、高可用性和高稳定性。
功能类型
CPU 弹性扩容功能类型分为自动扩容和自定义扩容。其中,开启自动扩容时,需要对扩容规则和缩容规则进行设置;开启自定义扩容时,需要先选择扩容核数,再选择扩容时间。在选择扩容时间时,支持选择立即生效,则 CPU 会立即扩容,扩容后不会自动缩容,需要手动关闭,也支持选择按时间段或按周期进行扩容,则在所选时间段或周期内 CPU 会扩容,在所选时间段外或周期外会自动缩容,您也可以开启时间段外或周期外的自动扩容,这使得您可以更精细的设置实例 CPU 的弹性策略,更加符合实际业务波动。
自动扩容
自动扩容说明
开启 CPU 弹性扩容 > 自动扩容后,当观测窗口内数据库实例的 CPU 平均使用率达到设定的阈值时,在原始计算规格的基础上,系统会将 CPU 核数提升2倍。例如原始计算规格的 CPU 核数为4核,则会提升至8核,同时,实例的 IOPS 会同步上升,CPU 核数每提升1核,IOPS 增加1000。若用户的腾讯云账户余额不足或主机中没有足够的 CPU 资源(概率较低),则扩容不会进行,随即发送扩容失败事件。
说明:
仅支持在原始计算规格的基础上将 CPU 核数提升2倍,无法在提升后的 CPU 核数上继续提升。例如提升后的 CPU 核数为8核,此时无法再提升至16核。
自动缩容说明
开启 CPU 弹性扩容 > 自动扩容后,在设定的缩容规则观测窗口期间内,CPU 使用率低于设定的阈值时,系统会自动将 CPU 核数以及 IOPS 回缩至原始计算规格。
说明:
开启 CPU 弹性扩容 > 自动扩容功能后,系统会以最新的配置参数为准,对数据库实例进行监控,当数据库实例满足自动回缩条件时,系统会对数据库实例进行自动回缩。
自定义扩容
自定义扩容说明
开启 CPU 弹性扩容 > 自定义扩容时,若扩容时间选择为立即生效,则实例立即按照扩容后的 CPU 核数运行。若扩容时间选择为按时间段或按周期,则实例会在所选时间段内或周期内按照扩容后的 CPU 核数运行,在所选时间段外或周期外会自动缩容。若扩容时间选择为按时间段或按周期,同时开启了自动扩容保障,则在所选时间段外或周期外,实例会根据设置的扩容和缩容规则进行自动扩缩容。
说明:
CPU 弹性扩容功能中,自动扩容保障即表示自动扩容,开启自动扩容保障可以避免时间段或周期外的 CPU 突发流量。
手动关闭说明
在开启 CPU 弹性扩容 > 自定义扩容后,若扩容时间选择为立即生效,则当业务无需更多 CPU 资源时,用户需手动关闭 CPU 弹性扩容,否则收费会持续进行。
自动扩容与自定义扩容核数说明
自动扩容的 CPU 扩容核数默认为实例原始 CPU 核数的2倍,不支持修改。例如实例原始 CPU 为4核,则扩容核数为4核,扩容后该实例的 CPU 核数为8。
自定义扩容的 CPU 扩容核数支持1核单位,最高支持为实例原始 CPU 核数的2倍。例如实例原始 CPU 为4核,则扩容核数支持设置为5、6、7、8核。
无论采用自动扩容还是自定义扩容,实例原始的 CPU 核数均不能超过32核。例如实例原始规格为48核488000MB,则不支持开启 CPU 弹性扩容功能。
计费说明
事件告警说明
针对自动扩容和自定义扩容,支持设置相关的事件告警并配置告警通知。以下为 CPU 弹性扩容相关的事件指标及说明。
扩容类型 | 事件指标 | 说明 |
自动扩容 | CPUExpansion | CPU 自动扩容成功 |
| CPUExpansionFailed | CPU 自动扩容失败 |
| CPUConstraction | CPU 自动回缩成功 |
自定义扩容 | CPUExpansion | CPU 自定义扩容成功 |
| CPUExpansionFailed | CPU 自定义扩容失败 |
| CPUConstraction | CPU 自定义扩容关闭 |
功能影响说明
双节点、三节点实例 CPU 弹性扩容功能会同时在主节点和备节点上生效,即如果 CPU 弹性扩容功能生效后双节点、三节点实例发生了 HA 切换,那么切换后的节点也将为扩容后的 CPU 规格,自动缩容或关闭自定义扩容后,会自动回缩至原始 CPU 规格。
只读实例和灾备实例需单独开启功能,不同时扩容,即主实例 CPU 弹性扩容功能触发生效后,该主实例挂载的只读实例、灾备实例不会同时随之扩容 CPU,均需要单独开启 CPU 弹性扩容功能。
若开启了 CPU 弹性扩容功能的实例要进行 调整配置 操作,则需注意,调整配置完成后,CPU 弹性扩容功能将会关闭,请及时观察调整配置后的 CPU 是否满足业务需求,如需再次使用 CPU 弹性扩容功能,请重新开启。
若开启了 CPU 弹性扩容功能的实例进行迁移操作,包括用户主动发起迁移、流程中同步迁移(例如主实例升级迁移连带只读实例升级迁移场景),则需注意,迁移完成后,CPU 弹性扩容功能将会关闭,请及时观察调整配置后的 CPU 是否满足业务需求,如需再次使用 CPU 弹性扩容功能,请重新开启。
相关操作
设置自动扩容
设置自定义扩容
开启事件告警