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.
Themen
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 desmaxmemory
-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
-
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-familyredis6.x
-
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. -
Ä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ürreserved-memory
. -
Ä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 Parametergrupperedis28-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-nameredis28-m3xl
\ --apply-immediatelyMit dem folgenden CLI-Beispiel wird die Replikationsgruppe
my-redis-repl-grp
geändert, damit sie ab sofort die benutzerdefinierte Parametergrupperedis28-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-nameredis28-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
-
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-familyredis2.8
Da
reserved-memory-percent
Speicher als Prozentanteil vonmaxmemory
eines Knotens reserviert, benötigen Sie keine benutzerdefinierte Parametergruppe für jeden Knotentyp. -
Ä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
" -
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 so
my-redis-cluster
, dass erredis28-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-nameredis28-50
\ --apply-immediatelyDas folgende CLI-Beispiel ändert die Redis OSS-Replikationsgruppe so
my-redis-repl-grp
, dass sieredis28-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-nameredis28-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
"