Replikationsverzögerung beim Postgres AWS RDS-Dienst

7

Wir haben eine Single Master / Single Streaming Replik Postgres 9.3 db auf AWS. Die Last ist nicht besonders hoch - dies ist eine Entwicklungs- / Staging-Umgebung. (Die Produktion zeigt ähnliche Metriken). Punkt ist, dass die in Cloudwatch gezeigte "ReplicaLag" tagsüber zwischen 0 und 200 Sekunden wild schwingt. Ich habe max_wal_senders ohne Änderung von 5 auf 10 geändert.

Irgendwelche Vorschläge zur Diagnose?

Replica Lag

(Dies ist ein t2.small-Master und ein t2.small-Replikat, jedoch ist die Produktionsinstanz groß und weist das gleiche Problem auf. Die CPU ist <2%, die Verbindungen <60, iops nur etwa 5-15 Anzahl / Sekunde).

MJB
quelle

Antworten:

8

Ich hatte das gleiche Problem mit unserem Staging-RDS. Nach einiger Zeit fand ich einen Blog-Beitrag, der besagt :

In einer sehr ausgelasteten Datenbank mit vielen Schreibvorgängen pro Sekunde bleibt diese Zahl ziemlich genau. In einem System mit wenigen Schreibvorgängen wächst die "replication_delay" jedoch kontinuierlich, da der Zeitstempel der zuletzt wiedergegebenen Transaktion nicht zunimmt .

Um dies zu testen, habe ich ein einfaches Skript geschrieben, das alle 0,5 Sekunden einen zufälligen Datensatz aktualisiert und die Verzögerung auf 0 ging.

Aus den AWS-Dokumenten unter Read Replica Limitations with PostgreSQL -

Ein PostgreSQL-Lesereplikat meldet eine Replikationsverzögerung von bis zu fünf Minuten, wenn auf der Quell-DB-Instanz keine Benutzertransaktionen auftreten

Jorge Bastida
quelle