外观
OceanBase 网络复制指标
核心网络复制指标
副本同步指标
- REPLICA_LOG_SYNC_LATENCY:副本日志同步延迟,单位为毫秒
- REPLICA_DATA_SYNC_LATENCY:副本数据同步延迟,单位为毫秒
- REPLICA_SYNC_QUEUE_SIZE:副本同步队列大小
- REPLICA_SYNC_THROUGHPUT:副本同步吞吐量,单位为 MB/s
- REPLICA_SYNC_BYTES:副本同步字节数
Paxos 协议指标
- PAXOS_PROPOSE_LATENCY:Paxos 提案延迟,单位为毫秒
- PAXOS_COMMIT_LATENCY:Paxos 提交延迟,单位为毫秒
- PAXOS_REJECT_COUNT:Paxos 提案被拒绝次数
- PAXOS_RETRY_COUNT:Paxos 提案重试次数
- PAXOS_TIMEOUT_COUNT:Paxos 提案超时次数
网络通信指标
- NETWORK_SEND_LATENCY:网络发送延迟,单位为毫秒
- NETWORK_RECV_LATENCY:网络接收延迟,单位为毫秒
- NETWORK_SEND_THROUGHPUT:网络发送吞吐量,单位为 MB/s
- NETWORK_RECV_THROUGHPUT:网络接收吞吐量,单位为 MB/s
- NETWORK_PACKET_LOSS_RATE:网络丢包率
- NETWORK_CONNECTION_COUNT:网络连接数
日志复制指标
- LOG_SYNC_LATENCY:日志同步延迟,单位为毫秒
- LOG_SYNC_BYTES:日志同步字节数
- LOG_DISK_FLUSH_LATENCY:日志磁盘刷新延迟,单位为毫秒
- LOG_DISK_FLUSH_BYTES:日志磁盘刷新字节数
- LOG_QUEUE_SIZE:日志队列大小
网络复制指标监控
内置视图监控
sql
-- 查看副本同步状态
SELECT * FROM oceanbase.GV$OB_REPLICA_STATUS;
-- 查看 Paxos 状态
SELECT * FROM oceanbase.GV$OB_PAXOS_STATUS;
-- 查看网络状态
SELECT * FROM oceanbase.GV$OB_NETWORK_STATUS;
-- 查看日志同步状态
SELECT * FROM oceanbase.GV$OB_LOG_SYNC_STATUS;OCP 监控
通过 OCP(OceanBase Cloud Platform)可以直观地监控网络复制指标:
- 登录 OCP 控制台
- 进入集群详情页
- 选择 "监控" 标签页
- 选择 "网络" 或 "副本同步" 监控视图
- 查看相关指标的实时数据和历史趋势
自定义监控脚本
bash
#!/bin/bash
# 监控 OceanBase 网络复制指标的脚本
# 连接数据库
OB_USER="root"
OB_PASS="password"
OB_PORT="2881"
OB_TENANT="sys"
# 执行查询
mysql -h 127.0.0.1 -P $OB_PORT -u $OB_USER -p$OB_PASS -D $OB_TENANT -e "
SELECT
svr_ip,
svr_port,
replica_log_sync_latency,
replica_data_sync_latency,
replica_sync_queue_size,
paxos_propose_latency,
paxos_commit_latency,
network_send_latency,
network_recv_latency,
log_sync_latency
FROM oceanbase.GV$OB_REPLICA_STATUS;
"网络复制指标分析
延迟分析
- 识别高延迟节点:通过监控数据识别延迟较高的节点
- 分析延迟趋势:查看延迟的历史趋势,识别是否存在周期性或突发性延迟
- 关联其他指标:将延迟与网络吞吐量、CPU 使用率等指标关联分析
- 定位延迟瓶颈:确定延迟是由网络、磁盘还是 CPU 资源导致
吞吐量分析
- 监控吞吐量变化:实时监控网络复制吞吐量的变化
- 识别峰值时段:识别吞吐量峰值出现的时段,分析原因
- 比较节点吞吐量:比较不同节点的吞吐量,识别不平衡情况
- 预测资源需求:根据吞吐量趋势预测未来的资源需求
异常分析
- 识别异常指标:设置合理的告警阈值,及时识别异常指标
- 分析异常原因:结合日志和其他指标分析异常原因
- 采取应对措施:根据异常原因采取相应的应对措施
- 记录和总结:记录异常情况和处理措施,总结经验教训
网络复制指标优化
网络配置优化
- 优化网络带宽:确保节点间网络带宽充足
- 优化网络延迟:使用低延迟网络设备和链路
- 配置网络 QoS:为 OceanBase 流量配置优先级
- 优化 TCP 配置:调整 TCP 缓冲区大小、超时时间等参数
OceanBase 配置优化
- 调整同步模式:根据业务需求调整同步模式(同步/半同步/异步)
- 调整复制并发度:优化副本复制的并发度
- 优化 Paxos 配置:调整 Paxos 相关参数
- 优化日志配置:调整日志缓冲区大小、刷新策略等
sql
-- 调整副本同步模式
ALTER SYSTEM SET replica_sync_mode = 'sync' TENANT = 'tenant_name';
-- 调整复制并发度
ALTER SYSTEM SET replica_sync_concurrency = 8;
-- 调整 Paxos 超时时间
ALTER SYSTEM SET paxos_timeout = 5000;硬件优化
- 使用高性能网卡:采用 10G 或 25G 高速网卡
- 优化网络拓扑:减少网络跳数,优化网络拓扑结构
- 使用 RDMA 网络:对于对延迟敏感的场景,考虑使用 RDMA 网络
- 优化存储配置:使用高性能存储设备,减少磁盘 I/O 延迟
网络复制指标最佳实践
监控建议
- 设置合理的告警阈值:根据业务需求和集群规模设置合理的告警阈值
- 监控关键指标:重点监控副本同步延迟、Paxos 提交延迟等关键指标
- 定期分析历史数据:定期分析历史监控数据,识别潜在问题
- 建立基线:建立正常情况下的指标基线,便于识别异常
优化建议
- 持续优化:根据监控数据持续优化网络和 OceanBase 配置
- 定期评估:定期评估网络复制性能,根据业务需求调整配置
- 考虑业务特性:根据业务的读写比例、延迟要求等特性调整同步模式
- 测试验证:在进行配置优化后,进行测试验证,确保优化效果
故障排查建议
- 快速定位问题:根据监控指标快速定位问题节点和原因
- 分级处理:根据问题严重程度采取不同的处理措施
- 记录排查过程:详细记录故障排查过程和处理措施
- 总结经验:定期总结故障处理经验,完善故障处理流程
常见问题(FAQ)
Q1: 如何判断网络复制延迟是否正常?
A1: 网络复制延迟的正常范围取决于集群规模、网络环境和业务需求。一般来说:
- 同步模式下,延迟应在毫秒级
- 半同步模式下,延迟应在几十毫秒级
- 异步模式下,延迟可能更高,但应保持稳定
建议根据业务需求和实际运行情况建立合理的延迟基线。
Q2: 网络复制延迟高的常见原因有哪些?
A2: 网络复制延迟高的常见原因包括:
- 网络带宽不足或网络延迟高
- 磁盘 I/O 性能瓶颈
- CPU 资源不足
- 副本分布不合理
- Paxos 配置不当
- 业务写入压力过大
Q3: 如何优化网络复制吞吐量?
A3: 可以通过以下方式优化网络复制吞吐量:
- 增加网络带宽
- 调整复制并发度
- 优化存储配置
- 调整同步模式
- 优化 Paxos 配置
sql
-- 调整复制并发度
ALTER SYSTEM SET replica_sync_concurrency = 16;Q4: 如何监控跨地域部署的网络复制指标?
A4: 对于跨地域部署的 OceanBase 集群,可以通过以下方式监控网络复制指标:
- 使用 OCP 进行统一监控
- 部署本地监控代理,收集各地域的指标
- 设置合理的跨地域延迟告警阈值
- 定期分析跨地域复制的性能数据
Q5: 网络复制指标异常时如何快速定位问题?
A5: 网络复制指标异常时,可以按照以下步骤快速定位问题:
- 查看监控数据,确定异常指标和受影响的节点
- 检查节点的网络状态和资源使用情况
- 查看 OceanBase 日志,分析异常原因
- 检查网络设备和链路状态
- 根据分析结果采取相应的处理措施
sql
-- 查看节点资源使用情况
SELECT * FROM oceanbase.GV$OB_SERVER_STATUS;
-- 查看 OceanBase 日志
-- 使用 OCP 或直接查看日志文件