首批通过分布式安全可靠测评,为关键业务系统打造
OceanBase 数据库主备库带宽估算
更新时间:2026-05-09 07:56
主备库之间的带宽理论估算值,在进行跨机房主备库部署、跨城主备库部署时,可以根据该理论得出的估算值对带宽有个大致预测。作为理论参考值,在根据实际测试流量情况进行比较,两者进行对比可以得出一个相对精确的流量值。
主备库之间的流量主要可以分为基础流量和业务流量。
- 网络流量 = 基础流量 + 业务流量。
- 网络带宽 = (基础带宽 + 业务带宽)/网络保护率。
其中,网络保护率一般取 80%,表示使用 80% 的网络带宽来获得稳定的网络性能。
适用版本
OceanBase 数据库 V2.x、V3.x 版本。
基础流量
基础流量主要是用于主备库之间的心跳包、选举包等操作,即使在业务没有写入的情况下也需要的网络流量。
计算公式为:
基础流量 = 集群分区数 keepalive 包大小每个分区每秒钟发的 keepalive 包的个数 * 8bit / 压缩比。
- 集群分区数代表该集群里单 zone 下的分区总数。
- keepalive 包大小为 24B,其中包头会进行聚合,加上包头一起看的话一个 keepalive 包可以按照(24B-28B)的区间值进行估算。
- 每个分区每秒钟发送的包的个数为 1000/weak_read_version_refresh_interval(弱一致性读版本号的刷新周期,默认 50ms)。
- 压缩比是在开启 clog 传输压缩情况下(clog_transport_compress_all=true),由于 keepalive 包也属于 clog 大类,也会进行压缩,压缩比并不是一个固定的值,可以通过查看内部表
gv$sysstat得出。压缩比计算方式是使用该内部表中 name 列 rpc compress original size/rpc compress compressed size 取两个时间点的 value 值,然后用增量相除。压缩比 =(rpc compress original size@t2-rpc compress original size@t1)/(rpc compress compressed size@t2-rpc compress compressed size@t1)。 - 压缩比 =(rpc compress original size@t2-rpc compress original size@t1)/(rpc compress compressed size@t2-rpc compress compressed size@t1)。 例如:集群 12000 分区,
weak_read_version_refresh_interval采用默认的 50ms,压缩比为 1.3,则计算结果为:12000(24B~28B)1000/50/1.38/1024/1024=34Mbps~39Mbps。
业务流量
业务流量则是根据业务产生的 clog 日志量。
业务流量 = 峰值 TPS 交易更新数据总大小日志写入放大倍数 * 8bit /压缩比
- 默认情况下,clog 落盘不做压缩,clog 传输使用压缩,压缩比例取 2:1。
- 日志写入放大倍数:交易的 clog 日志量与交易的数据更新量的比值,通常在 2~10 之间,经验值为 4。
例如,业务场景为:
- 峰值 TPS:10K
- 平均单交易更新数据量(每次交易或更新操作所涉及的数据量大小的平均值):4K
- 日志写放大倍数:4
- 日志压缩比例:2 则,计算结果为:业务流量 = 10K * 4K * 4 * 8 / 2 = 640 Mbps。
更多信息
备库与主库的同步是通过备库的 leader 副本去从主库拉取 clog 或数据来进行。在最大性能部署模式下,备库会优先去同 region 的主库副本上拉取;如果没有这样的副本,则去主库的 leader 副本上拉取。对于备库的任一租户,其只能从主库的一个 Zone 进行同步。 可以在备集群中使用以下 SQL 来查询备库与主库进行同步的数据源头来自哪里。
select parent,count(*) from __all_virtual_clog_stat where role='standby_leader' group by parent;
其中 parent 表示上游节点。