PG延迟模拟和查看

查看

主库查询

SELECT * FROM pg_stat_replication;

https://www.modb.pro/db/1692140474278694912

https://patroni.readthedocs.io/en/latest/patronictl.html

备库延迟的原因

PostgreSQL 备库延迟的原因可能包括以下几个方面:

  1. 网络问题:网络延迟或不稳定可能导致备库接收 WAL 日志的速度变慢。
  2. WAL 数据段缺失:如果备库所需的 WAL 数据段在主库上已经被替换或回收,可能导致复制延迟。
  3. 系统繁忙:主库或备库系统繁忙,导致数据复制功能受到影响,系统性能降低。
  4. 硬件性能不足:硬件性能不足以支持数据复制的速度,尤其是在高负载情况下。
  5. 错误的 PostgreSQL 参数设置:例如,max_wal_senders 数量设置不足,可能导致复制性能问题。
  6. 恢复时消耗大量 CPU:例如,开启数据文件 checksum 时,会额外消耗启动进程的 CPU。
  7. 主库频繁的离散 IO 操作:如大量索引变更、VACUUM 操作等,可能导致备库处理延迟。
  8. 频繁或大量的系统调用:例如,大批量删除对象时,可能会引起复制延迟。
  9. 备库与主库系统时间不一致:如果系统时间不同步,延迟备库可能不会按配置的延迟来应用变更。
  10. 备库资源限制:例如,shared buffer 容量不足,可能导致更多的数据文件写操作,从而引起延迟。
  11. IOPS 能力和 IO 延迟:使用 IOPS 能力更强、IO 延迟更低的存储设备,如 NVMe SSD,可以减少延迟。

为了监控复制状态和延迟,可以使用 pg_stat_replication 视图查询相关数据,如 statesent_lsnwrite_lsnflush_lsnreplay_lsn 等字段,以及 write_lagflush_lagreplay_lag 这些表示延迟的字段。此外,还可以使用函数 pg_is_in_recovery()pg_is_wal_replay_paused()pg_last_wal_receive_lsn()pg_last_wal_replay_lsn()pg_last_xact_replay_timestamp() 来获取复制状态和延迟信息。

高可用切换

maximum_lag_on_failover: 1048576

https://developer.aliyun.com/article/775029

  • 7
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值