Verwalten von reserviertem Speicher - Amazon ElastiCache (Redis OSS)

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.

Verwalten von reserviertem Speicher

Reservierter Speicher ist Speicher, der nicht für Daten verwendet werden soll. Bei der Durchführung eines Backups oder Failovers verwendet Redis OSS den verfügbaren Speicher, um Schreibvorgänge in Ihrem Cluster aufzuzeichnen, während die Daten des Clusters in die RDB-Datei geschrieben werden. Wenn nicht genügend Speicher für alle Schreibvorgängen zur Verfügung steht, tritt ein Fehler auf. Im Folgenden finden Sie Informationen zu Optionen für die Verwaltung von reserviertem Speicher für ElastiCache (Redis OSS) und zur Anwendung dieser Optionen.

Wie viel reservierten Speicher benötigen Sie?

Wenn Sie eine Version von Redis OSS vor 2.8.22 ausführen, reservieren Sie mehr Speicher für Backups und Failover, als wenn Sie Redis OSS 2.8.22 oder höher ausführen. Diese Anforderung ist auf die unterschiedlichen Methoden zurückzuführen, mit denen ElastiCache (Redis OSS) den Backup-Prozess implementiert. Als Faustregel gilt, dass die Hälfte des maxmemory Werts eines Knotentyps für den Redis OSS-Overhead für Versionen vor 2.8.22 und ein Viertel für Redis OSS-Versionen 2.8.22 und höher reserviert wird.

Aufgrund der unterschiedlichen ElastiCache Implementierungsmethoden des Sicherungs- und Replikationsprozesses lautet die Faustregel, 25% des Werts eines Knotentyps mithilfe des Parameters zu reservieren. maxmemory reserved-memory-percent Dies ist der Standardwert und wird in den meisten Fällen empfohlen.

Wenn die Typen Burstable Micro und Small Instances in der Nähe der maxmemory Grenzwerte arbeiten, kann es zu Swap-Nutzung kommen. Um die Betriebssicherheit dieser Instance-Typen bei Backups, Replikationen und hohem Datenaufkommen zu verbessern, empfehlen wir, den Wert des reserved-memory-percent Parameters bei kleinen Instance-Typen um bis zu 30% und bei Micro-Instance-Typen um bis zu 50% zu erhöhen.

Für schreibintensive Workloads auf ElastiCache Clustern mit Daten-Tiering empfehlen wir, den verfügbaren Speicher des Knotens auf reserved-memory-percent bis zu 50% zu erhöhen.

Weitere Informationen finden Sie hier:

Parameter zum Veralten von reserviertem Speicher

Seit dem 16. März 2017 bietet Amazon ElastiCache (Redis OSS) zwei sich gegenseitig ausschließende Parameter für die Verwaltung Ihres Redis OSS-Speichers, undreserved-memory. reserved-memory-percent Keiner dieser Parameter ist Teil der Redis OSS-Distribution.

Je nachdem, wann Sie ElastiCache Kunde wurden, ist der eine oder andere dieser Parameter der Standardparameter für die Speicherverwaltung. Dieser Parameter gilt, wenn Sie einen neuen Redis OSS-Cluster oder eine neue Redis-OSS-Replikationsgruppe erstellen und eine Standardparametergruppe verwenden.

  • Für Kunden, die vor dem 16. März 2017 damit angefangen haben: Wenn Sie einen Redis OSS-Cluster oder eine Redis-OSS-Cluster oder eine Redis-Replikationsgruppe mithilfe der Standardparametergruppe erstellen, lautet Ihr Speicherverwaltungsparameter. reserved-memory In diesem Fall werden null (0) Byte Speicher reserviert.

  • Für Kunden, die am oder nach dem 16. März 2017 angefangen haben: Wenn Sie einen Redis OSS-Cluster oder eine Redis-OSS-Cluster oder eine Redis-Replikationsgruppe mithilfe der Standardparametergruppe erstellen, lautet Ihr Speicherverwaltungsparameter. reserved-memory-percent In diesem Fall sind 25 Prozent des maxmemory-Wertes Ihres Knotens für Nichtdatenzwecke reserviert.

Nachdem Sie sich mit den beiden Speicherverwaltungsparametern von Redis OSS vertraut gemacht haben, ziehen Sie es vielleicht vor, den zu verwenden, der nicht Ihr Standard ist oder nicht die Standardwerte enthält. Wenn dies der Fall ist, können Sie zu dem anderen Verwaltungsparameter für reservierten Speicher wechseln.

Um den Wert dieses Parameters zu ändern, können Sie eine benutzerdefinierte Parametergruppe erstellen und sie ändern, um Ihren bevorzugten Speicherverwaltungsparameter und -wert zu verwenden. Sie können die benutzerdefinierte Parametergruppe dann immer dann verwenden, wenn Sie einen neuen Redis OSS-Cluster oder eine neue Redis-OSS-Cluster- oder Replikationsgruppe erstellen. Existierende Cluster und Replikationsgruppen können Sie so ändern, dass sie die benutzerdefinierte Parametergruppe verwenden.

Weitere Informationen finden Sie hier:

Der Parameter "reserved-memory"

Vor dem 16. März 2017 wurde die gesamte ElastiCache (Redis OSS) reservierte Speicherverwaltung mithilfe des Parameters durchgeführt. reserved-memory Der Standardwert von reserved-memory ist 0. Diese Standardeinstellung reserviert keinen Speicher für den Redis OSS-Overhead und ermöglicht es Redis OSS, den gesamten Speicher eines Knotens mit Daten zu verbrauchen.

Wenn Sie reserved-memory ändern, damit ausreichend Speicher für Sicherungen und Failovers zur Verfügung steht, müssen Sie eine benutzerdefinierte Parametergruppe erstellen. In dieser benutzerdefinierten Parametergruppe legen Sie einen Wert festreserved-memory, der für die Redis OSS-Version, die auf Ihrem Cluster ausgeführt wird, und für den Knotentyp des Clusters geeignet ist. Weitere Informationen finden Sie unter Wie viel reservierten Speicher benötigen Sie?.

Der Parameter reserved-memory ist spezifisch für ElastiCache (Redis OSS) und nicht Teil der allgemeinen Redis OSS-Distribution.

Das folgende Verfahren zeigt, wie Sie reserved-memory den Speicher auf Ihrem Redis OSS-Cluster verwalten.

So reservieren Sie Speicher mithilfe von reserviertem Speicher
  1. Erstellen Sie eine benutzerdefinierte Parametergruppe, indem Sie die Parametergruppenfamilie angeben, die der von Ihnen ausgeführten Engine-Version entspricht, z. B. indem Sie die redis2.8-Parametergruppenfamilie angeben. Weitere Informationen finden Sie unter Erstellen einer Parametergruppe.

    aws elasticache create-cache-parameter-group \ --cache-parameter-group-name redis6x-m3xl \ --description "Redis OSS 2.8.x for m3.xlarge node type" \ --cache-parameter-group-family redis6.x
  2. Berechnen Sie, wie viele Byte Speicher für den Redis OSS-Overhead reserviert werden müssen. Sie finden den Wert von maxmemory für Ihren Knotentyp unter Redis OSS-Knotentyp-spezifische Parameter.

  3. Ändern Sie die benutzerdefinierte Parametergruppe, sodass der Parameter reserved-memory der Anzahl von Bytes entspricht, die Sie im vorherigen Schritt berechnet haben. Im folgenden AWS CLI Beispiel wird davon ausgegangen, dass Sie eine Version von Redis OSS vor 2.8.22 ausführen und die Hälfte der Knoten reservieren müssen. maxmemory Weitere Informationen finden Sie unter Modifizieren einer Parametergruppe.

    aws elasticache modify-cache-parameter-group \ --cache-parameter-group-name redis28-m3xl \ --parameter-name-values "ParameterName=reserved-memory, ParameterValue=7130316800"

    Sie benötigen für jeden verwendeten Knotentyp eine eigene benutzerdefinierte Parametergruppe, da jeder Knotentyp einen anderen maxmemory-Wert hat. Daher benötigt jeder Knotentyp einen anderen Wert für reserved-memory.

  4. Ändern Sie Ihren Redis OSS-Cluster oder Ihre Redis-Replikationsgruppe so, dass sie Ihre benutzerdefinierte Parametergruppe verwendet.

    Mit dem folgenden CLI-Beispiel wird der Cluster my-redis-cluster geändert, damit er ab sofort die benutzerdefinierte Parametergruppe redis28-m3xl verwendet. Weitere Informationen finden Sie unter Einen ElastiCache Cluster ändern.

    aws elasticache modify-cache-cluster \ --cache-cluster-id my-redis-cluster \ --cache-parameter-group-name redis28-m3xl \ --apply-immediately

    Mit dem folgenden CLI-Beispiel wird die Replikationsgruppe my-redis-repl-grp geändert, damit sie ab sofort die benutzerdefinierte Parametergruppe redis28-m3xl verwendet. Weitere Informationen finden Sie unter Ändern einer Replikationsgruppe.

    aws elasticache modify-replication-group \ --replication-group-id my-redis-repl-grp \ --cache-parameter-group-name redis28-m3xl \ --apply-immediately

Der Parameter reserved-memory-percent

Am 16. März 2017 ElastiCache führte Amazon den Parameter ein reserved-memory-percent und stellte ihn in allen Versionen von ElastiCache (Redis OSS) zur Verfügung. Der Zweck von reserved-memory-percent besteht darin, die Verwaltung des reservierten Speichers für alle Ihre Cluster zu vereinfachen. Dies wird dadurch erreicht, dass Sie eine einzige Parametergruppe für jede Parametergruppenfamilie (wie redis2.8) zur Verfügung haben, um den reservierten Speicher Ihrer Cluster unabhängig vom Knotentyp zu verwalten. Der Standardwert für reserved-memory-percent ist 25 (25 Prozent).

Der Parameter reserved-memory-percent ist spezifisch für ElastiCache (Redis OSS) und nicht Teil der allgemeinen Redis OSS-Distribution.

Wenn Ihr Cluster einen Knotentyp aus der R6gd-Familie verwendet und Ihre Speicherauslastung 75 Prozent erreicht, wird Daten-Tiering automatisch ausgelöst. Weitere Informationen finden Sie unter Daten-Tiering.

Um Speicher zu reservieren mit reserved-memory-percent

Um den Speicher auf Ihrem ElastiCache (Redis OSS) -Cluster zu verwalten, führen Sie einen der folgenden Schritte aus: reserved-memory-percent

  • Wenn Sie Redis OSS 2.8.22 oder höher ausführen, weisen Sie Ihrem Cluster die Standardparametergruppe zu. Der Standardwert 25 Prozent sollte ausreichen. Falls nicht, führen Sie die folgenden Schritte aus, um den Wert zu ändern.

  • Wenn Sie eine Version von Redis OSS vor 2.8.22 ausführen, müssen Sie wahrscheinlich mehr Speicher als die standardmäßigen 25 Prozent reservieren. reserved-memory-percent Führen Sie dazu die folgenden Schritte aus.

Um den Prozentwert von zu ändern reserved-memory-percent
  1. Erstellen Sie eine benutzerdefinierte Parametergruppe, indem Sie die Parametergruppenfamilie angeben, die der von Ihnen ausgeführten Engine-Version entspricht, z. B. indem Sie die redis2.8-Parametergruppenfamilie angeben. Eine benutzerdefinierte Parametergruppe ist erforderlich, da Sie eine Standardparametergruppe nicht ändern können. Weitere Informationen finden Sie unter Erstellen einer Parametergruppe.

    aws elasticache create-cache-parameter-group \ --cache-parameter-group-name redis28-50 \ --description "Redis OSS 2.8.x 50% reserved" \ --cache-parameter-group-family redis2.8

    Da reserved-memory-percent Speicher als Prozentanteil von maxmemory eines Knotens reserviert, benötigen Sie keine benutzerdefinierte Parametergruppe für jeden Knotentyp.

  2. Ändern Sie die benutzerdefinierte Parametergruppe, sodass reserved-memory-percent 50 (50 Prozent) beträgt. Weitere Informationen finden Sie unter Modifizieren einer Parametergruppe.

    aws elasticache modify-cache-parameter-group \ --cache-parameter-group-name redis28-50 \ --parameter-name-values "ParameterName=reserved-memory-percent, ParameterValue=50"
  3. Verwenden Sie diese benutzerdefinierte Parametergruppe für alle Redis OSS-Cluster oder Replikationsgruppen, auf denen eine Version von Redis OSS ausgeführt wird, die älter als 2.8.22 ist.

    Das folgende CLI-Beispiel ändert den Redis OSS-Cluster somy-redis-cluster, dass er redis28-50 ab sofort die benutzerdefinierte Parametergruppe verwendet. Weitere Informationen finden Sie unter Einen ElastiCache Cluster ändern.

    aws elasticache modify-cache-cluster \ --cache-cluster-id my-redis-cluster \ --cache-parameter-group-name redis28-50 \ --apply-immediately

    Das folgende CLI-Beispiel ändert die Redis OSS-Replikationsgruppe somy-redis-repl-grp, dass sie redis28-50 ab sofort die benutzerdefinierte Parametergruppe verwendet. Weitere Informationen finden Sie unter Ändern einer Replikationsgruppe.

    aws elasticache modify-replication-group \ --replication-group-id my-redis-repl-grp \ --cache-parameter-group-name redis28-50 \ --apply-immediately

Angabe Ihres Parameters für die Verwaltung reservierten Arbeitsspeichers

Wenn Sie am 16. März 2017 ein aktueller ElastiCache Kunde waren, lautet Ihr Standardparameter für die Verwaltung von reserviertem Speicher reserved-memory mit null (0) Byte reserviertem Speicher. Wenn Sie nach dem 16. März 2017 ElastiCache Kunde wurden, ist reserved-memory-percent Ihr Standardparameter für die Verwaltung von reserviertem Speicher so, dass 25 Prozent des Speichers des Knotens reserviert sind. Dies gilt unabhängig davon, wann Sie Ihren ElastiCache (Redis OSS) -Cluster oder Ihre Replikationsgruppe erstellt haben. Sie können Ihren Parameter für die Verwaltung des reservierten Speichers jedoch entweder mithilfe der ElastiCache API AWS CLI oder ändern.

Die Parameter reserved-memory und reserved-memory-percent schließen sich gegenseitig aus. Eine Parametergruppe verfügt immer über einen dieser Parameter, niemals jedoch über beide. Sie können den Parameter ändern, den eine Parametergruppe für die Verwaltung von reserviertem Speicher verwendet, indem Sie die Parametergruppe ändern. Die Parametergruppe muss eine benutzerdefinierte Parametergruppe sein, da Sie die Standardparametergruppen nicht ändern können. Weitere Informationen finden Sie unter Erstellen einer Parametergruppe.

Um zu spezifizieren reserved-memory-percent

Um reserved-memory-percent als Verwaltungsparameter für reservierten Speicher zu verwenden, ändern Sie eine benutzerdefinierte Parametergruppe mit dem modify-cache-parameter-group-Befehl. Verwenden Sie den parameter-name-values-Parameter zum Angeben von reserved-memory-percent sowie einen Wert dafür.

Mit dem folgenden CLI-Beispiel wird die benutzerdefinierte Parametergruppe redis32-cluster-on geändert, sodass sie reserved-memory-percent zum Verwalten von reserviertem Speicher verwendet. Für die Parametergruppe muss ParameterValue ein Wert zugewiesen werden, um den ParameterName-Parameter für die Verwaltung des reservierten Speichers zu verwenden. Weitere Informationen finden Sie unter Modifizieren einer Parametergruppe.

aws elasticache modify-cache-parameter-group \ --cache-parameter-group-name redis32-cluster-on \ --parameter-name-values "ParameterName=reserved-memory-percent, ParameterValue=25"
So geben Sie reserved-memory an

Um reserved-memory als Verwaltungsparameter für reservierten Speicher zu verwenden, ändern Sie eine benutzerdefinierte Parametergruppe mit dem modify-cache-parameter-group-Befehl. Verwenden Sie den parameter-name-values-Parameter zum Angeben von reserved-memory sowie einen Wert dafür.

Mit dem folgenden CLI-Beispiel wird die benutzerdefinierte Parametergruppe redis32-m3xl geändert, sodass sie reserved-memory zum Verwalten von reserviertem Speicher verwendet. Für die Parametergruppe muss ParameterValue ein Wert zugewiesen werden, um den ParameterName-Parameter für die Verwaltung des reservierten Speichers zu verwenden. Da die Engine-Version höher als 2.8.22 ist, wird der Wert auf 3565158400 gesetzt. Dieser Wert entspricht 25 % des Werts von maxmemory für cache.m3.xlarge. Weitere Informationen finden Sie unter Modifizieren einer Parametergruppe.

aws elasticache modify-cache-parameter-group \ --cache-parameter-group-name redis32-m3xl \ --parameter-name-values "ParameterName=reserved-memory, ParameterValue=3565158400"