Instanz- und Knotenspezifikation

Auf dieser Seite werden die Spezifikationen für Instanzen und Knoten für Memorystore for Valkey-Instanzen beschrieben. Eine Anleitung zum Erstellen einer Instanz finden Sie unter Instanzen erstellen.

Knotentyp auswählen

Die Knoten in Ihrer Instanz verwenden alle denselben Knotentyp, den Sie auswählen. Der beste Knotentyp für Ihre Instanz hängt von Ihren Anforderungen an Preis, Leistung und Keyspace-Kapazität ab.

Der Knotentyp shared-core-nano ist für kleine Arbeitslasten vorgesehen. Dieser Knotentyp bietet eine variable Leistung und hat kein SLA, was ihn für Produktionsarbeitslasten ungeeignet macht.

Mit dem Knotentyp standard-small können Sie kleine Instanzen bereitstellen und Ihre Instanz in kleineren Schritten erweitern. Das ist möglicherweise kostengünstiger als bei anderen Knotentypen. standard-small bietet auch den Vorteil, dass Ihr Keyspace auf mehr Knoten mit einer höheren Gesamtzahl an vCPUs verteilt wird. Das bietet ein besseres Preis-Leistungs-Verhältnis als highmem-medium, sofern die Gesamtkapazität des Schlüsselbereichs der kleineren Knoten für Ihre Datenanforderungen ausreicht.

Wir empfehlen, den Knotentyp highmem-xlarge nur auszuwählen, wenn Sie mehr Instanzkapazität benötigen, als highmem-medium bietet. Der Knotentyp highmem-xlarge ist zwar viermal so groß wie der Typ highmem-medium, die Leistung ist jedoch nicht viermal so hoch, da die Leistung von Valkey 7.2 nicht linear skaliert wird, wenn vCPUs zu immer größeren Knoten hinzugefügt werden (Hochskalierung). Stattdessen sollten Sie die Instanz skalieren, indem Sie ihr weitere Knoten hinzufügen, um eine bessere Preisleistung zu erzielen.

Spezifikation des Knotentyps

Die Knotenkapazität und ‑merkmale hängen davon ab, welchen der vier verfügbaren Knotentypen Sie auswählen:

Keyspace-Kapazität und reservierter Overhead

Knotentyp Standardschreibkapazität für Keyspace Gesamtknotenkapazität
shared-core-nano 1,12 GB 1,4 GB
standard-small 5,2 GB 6,5 GB
highmem-medium 10,4 GB 13 GB
highmem-xlarge 46,4 GB 58 GB

Memorystore reserviert automatisch einen Teil der Instanzkapazität, um Fehler aufgrund von unzureichendem Arbeitsspeicher zu vermeiden. So wird ein reibungsloses Lesen und Schreiben von Schlüsseln gewährleistet. Arbeitsspeicherlimits und Speicherdetails sind wie folgt:

  • Speicher anpassen:Wir empfehlen zwar, die Standardeinstellungen zu verwenden, Sie haben aber die Möglichkeit, die Menge des reservierten Speichers mit der maxmemory-Konfiguration anzupassen. Informationen zu maxmemory finden Sie unter Unterstützte Instanzkonfigurationen.

  • Wie viel Speicherplatz erhalte ich? Sehen Sie sich die Spalte Default writable keyspace capacity (Standardkapazität für beschreibbaren Keyspace) in der vorherigen Tabelle an. Hier sehen Sie, wie viel Speicherplatz für Ihre Schlüssel standardmäßig verfügbar ist.

  • Speicher maximieren: Wenn Sie den maximal möglichen Speicherplatz nutzen möchten, sehen Sie in der Spalte Gesamtknotenkapazität das Speicherlimit, wenn Sie die maxmemory-Konfiguration auf 100 % festlegen. Wir empfehlen jedoch nicht, einen maxmemory-Wert zu wählen, der höher als die Standardeinstellung ist.

  • Der Knotentyp shared-core-nano hat ein festes Limit von 1, 12 GB und kann nicht mit der maxmemory-Konfiguration geändert werden.

Knotenmerkmale

Knotentyp vCPU Anzahl Angebotenes SLA Maximale Anzahl von Clients Maximaler Arbeitsspeicher für Clients (Konfiguration für „maxmemory-clients“)
shared-core-nano 0,5 Nein 5.000 12 %
standard-small 2 Ja 16.000 (Standard). Der Höchstwert ist 32.000. 7 %
highmem-medium 2 Ja 32.000 (Standard). Der Höchstwert beträgt 64.000. 7 %
highmem-xlarge 8 Ja 64.000 4 %

Instanz skalieren

Beim Erstellen einer Memorystore for Valkey-Instanz wählen Sie einen Knotentyp für die Instanz aus und geben die Anzahl der Shards für die Instanz an. Nachdem Sie die Instanz erstellt haben und sich die Kapazitätsanforderungen für Ihre Instanz ändern, müssen Sie die Instanz möglicherweise auf folgende Weise skalieren:

  • Ändern Sie die Anzahl der Shards für Ihre Instanz. Das ist die horizontale Skalierung. Sie können eine Instanz horizontal skalieren, indem Sie eine der folgenden Aktionen ausführen:
    • Fügen Sie der Instanz Shards hinzu. Dadurch wird die Instanz horizontal skaliert.
    • Entfernen Sie Shards aus der Instanz. Die Instanz wird verkleinert.
  • Ändern Sie den Knotentyp für Ihre Instanz. Das ist die vertikale Skalierung. Wenn Sie eine Instanz vertikal skalieren möchten, ändern Sie den Knotentyp der Instanz in einen der folgenden Knotentypen:
    • Wechseln Sie zu einem größeren Knotentyp. Dabei wird die Instanz vertikal skaliert.
    • Wechseln Sie zu einem kleineren Knotentyp. Die Instanz wird herunterskaliert.

Instanzspezifikation

In diesem Abschnitt sehen Sie die Mindest- und Höchstkapazitäten für Instanzen, die sich aus der Instanzform, dem Knotentyp und der Anzahl der Replikate ergeben.

Minimale beschreibbare Kapazität

Die beschreibbare Kapazität ist die Menge an Speicherplatz, die zum Schreiben von Schlüsseln zur Verfügung steht. Sie entspricht der Größe eines Instanzknotens. Je nach Knotentyp beträgt die minimale beschreibbare Kapazität daher 1,4 GB, 6,5 GB, 13 GB oder 58 GB. Die Mindestkapazität für Schreibvorgänge wird durch die Anzahl der ausgewählten Replikate nicht beeinflusst.

Maximale beschreibbare Kapazität

Knotentyp und -größe Maximale Kapazität im Modus „Cluster“ deaktiviert Maximale Kapazität im aktivierten Clustermodus bei einer Instanzkonfiguration von 250 primären Knoten und 0 Replikaten pro Knoten Maximale Kapazität im Clustermodus für eine Instanz mit 125 primären Knoten und 1 Replikat pro Knoten Maximale Kapazität im Clustermodus für eine Instanz mit 83 primären Knoten und 2 Replikaten pro Knoten
shared-core-nano – 1,4 GB 1,12 GB 350 GB 175 GB 116,2 GB
standard-small – 6,5 GB 5,2 GB 1.625 GB 812,5 GB 539,5 GB
highmem-medium – 13 GB 10,4 GB 3.250 GB 1.625 GB 1.079 GB
highmem-xlarge – 58 GB 46,4 GB 14.500 GB 7.250 GB 4.814 GB

Leistung

Bei Verwendung des OSS-Benchmarking-Tools „memtier“ in der Region us-central1 wurden 120.000 bis 130.000 Vorgänge pro Sekunde pro Knoten mit 2 vCPUs (standard-small und highmem-medium) mit Mikrosekundenlatenz und einer Datengröße von 1 KiB erzielt.

Wir empfehlen, eigene Benchmarks mit echten oder synthetischen Arbeitslasten durchzuführen, die Ihrem Produktions-Traffic ähneln. Außerdem empfehlen wir, die Größe Ihrer Instanzen mit einem Puffer (oder „Headroom“) für Arbeitslastspitzen oder unerwartete Zugriffe zu planen. Weitere Informationen finden Sie unter Best Practices.

Instanzendpunkte für aktivierten Clustermodus

In diesem Abschnitt werden die Erkennungs- und Datenendpunkte beschrieben, die eine Instanz mit aktiviertem Clustermodus hat.

Endpunkt der Erkennung

Jede Instanz hat einen Discovery-Endpunkt, mit dem Ihr Client eine Verbindung herstellt. Sie besteht aus einer IP-Adresse und einer Portnummer. Eine Anleitung zum Ermitteln des Discovery-Endpunkts Ihrer Instanz finden Sie unter Discovery-Endpunkt der Instanz ansehen.

Ihr Client verwendet ihn auch für die Knotenerkennung. Ihr Kunde verwendet den Discovery-Endpunkt, um die Knotentopologie Ihrer Instanz abzurufen, um Drittanbieterclients zu booten und im stabilen Zustand auf dem neuesten Stand zu halten. Die resultierende Knotentopologie stellt Knotenendpunkte (IP- und Portkombinationen) bereit, die von Ihrem Drittanbieterclient im Arbeitsspeicher zwischengespeichert werden können. Ihr Client kümmert sich dann automatisch um die Updates und Weiterleitungen, ohne dass weitere Anwendungsänderungen erforderlich sind. Informationen zum Client-Discovery-Verhalten und zu Best Practices finden Sie unter Client Discovery.

Der Discovery-Endpunkt ist hochverfügbar, da er von mehreren Knoten in mehreren Zonen unterstützt wird, um die Knotentopologie bereitzustellen. Die Bereitstellung der Topologie über den Endpunkt ist auch bei Ausfällen von Backend-Knoten oder Knotenaktualisierungen robust.

Ihr Discovery-Endpunkt hat das folgende Verhalten:

  1. Der Discovery-Endpunkt Ihrer Instanz bleibt während des gesamten Lebenszyklus der Instanz unverändert, auch während der Wartung oder bei anderen Aktionen, die Sie ausführen, z. B. beim Skalieren oder Ändern der Anzahl der Replikate.

  2. Knotenendpunkte können sich ändern und wiederverwendet werden, wenn im Laufe der Zeit Knoten hinzugefügt und entfernt werden. Im Idealfall verwenden Sie einen Drittanbieterclient, der diese Änderungen automatisch durch Topologieaktualisierungen und Weiterleitungen verarbeiten kann. Beispiele für Drittanbieterclients finden Sie unter Codebeispiele für die Clientbibliothek. Ihre Anwendung sollte keine Abhängigkeiten oder Annahmen haben, dass Knotenendpunkte für eine bestimmte Instanz unverändert bleiben.

Datenendpunkt

Jede Instanz hat auch einen Private Service Connect-Datenendpunkt, den Memorystore for Valkey für die Clientverbindung verwendet. Stellen Sie keine direkte Verbindung zu diesem Endpunkt her. Stattdessen verwendet Memorystore for Valkey diesen Endpunkt, um Ihren Client mit Knoten in Ihrer Instanz zu verbinden.

Instanzendpunkte für deaktivierten Clustermodus

In diesem Abschnitt werden die primären und Reader-Endpunkte beschrieben, die jede Instanz mit deaktiviertem Clustermodus hat.

Primärer Endpunkt

Der primäre Endpunkt ist eine IP-Adresse, mit der sich Ihre Anwendung verbindet. Dieser Endpunkt leitet den Traffic an den aktuellen primären Knoten weiter. Über Verbindungen zum primären Endpunkt können sowohl Schreib- als auch Leseabfragen gesendet werden.

Ihr primärer Endpunkt weist das folgende Verhalten auf:

  1. Die IP-Adresse des primären Endpunkts bleibt während des gesamten Lebenszyklus der Instanz unverändert. Wenn der zugrunde liegende Knoten ausfällt oder ein automatisches Failover erfolgt, passt Memorystore for Valkey die IP-Adresse automatisch an. Für Clients sind keine Änderungen am Endpunkt erforderlich. Wenn jedoch ungeplante Ereignisse zu Verbindungsfehlern führen, versuchen die Clients, die Verbindung wiederherzustellen.
  2. Wenn ein primärer Knoten zum Replikat wird, werden die Verbindungen zu diesem Replikatknoten beendet und Memorystore for Valkey leitet neue Verbindungen über ein automatisches Failover an den neuen primären Knoten weiter. Clients sollten Verbindungen mit exponentiellem Backoff wiederholen.
  3. Wenn die Instanz ein Replikat hat, hat der primäre Endpunkt eine höhere Verfügbarkeit als der Leseendpunkt. Wenn für die Instanz zwei Replikate bereitgestellt sind, sind sowohl der primäre Endpunkt als auch der Leseendpunkt hochverfügbar.

Reader-Endpunkt

Der Leseendpunkt ist eine IP-Adresse, mit der sich Ihre Anwendung verbindet. Dieser Endpunkt verteilt die Verbindungen gleichmäßig auf die Replikate in der Instanz. Verbindungen zum Lesereplikat können Leseabfragen senden, aber keine Schreibabfragen. Der Leseendpunkt erhöht den Durchsatz und sorgt für eine Traffic-Isolation vom primären Knoten. Für Anwendungen, die operativen Zugriff erfordern, z. B. riskante Skripts und Offline-Jobs, empfehlen wir, den Traffic vom primären Knoten zu isolieren, indem Sie den Leseendpunkt verwenden.

Ihr Reader-Endpunkt hat das folgende Verhalten:

  1. Auch wenn für eine Instanz keine Lesereplikate bereitgestellt sind, wird die IP-Adresse des Leseendpunkts in Memorystore for Valkey bereitgestellt, um das dynamische Hinzufügen von Lesereplikaten zu ermöglichen.
  2. Wenn das System keine verfügbaren Lesereplikate hat, an die Traffic weitergeleitet werden kann, wird eine Verbindung zum Leseendpunkt beendet. Verbindungen zum Leseendpunkt werden jedoch nicht zum primären Knoten weitergeleitet.
  3. Wenn ein Replikatknoten zum primären Knoten wird, werden die Verbindungen zu diesem primären Knoten beendet und Memorystore for Valkey leitet neue Verbindungen an den neuen Replikatknoten weiter. Clients wiederholen diese Verbindungen mit exponentiellem Backoff.

Informationen zum Beheben häufiger Fehler beim Herstellen einer Verbindung zu Endpunkten im Modus „Cluster Mode Disabled“ finden Sie unter Fehlerbehebung im Modus „Cluster Mode Disabled“.