环境规格与回放类型选择
回放模式选择
当 recovery_parse_workers = 1、recovery_redo_workers = 1、recovery_max_workers = 1 时,回放模式为串行回放。
当 recovery_parse_workers = 1、recovery_redo_workers = 1、recovery_max_workers > 1 时,回放模式为并行回放。
当 recovery_parse_workers > 1 或 recovery_redo_workers > 1 时,回放模式为极致RTO,此时recovery_max_workers参数无效。
当前备机读功能默认开启(hot_standby=on),由于极致RTO备机可读功能需通过磁盘空间保存历史版本数据,会额外占用磁盘资源。实际占用空间与业务类型强相关,在磁盘空间受限的小规格场景下,需结合实际业务模型及批处理波峰特征提前测试验证,确认是否适用极致RTO回放模式。
在RTO高敏感场景且无备机读需求时,建议关闭备机读功能,以释放更多CPU及I/O资源用于备机回放。
根据硬件规格与回放模式推荐:
| 编号 | CPU个数 | 内存(GB) | 是否混合部署 | recovery_parse_workers | recovery_redo_workers | 回放线程总数 | 备注 |
|---|---|---|---|---|---|---|---|
| 1 | 4 | - | - | 1 | 1 | recovery_max_workers参数值 | 不推荐开极致RTO。 |
| 2 | 8 | - | 是 | 1 | 1 | recovery_max_workers参数值 | 不推荐开极致RTO。 |
| 3 | 8 | 64 | 否 | 1 | 3 | 10 | - |
| 4 | 16 | 128 | 是 | 1 | 2 | 9 | - |
| 5 | 16 | 128 | 否 | 2 | 3 | 15 | - |
| 6 | 32 | 256 | 是 | 2 | 2 | 13 | - |
| 7 | 32 | 256 | 否 | 2 | 8 | 25 | - |
| 8 | 64 | 512 | 是 | 2 | 4 | 17 | - |
| 9 | 64 | 512 | 否 | 2 | 8 | 25 | 大于此硬件规格的系统均参考此参数设置值。 |
| 10 | 96 | 768 | - | 2 | 8 | 25 | 大于此硬件规格的系统均参考此参数设置值。 |
16U典型场景
测试场景:
sysbench insert:update=1:1,单表大小固定20GB;对比不同表数量(1张表、5张表、10张表、20张表)下,极致RTO回放与并行回放的回放速度差异。
| 表数量 | 并行回放(MB) | 极致RTO(MB) | 差异 |
|---|---|---|---|
| 1张表 | 57 | 57 | 0.00% |
| 5张表 | 60 | 64 | 6.67% |
| 10张表 | 47.5 | 48 | 1.05% |
| 20张表 | 25 | 30 | 20.00% |
64U典型场景
场景描述:
- 服务器硬件规格:
CPU:Intel(R) Xeon(R) Gold 6278C 2.60GHz 64U;内存:16GB*16;磁盘:SSD。
- sysbench insert+update(1:1),并行度1000,普通表5个。
- 并行回放GUC参数:recovery_parse_workers=1,recovery_redo_workers=1,recovery_max_workers=8。
- 极致RTO GUC参数:recovery_parse_workers=2,recovery_redo_workers=8,recovery_max_workers=8。
测试场景:
sysbench insert:update=1:1,引入不同时长的长事务(无长事务、6分钟、10分钟),对比极致RTO和并行回放的回放速度。存在长事务时,极致RTO回放速度较并行回放提升26%以上。
| 长事务 | 并行回放(MB) | 极致RTO(MB) | 差异 |
|---|---|---|---|
| 无长事务 | 332.514 | 343.773 | 3.39% |
| 6分钟长事务 | 288.424 | 363.432 | 26.01% |
| 10分钟长事务 | 310.269 | 399.501 | 28.76% |
典型场景回放速率
机器规格:
CPU:Intel(R) Xeon(R) Platinum 8378A CPU 3.00GHz 64U;内存:16G*32;磁盘:SSD。
场景描述:使用业务场景批量INSERT,并行度50,普通表1个。
| 场景 | 机器规格 | 回放类型 | 参数配置 | 回放线程数 | Xlog积压大小 | 主机Xlog生成速率 | 备机回放速率 | buffer_pool |
|---|---|---|---|---|---|---|---|---|
| 现网环境 | 主备64U512GB | 并行回放 | recovery_parse_workers=1 recovery_redo_workers=1 recovery_max_workers=4 | 4 | 40GB | 240M/s左右 | 120M/s左右 | 180GB |
| 实验室测试环境 | 主备96U512GB | 并行回放 | recovery_parse_workers=1 recovery_redo_workers=1 recovery_max_workers=4 recovery_time_target=3600 | 4 | 30GB | 250M/s | 100M/s左右 | 180GB |
| 实验室测试环境 | 主备96U512GB | 极致RTO | recovery_parse_workers=2 recovery_redo_workers=4 recovery_max_workers=4 recovery_time_target=3600 | 17 | 0 | 250M/s | 200-250M/s左右 | 180GB |