
# 环境规格与回放类型选择
#### 回放模式选择
当 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资源用于备机回放。
根据硬件规格与回放模式推荐：
表1不同CPU、内存和部署模式下的参数设置参考 
| 编号 | 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典型场景
场景描述：
1. 服务器硬件规格： CPU：2.60GHz 16U；内存：4GB\*16；磁盘：SSD。
   
2. sysbench insert+update（1:1），并行度200，普通表5个。
3. 并行回放GUC参数：recovery_parse_workers=1，recovery_redo_workers=1，recovery_max_workers=4。
4. 极致RTO GUC参数：recovery_parse_workers=2，recovery_redo_workers=2，recovery_max_workers=4。
 
测试场景：
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典型场景
场景描述：
1. 服务器硬件规格： CPU：Intel(R) Xeon(R) Gold 6278C 2.60GHz 64U；内存：16GB\*16；磁盘：SSD。
   
2. sysbench insert+update（1:1），并行度1000，普通表5个。
3. 并行回放GUC参数：recovery_parse_workers=1，recovery_redo_workers=1，recovery_max_workers=8。
4. 极致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个。
表2典型场景回放速率对比 
| 场景      | 机器规格       | 回放类型  | 参数配置                                                                                                                                                                                                                                        | 回放线程数 | 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       |
   
