Auf dieser Seite wird beschrieben, wie sich Ihre Memorystore for Valkey-Instanz während der Skalierung verhält.
Sie können die Kapazität Ihrer Instanz so skalieren:
Sie können die Anzahl der Shards für Ihre Instanz ändern. Das ist die horizontale Skalierung. Sie können eine Instanz auf eine der folgenden Arten horizontal skalieren:
Horizontal skalieren: Erhöhen Sie die Kapazität Ihrer Instanz, um ihr mehr Arbeitsspeicher und Rechenleistung zur Verfügung zu stellen, damit sie ein größeres Daten- oder Trafficvolumen verarbeiten kann. Die Kapazität Ihrer Instanz wird durch die Anzahl der Shards in Ihrer Instanz bestimmt.
Durch das horizontale Skalieren Ihrer Instanz kann Ihre Anwendung eine erhöhte Nachfrage ohne Leistungseinbußen bewältigen. Wenn Sie eine Instanz horizontal skalieren möchten, fügen Sie ihr Shards hinzu.
Herunterskalieren: Reduzieren Sie die Kapazität Ihrer Instanz, wodurch sowohl die Verarbeitungsleistung als auch die Menge des verfügbaren Arbeitsspeichers zum Speichern von Daten verringert werden. Dies ist der Fall, wenn die Datenanforderungen Ihrer Anwendung sinken und Sie die Ressourcennutzung reduzieren müssen, um Kosten zu sparen. Wenn Sie eine Instanz herunterskalieren möchten, reduzieren Sie die Anzahl der Shards in der Instanz.
Sie können den Knotentyp für Ihre Instanz ändern. Das ist vertikale Skalierung. Sie können eine Instanz auf eine der folgenden Arten vertikal skalieren:
- Hochskalieren: Erhöhen Sie die Kapazität Ihrer Instanz. Die Kapazität Ihrer Instanz wird durch den Knotentyp Ihrer Instanz bestimmt. Wenn Sie eine Instanz hochskalieren möchten, ändern Sie den Knotentyp in einen größeren Knotentyp. Sie können Ihre Instanz beispielsweise von einem
standard-small-Knotentyp auf einenhighmem-medium-Knotentyp hochskalieren. Herunterskalieren: Reduzieren Sie die Kapazität Ihrer Instanz. Wenn Sie eine Instanz herunterskalieren möchten, ändern Sie den Knotentyp in einen kleineren Knotentyp. Skalieren Sie Ihre Instanz beispielsweise von einem
highmem-medium-Knotentyp auf einenstandard-small-Knotentyp herunter.
- Hochskalieren: Erhöhen Sie die Kapazität Ihrer Instanz. Die Kapazität Ihrer Instanz wird durch den Knotentyp Ihrer Instanz bestimmt. Wenn Sie eine Instanz hochskalieren möchten, ändern Sie den Knotentyp in einen größeren Knotentyp. Sie können Ihre Instanz beispielsweise von einem
Auswirkungen der Skalierung
Während eines Skalierungsvorgangs wird die Verfügbarkeit Ihrer Instanz nicht beeinträchtigt. Wenn Sie jedoch die Anzahl der Shards in Ihrer Instanz ändern, gleicht Memorystore for Valkey den Schlüsselbereich der Instanz neu aus. Dies kann zu einer erhöhten Latenz während des Skalierungsvorgangs führen.
Die Auswirkungen der vertikalen Skalierung Ihrer Instanz durch Ändern des Knotentyps sind ähnlich wie bei einem Wartungsvorgang.
Fehlerszenarien
Wenn während des Skalierungsvorgangs ein Fehler auftritt, liegt das wahrscheinlich an einem der folgenden Szenarien:
Sie möchten die Shard-Anzahl für Ihre Instanz aktualisieren, haben aber nicht genügend verfügbaren Arbeitsspeicher für den Knotentyp
shared-core-nanofür Ihre Instanz.Sie können dieses Problem beheben, indem Sie entweder Ihre Instanz hochskalieren oder Speicher auf den Knoten Ihrer Instanz freigeben. So leeren Sie Arbeitsspeicher:
- Verbindung zu einer Memorystore for Valkey-Instanz herstellen
- Verwenden Sie den Befehl
gcloud memorystore instances describe, um Details zur Instanz abzurufen, einschließlich der IP-Adresse und der Portnummer. - Notieren Sie sich die IP-Adresse und die Portnummer der Instanz.
Verwenden Sie den folgenden Befehl, um Informationen zu den Knoten der Instanz abzurufen:
valkey-cli -h IP_ADDRESS -p PORT_NUMBER cluster nodes
Ersetzen Sie IP_ADDRESS und PORT_NUMBER durch die Werte, die Sie im vorherigen Schritt notiert haben.
Notieren Sie sich die IP-Adresse und die Portnummer eines Knotens, der nicht genügend freien Speicherplatz hat. Die ID dieses Knotens stimmt mit einer ID überein, die im Fehler angezeigt wird.
Verwenden Sie den folgenden Befehl, um eine Verbindung zu diesem Knoten herzustellen:
valkey-cli -h IP_ADDRESS -p PORT_NUMBER
Ersetzen Sie IP_ADDRESS und PORT_NUMBER durch die Werte, die Sie im vorherigen Schritt notiert haben.
Geben Sie bei der Eingabeaufforderung den Befehl
info memoryein.In der Ausgabe werden Werte für die Parameter
used_memoryundmaxmemoryangezeigt.used_memorygibt an, wie viel Arbeitsspeicher der Knoten verwendet, undmaxmemory, wie viel Arbeitsspeicher für den Knoten verfügbar ist.Teilen Sie den Wert des Parameters
used_memorydurch den Wert des Parametersmaxmemoryund prüfen Sie, ob der Quotient größer als 98 % ist.Wenn Sie Speicherplatz für den Knoten freigeben möchten, löschen Sie einige der Schlüssel des Knotens.
Geben Sie den Befehl
info memorynoch einmal ein. In der Ausgabe ist der Wert des Parametersused_memorykleiner.Teilen Sie den Wert des Parameters
used_memorydurch den Wert des Parametersmaxmemoryund prüfen Sie, ob der Quotient jetzt kleiner als 98 % ist. Wenn nicht, löschen Sie weitere Schlüssel.Wiederholen Sie die Schritte 4 bis 11 dieses Verfahrens für alle anderen Knoten, die nicht genügend freien Speicherplatz haben.
Sie haben auf eine kleinere Anzahl von Shards skaliert, die nicht die Kapazität haben, alle Schlüssel zu speichern, die Memorystore for Valkey in der ursprünglichen Instanz speichert. Skalieren Sie zur Behebung dieses Problems auf eine größere Anzahl von Shards, die alle gespeicherten Schlüssel enthalten können. Weitere Informationen zum Erhöhen der Anzahl der Shards für Ihre Instanz finden Sie unter Shard-Anzahl skalieren.
Sie haben auf einen kleineren Knotentyp skaliert, der nicht die Kapazität hat, alle Daten zu speichern, die Memorystore for Valkey im ursprünglichen Knotentyp speichert. In diesem Fall empfiehlt Memorystore for Valkey einen Knotentyp für die vertikale Herunterskalierung.
Sie haben den Knotentyp für Ihre Instanz aktualisiert und entweder die Standardeinstellungen für den ursprünglichen Knotentyp überschrieben oder diese Einstellungen wurden bereits überschrieben. Der neue, skalierte Knotentyp unterstützt jedoch entweder die Werte für die Standardeinstellungen nicht oder die Einstellungen sind für den Knotentyp nicht gültig. In diesem Fall gibt Memorystore for Valkey einen Fehler zurück. Ändern Sie die Einstellungen manuell, damit sie für den neuen Knotentyp gültig sind.
Sie haben Ihre Instanz in einem Zeitraum mit hohem Schreibdruck skaliert (z. B. während eines Lasttests). Skalieren Sie in Zeiten mit geringem Instanz-Traffic, um dieses Problem zu beheben.
Sie haben einen Slot, der einen großen Schlüssel enthält, und möchten diesen Schlüssel zu einem anderen Knoten migrieren. Dieser Knoten hat jedoch nicht genügend Arbeitsspeicher, um den Schlüssel zu unterstützen. Sie können Ihre Instanz nicht aktualisieren. Reduzieren Sie die Größe des Schlüssels auf weniger als 128 MB, um dieses Problem zu beheben. Versuchen Sie dann noch einmal, den Aktualisierungsvorgang auszuführen.
Die Slotnummer, die ein Knoten einer Instanz besitzt, ist nicht bekannt, sondern nur der Slotbereich. Memorystore for Valkey gibt eine Fehlermeldung zurück. In diesem Fall müssen Sie die Größe des Schlüssels reduzieren und den Aktualisierungsvorgang wiederholen.
Sie haben die Kapazität Ihrer Instanz erhöht, indem Sie auf eine kleinere Shard-Anzahl horizontal skaliert haben. Memorystore for Valkey hat jedoch nicht genügend Arbeitsspeicher, um diese Anfrage zu verarbeiten. Reduzieren Sie dazu die Kapazität Ihrer Instanz, indem Sie sie auf die ursprüngliche, größere Anzahl von Shards herunterskalieren.
Best Practices
Wir empfehlen die folgenden Best Practices, um die Kapazität für Ihre Instanz zu skalieren:
- Zeitpunkt für die Skalierung auswählen: Wenn Sie die Geschwindigkeit und Zuverlässigkeit der Skalierung Ihrer Instanz erhöhen möchten, skalieren Sie sie in Zeiten mit geringem Traffic. Informationen zum Überwachen des Instanz-Traffics finden Sie unter Instanzen überwachen.
- Wiederholen Sie den Vorgang, wenn Sie nicht skalieren können: Die Ressourcenverfügbarkeit ändert sich häufig. Wenn Sie Ihre Instanz aufgrund einer vorübergehenden Ressourceneinschränkung nicht skalieren können, versuchen Sie, die Instanz später zu skalieren.