租户资源 Unit 扩容时,在线扩容与离线扩容的区别;Unit 迁移过程中,租户业务是否中断,读写性能波动原因是什么?
2 个赞
一、在线扩容 vs 离线扩容
OceanBase 的 Unit 扩容本质上是在线操作,但根据操作方式和对业务的影响程度,可分为两种:
表格
| 在线扩容(平滑扩缩容) | 普通扩容(非平滑) | |
|---|---|---|
| 操作方式 | 修改 unit_config(调大 CPU/内存)或调大 UNIT_NUM,系统自动进行 Transfer + 日志流迁移完成数据重分布 | 直接修改 UNIT_NUM,系统自动均衡,不额外控制迁移节奏 |
| 业务影响 | 租户持续运行,业务不中断;通过关闭 enable_ls_leader_balance、分步操作等手段避免切主,减小 RT 波动 |
租户仍在线,但负载均衡过程中可能出现 Leader 切换、副本迁移,导致 RT 波动较大 |
| 适用场景 | 对 RT 高度敏感的核心业务 | 一般业务、可容忍短暂波动的场景 |
| 关键配置 | 关闭 enable_ls_leader_balance、分步分裂资源池、调整 PRIMARY_ZONE
|
保持默认均衡策略 |
官方强调:原则上仅 UNIT_NUM 变化的 Zone 会发生迁移复制,其他 Zone 只做本地 Transfer,不迁移日志流。但如果扩容前租户已处于非均衡状态,则无法保证其他 Zone 不迁移。
二、Unit 迁移过程中业务是否中断
业务不中断,但会有性能波动。
OceanBase 的 Unit 迁移是在线操作,租户全程可读写。但官方明确指出:
“迁移任务会消耗源节点和目标节点的网络与 I/O 资源,迁移流量与业务流量重叠,业务流量会受迁移流量影响。”
三、读写性能波动的原因
- 网络与 I/O 争抢:迁移过程需要传输数据副本,占用源/目标节点的网络带宽和磁盘 I/O,与业务读写竞争资源
- Leader 切换(切主) :负载均衡过程中日志流 Leader 可能发生切换,切主瞬间读写会有短暂延迟抖动
- Transfer 任务开销:分区数据在节点间转移时消耗 CPU 和内存
- 日志流副本迁移:新建副本需要同步数据,增加额外写入负载
四、降低波动的手段
表格
| 参数/操作 | 作用 |
|---|---|
sys_bkgd_net_percentage |
控制迁移任务占用的网卡带宽比例(默认 60%,可调低) |
balancer_idle_time |
控制迁移任务发起间隔(默认 10s) |
关闭 enable_ls_leader_balance
|
禁止日志流 Leader 自动均衡,避免切主 |
| 先 Stop Zone 再 Delete Server | 避免迁移流量与业务流量重叠 |
1 个赞