在活动存储库与备用存储库之间复制数据时,如果复制进度缓慢,则称为 lag。如果缓慢程度超过用户指定的延迟阈值,将触发 TVI 预警 4604002。
在 sync.properties 文件中,属性 sync.data.lagging.threshold 用于指定该阈值。
Postgres 事务进度称为 write-ahead logging (WAL)。
如果同步服务缓慢,sync.log 会报告以下各项:
- sending_lag:已生成但尚未发送到备用服务器的 WAL 数。
- receiving_lag:网络中已发送但尚未写入的 WAL。
- write_lag:已写入但未移动到永久存储中的 WAL。如果 Postgres 崩溃,这些更改将丢失。
- replaying_lag:已移动到永久存储中但尚未重放的 WAL。
根据报告中的消息,导致系统缓慢的原因可能有以下几项:
- sending_lag:
- 活动存储库性能问题(例如,高负载)
- 活动存储库与备用存储库之间的网络吞吐量低
- 备用服务器在启动前已脱机很长时间
- receving_lag:
- 活动存储库与备用存储库之间的网络吞吐量低
- 备用存储库性能问题(例如,高负载)
- write_lag 和 replay_lag
- 备用存储库性能问题,例如,过度使用存储、恢复进程停滞或者备用存储库负载高