操作场景
固定规格的云数据库 MongoDB 实例在创建后 CPU 核数不可动态调整,应对突发或临时流量时不够灵活。CPU 弹性扩容功能支持在实例原始规格的基础上临时增加 CPU 核数,并在结束后将 CPU 核数回缩至原始规格,帮助您:
快速应对峰值:在业务高峰来临时手动增加核数,缓解突发请求带来的性能压力,扩容即时生效、快于常规变更配置,结束后回缩。
按需付费:扩容部分的 CPU 按实际使用时长计费,无需为应对峰值而长期预留高配规格,避免资源闲置和成本浪费。
功能说明
CPU 弹性扩容当前支持自定义扩容(立即生效)模式:由您手动开启扩容并指定扩容核数,开启后立即在原始规格基础上增加核数,手动关闭后回缩至原始规格。
工作原理
扩容与回缩
CPU 弹性扩容在实例原始规格之上临时叠加 CPU 核数,而非永久变更实例规格,因此扩容与回缩是一对可逆操作:
扩容:开启自定义扩容后,系统立即在原始规格基础上增加您指定的 CPU 核数,新增算力随即投入使用,无需重新购买或变更实例规格。在您手动关闭前,扩容部分持续生效并按时长计费。
回缩:手动关闭后,系统将 CPU 核数回缩至原始规格,扩容部分同步停止计费。由于扩容不改变实例的原始规格,回缩后实例即恢复至扩容前的状态。
说明:
CPU 弹性扩容不附带额外的 IOPS 资源。云数据库 MongoDB 当前未对 IOPS 做细分限制,因此 IOPS 不随 CPU 核数变化。
扩容核数
自定义扩容单次扩容增加的核数遵循以下上限规则:
增加核数上限 = MIN(当前最小分片的 CPU 核数,24核)
副本集实例:在原始核数基础上增加不超过24核。
分片集群实例:取当前所有分片中最小的分片核数与24核两者的较小值作为单分片的扩容上限,各分片整体执行弹性扩容。
分片集群的扩容结果
分片集群实例按整体执行弹性扩容,允许出现部分分片扩容成功、部分分片扩容失败的情况:
扩容全部成功:执行状态为扩容成功。
扩容部分成功:执行状态为扩容部分成功,未成功的分片由后台触发告警。
使用限制
限制项 | 说明 | 应对建议 |
原始核数上限 | 实例原始 CPU 核数不能超过32核。例如原始规格为48核的实例,不支持开启 CPU 弹性扩容功能。 | 原始规格已超过32核且需提升算力时,可通过变更配置直接升级实例规格。 |
扩容核数上限 | 单次扩容增加的核数为 MIN(当前最小分片的核数,24核)。 | 若所需算力超过单次扩容上限,建议通过变更配置升级原始规格。 |
实例版本 | 实例的 MongoDB 版本需为4.0及以上。 | 版本低于4.0的实例需先升级 MongoDB 版本,再开启弹性扩容。 |
实例类型 | 暂不支持云盘版实例。 | 云盘版实例如需提升算力,可通过变更配置调整规格。 |
持续计费 | 业务无需额外资源后及时手动关闭,避免产生持续费用。 |
功能影响说明
与变更配置的关系
开启 CPU 弹性扩容功能的实例在执行变更配置操作时,需注意以下影响:
调整 Mongod 节点规格:手动调整配置完成后,CPU 弹性扩容功能将自动关闭。请关注业务在规格变更后的 CPU 使用情况,如需继续使用弹性扩容,请在变更后手动重新开启。
增减 Mongod 节点或变更 Mongos:在整个操作过程中,弹性扩容将暂时失效,不会触发扩容。操作完成后,弹性扩容功能自动恢复并按规则生效。
与其他流程的关系
不互锁的流程:弹性扩容触发的加 CPU 流程,与克隆、备份、整实例回档等非必要互锁流程不互锁,可同时进行。
可被中断的流程:弹性扩容的任务优先级低于客户手动变配。开启弹性扩容不阻塞垂直扩缩容和水平扩缩容,当业务需要应对长时间高峰时,可通过手动升配中断弹性扩容流程。
被阻塞的场景:当实例处于互斥流程(例如 Mongod 水平分片、Mongos 水平或垂直扩缩容)中时,弹性扩容开启时触发的加 CPU 流程会被阻塞。