Hi,
Das Verhalten deutet auf einen Redis-Replikationsknoten hin, bei dem der Replikationspuffer während einer vollständigen Synchronisierung nicht ausreicht oder die Verbindung unterbrochen wird. Die Parameter client-output-buffer-limitund repl-backlog-size haben unterschiedliche Aufgaben und sollten nicht pauschal erhöht werden.
client-output-buffer-limit begrenzt den Speicher für ausgehende Daten an Clients. Für Redis-Replikate ist insbesondere die Klasse replica relevant. Prüfen Sie zunächst mit CONFIG GET client-output-buffer-limit die aktuellen Werte. Eine Anpassung kann beispielsweise so aussehen:
CONFIG SET client-output-buffer-limit "replica 512mb 128mb 60"
Damit wird für Replikate ein harter Grenzwert von 512 MB und ein weicher Grenzwert von 128 MB über 60 Sekunden festgelegt. Diese Werte sind lediglich ein Beispiel und sollten anhand der verfügbaren RAM-Kapazität und des tatsächlichen Replikationsrückstands gewählt werden.
repl-backlog-size steuert dagegen die Größe des Replikations-Backlogs, das Redis für partielle Synchronisierungen (PSYNC) verwendet. Eine Erhöhung kann vollständige Synchronisierungen vermeiden, wenn die Verbindung kurzzeitig ausfällt und die benötigten Änderungen noch im Backlog vorhanden sind. Prüfen Sie den aktuellen Wert mit CONFIG GET repl-backlog-size und passen Sie ihn bei Bedarf beispielsweise über CONFIG SET repl-backlog-size 256mb an.
Speichern Sie die Änderungen anschließend dauerhaft in der Redis-Konfiguration, da CONFIG SET je nach Konfiguration nicht über einen Neustart hinweg erhalten bleibt. Bei Redis-Versionen, die CONFIG REWRITE unterstützen, können Sie damit die Laufzeitkonfiguration in die Konfigurationsdatei schreiben; prüfen Sie vorher, ob dies in Ihrer Umgebung zulässig ist.
Wenn die vollständige Synchronisierung weiterhin wiederholt abbricht, untersuchen Sie die Redis-Logs auf Meldungen über überschrittene Client-Puffergrenzen, prüfen Sie RAM-Auslastung und Netzwerkstabilität und vergleichen Sie die Replikationsraten von Master und Replica. Für eine präzise Empfehlung benötige ich Ihre Redis-Version, die ungefähre Datensatzgröße und die aktuellen Werte beider Parameter.
Domic Vo.