Stellen Sie sicher, dass Sie über genügend Speicherplatz verfügen, um einen Valkey- oder OSS Redis-Snapshot zu erstellen - Amazon ElastiCache

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Stellen Sie sicher, dass Sie über genügend Speicherplatz verfügen, um einen Valkey- oder OSS Redis-Snapshot zu erstellen

Schnappschüsse und Synchronisationen in Valkey 7.2 und höher sowie in Redis Version 2.8.22 und höher OSS

Valkey unterstützt standardmäßig Snapshots und Synchronisationen. Redis OSS 2.8.22 führt einen forkless-Speicherprozess ein, mit dem Sie einen größeren Teil Ihres Speichers für die Nutzung durch Ihre Anwendung zuweisen können, ohne dass bei Synchronisationen und Speichervorgängen eine erhöhte Swap-Auslastung entsteht. Weitere Informationen finden Sie unter So werden Synchronisation und Backup implementiert.

Redis-Snapshots und Synchronisationen vor Version OSS 2.8.22

Wenn Sie mit ElastiCache (RedisOSS) arbeiten, OSS ruft Redis in einer Reihe von Fällen einen Schreibbefehl im Hintergrund auf:

  • Beim Erstellen eines Snapshots für eine Sicherung

  • Beim Synchronisieren von Replikaten mit dem primären Cluster in einer Replikationsgruppe

  • Wenn Sie die Funktion „Nur Dateien anhängen“ () AOF für Redis aktivieren. OSS

  • Beim Hochstufen eines Replikats zu einem primären (was eine primäre/Replikat-Synchronisierung verursacht).

Immer wenn Redis einen Schreibvorgang im Hintergrund OSS ausführt, müssen Sie über ausreichend verfügbaren Speicher verfügen, um den Prozessaufwand zu bewältigen. Wenn nicht genügend Arbeitsspeicher verfügbar ist, schlägt der Vorgang fehl. Aus diesem Grund ist es wichtig, bei der Erstellung Ihres OSS Redis-Clusters einen Knoteninstanztyp auszuwählen, der über ausreichend Speicher verfügt.

Schreibvorgang im Hintergrund und Speichernutzung mit Valkey und Redis OSS

Immer wenn ein Schreibprozess im Hintergrund aufgerufen wird, OSS forken Valkey und Redis seinen Prozess ab (denken Sie daran, dass diese Engines Single-Threading verwenden). Ein Fork speichert Ihre Daten auf der Festplatte in einer OSS Redis-.rdb-Snapshot-Datei. Die andere Vergabelung führt alle Lese- und Schreibvorgänge durch. Um sicherzustellen, dass es sich bei Ihrem Snapshot um einen point-in-time Snapshot handelt, werden alle Datenaktualisierungen und -ergänzungen in einen vom Datenbereich getrennten Bereich des verfügbaren Speichers geschrieben.

Solange genügend Arbeitsspeicher zum Aufzeichnen aller Schreibvorgänge verfügbar ist, während die Daten dauerhaft auf dem Datenträger erhalten bleiben, treten keine Probleme aufgrund von Speichermangel auf. Wenn vermehrt Probleme aufgrund von Speichermangel auftreten, treffen beliebige der folgenden Situationen ein:

  • Ihre Anwendung führt viele Schreibvorgänge aus und benötigt daher eine große Menge an verfügbarem Arbeitsspeicher zum Akzeptieren neuer oder aktualisierter Daten.

  • Es ist sehr wenig Arbeitsspeicher zum Schreiben neuer oder aktualisierter Daten verfügbar.

  • Die dauerhafte Erhaltung eines großen Datensatzes auf der Festplatte dauert eine lange Zeit und erfordert eine große Anzahl von Schreibvorgängen.

Das folgende Diagramm veranschaulicht die Speichernutzung beim Ausführen eines Hintergrundschreibvorgangs.

Abbildung: Diagramm der Speichernutzung während eines Hintergrundschreibvorgangs.

Informationen zu den Auswirkungen einer Sicherung auf die Leistung finden Sie unter Auswirkungen von Backups selbst entworfener Cluster auf die Leistung.

Weitere Informationen darüber, wie Valkey und Redis Snapshots OSS durchführen, finden Sie unter http://valkey.io.

Weitere Informationen zu Regionen und Availability Zones finden Sie unter Auswahl von Regionen und Verfügbarkeitszonen für ElastiCache.

Vermeidung von Speichermangel beim Ausführen eines Hintergrundschreibvorgangs

Immer wenn ein Schreibvorgang im Hintergrund wie BGSAVE oder aufgerufen BGREWRITEAOF wird, muss mehr Speicher verfügbar sein, als durch Schreibvorgänge während des Vorgangs verbraucht wird, um zu verhindern, dass der Prozess fehlschlägt. Im schlimmsten Fall wird während des Schreibvorgangs im Hintergrund jeder Datensatz aktualisiert und einige neue Datensätze werden dem Cache hinzugefügt. Aus diesem Grund empfehlen wir, den Wert reserved-memory-percent auf 50 (50 Prozent) für OSS Redis-Versionen vor 2.8.22 oder 25 (25 Prozent) für Valkey und alle Redis-Versionen 2.8.22 und höher festzulegen. OSS

Der Wert maxmemory gibt den für die Daten und den Betriebsaufwand verfügbaren Arbeitsspeicher an. Da der Parameter reserved-memory in der Standardparametergruppe nicht geändert werden kann, müssen Sie eine benutzerdefinierte Parametergruppe für den Cluster erstellen. Der Standardwert für reserved-memory ist 0, was es Redis ermöglicht, den gesamten Maximalspeicher mit Daten OSS zu verbrauchen, sodass möglicherweise zu wenig Speicher für andere Zwecke übrig bleibt, z. B. für einen Schreibvorgang im Hintergrund. Informationen zu maxmemory-Werten nach Knoten-Instance-Typ finden Sie unter OSSRedis-Knotentyp-spezifische Parameter.

Sie können reserved-memory Parameter auch verwenden, um den Speicherverbrauch auf der Box zu reduzieren.

Weitere Informationen zu Valkey- und Redis-spezifischen Parametern finden Sie unter. ElastiCache Valkey- und Redis-Parameter OSS

Weitere Informationen zum Erstellen und Ändern von Parametergruppen finden Sie unter Eine ElastiCache Parametergruppe erstellen und Änderung einer ElastiCache Parametergruppe.