CPU弹性扩容应用与实践
背景介绍
传统云数据库固定规格部署存在调整规格需要用户评估资源用量、升级过程较长、可能导致闪断等问题。云原生+Severless+Database架构通过FAAS+BAAS+弹性伸缩+按需计费模式,实现无需运维、实时弹性伸缩、按量计费、高可用。
CPU弹性扩容
CPU弹性扩容是腾讯云云数据库MySQL最新推出的能力项,已于2023年6月全地域发布,主打快速响应,通过动态分配CPU资源应对高峰压力,确保数据库实例的高性能、高可用性和高稳定性。
CPU弹性扩容功能介绍
- 定义:基于云环境通过动态分配CPU资源,实现CPU资源的手动/自动调整和弹性扩展。
- 功能:当数据库访问量增加或CPU资源占用率上升时,自动添加更多CPU资源,高峰期结束后自动缩减。
如何弹
CPU弹性扩容功能分为自动扩容和手动扩容两种类型:
- 自动扩容:客户自行设置扩容阈值和观测周期,当实例CPU达到阈值超过观测周期时,扩容功能生效;相同地,当实例CPU达到缩容阈值超过观测周期时,缩容功能生效。
- 手动扩容:客户自行设置扩容核数,开启后实例按照扩容后的CPU核数运行,需手动关闭。
功能是否生效
- 自动扩容:实例详情页CPU弹性扩容文字说明更新,任务列表页可查询任务状态。
- 手动扩容:实例详情页CPU弹性扩容文字说明更新,配置事件告警策略可跟踪触发情况。
如何弹回去
- 自动扩容:可自动触发回缩,回缩成功则计费停止。
- 手动扩容:需手动关闭,计费停止。
贵不贵?怎么计费
客户应用与实践
- 常见问题:单节点、独享型实例暂不支持;压测时监控显示CPU利用率为何一直为100%;开启弹性扩容后发生HA切换;CPU弹性扩容功能未开启成功;扩容、缩容时没有事件通知。
- 解决方案:检查实例类型;关注数据库系统的TPS、QPS、响应时间等性能相关指标;备节点切换为主节点时同样是扩容后的规格;只读实例和灾备实例需单独开启功能;检查是否开启相关事件、通知人列表、每日通知次数。
场景化解决方案
- CPU弹性扩容持续升级:2023年发布自动扩容、自定义扩容;2024年即将发布更灵活的扩容时间、支持内存资源弹性伸缩、AI负载预测提前扩容、更多产品架构支持。
挑战与展望
- 支持内存资源的弹性伸缩能力
- AI负载预测提前扩容
- 更多产品架构支持(独享型、单节点等)
新架构特性
- 存算一体化架构:本地磁盘极低IO响应时间,本地资源无损弹性,网络架构易扩展,但备份恢复时长随数据量增长,磁盘规格受限,计算资源上限受代次限制,需要不可读备机提供可用性保障,底层内核特性更新缓慢。
- 集群版架构:计算资源与磁盘规格无需绑定,支持全部性能级别磁盘类型,计算资源按照算力定期迭代,备份使用云盘快照,适用于新架构的内核优化,快速增删节点,支持高频快照。
- 横向&纵向扩容:CPU最大支持512核,内存最大支持2TB,存储最大支持32TB(预计年底支持64TB);5分钟快速扩展,支持独立只读,支持自动读写分离,支持自动故障转移。
- 内核特性–BP预热:通过主从缓存同步优化,解决新节点BufferPool预热问题。
- 内核特性–原子写:通过16k原子写机制,优化MySQL的写入性能和数据写入量。
- 内核优化–提升15%性能:读写混合场景下有30%~50%的性能提升。
- 新架构特性:支持从机只读,提供读写以及只读地址;快速增加节点,多节点监控指标更直观。
- RoadMap:持续优化架构,提升性能和可用性。