我一直在观察我的PostgreSQL读取副本显示出复制滞后的周期性延迟。延迟似乎最多可达30-40分钟,然后自动降至0.与CPU Utilization
存在相关性,但它与CPU限制无关。
此处的AWS Cloudwatch图表。红线以秒为单位显示Replication Lag
。蓝线显示CPU负载。
云:Amazon RDS
实例大小:db.m3.2xlarge
PostgresSQL版本:9.3
Postgres设置:
共享缓冲区(由RDS设置)= 7.3 GB(956978 * 8KB)
更新
Shared Buffers
设置为1GB(没有帮助)2017年6月5日更新
答案 0 :(得分:1)
当没有任何内容可以复制时,RDS只读副本延迟指标不会更新。如果master数据库没有复制的更改,那么副本只会在时间强制所谓的检查点上更新 - 从预写日志到表的数据的周期性同步。
这会导致图形如上所示。要查看真实的图形数据,您必须在主设备上生成一些流量,例如每分钟甚至每秒更新一些特殊序列 - 具体取决于您需要的分辨率。
此外,副本图上的主数据库和网络利用率的WAL生成日志也很有趣 - 另一种解释是,副本处理的流量(IO或网络)太多,只能在流量停止时赶上