Auf dieser Seite finden Sie Antworten auf die folgenden häufig gestellten Fragen zur Verwendung von Memorystore for Valkey:
- Wie viel CPU und Arbeitsspeicher sollten Sie verwenden?
- Wie überwachen Sie, wie viel CPU und Arbeitsspeicher Sie verwenden?
- Wie richte ich Benachrichtigungen ein, um meine CPU- und Arbeitsspeichernutzung zu überwachen?
- Wie viele Verbindungen Ihrer Clientanwendung sollten Sie geöffnet lassen?
- Wie überwachen Sie die Anzahl der Clientverbindungen für Ihre Instanz?
- Was kann ich tun, wenn ich zu viele Clientverbindungen habe?
- Angenommen, Sie haben eine bevorstehende Veranstaltung, die zu einem Anstieg des Traffics für Ihr Unternehmen führen wird. Was tun Sie?
- Wie schützen Sie Ihre Daten?
- Was sind die Best Practices für Clientcode?
- Welche Optionen haben Sie für die Datenresilienz?
- Wie erzielen Sie die beste Leistung für Ihre Instanz?
- Wie kann ich die Hochverfügbarkeit für meine Instanz optimieren?
Wie viel Arbeitsspeicher und CPU sollten Sie verwenden?
Wir empfehlen, dass die Arbeitsspeichernutzung nicht mehr als 80 % beträgt. Wir empfehlen außerdem, eine durchschnittliche CPU-Auslastung von 60 % zu erreichen. So können Sie den Verlust einer einzelnen Verfügbarkeitszone tolerieren, was etwa einem Drittel Ihrer Gesamtkapazität entspricht. In diesem Szenario beträgt die durchschnittliche CPU-Auslastung auf den verbleibenden Knoten etwa 90%.
Wie überwachen Sie, wie viel CPU und Arbeitsspeicher Sie verwenden?
Verwenden Sie den Messwert /instance/cpu/maximum_utilization
, um die CPU-Auslastung sowohl für den primären Memorystore for Valkey-Knoten als auch für seine Lesereplikate zu überwachen. Mit diesem Messwert wird die maximale CPU-Auslastung aller Knoten in Ihrer Instanz gemessen, von 0,0 (0%) bis 1,0 (100%). Weitere Informationen finden Sie unter Best Practices für die CPU-Nutzung.
Verwenden Sie den Messwert /instance/node/memory/utilization
, um den Arbeitsspeicher zu überwachen, der von Ihrem primären Memorystore for Valkey-Knoten und seinen Lesereplikaten verwendet wird. Dieser Messwert gibt die Speicherauslastung für einen einzelnen Knoten in Ihrer Instanz an, von 0,0 (0%) bis 1,0 (100%).
Wie richten Sie Benachrichtigungen ein, um Ihre CPU- und Speicherauslastung zu überwachen?
Verwenden Sie Cloud Monitoring, um Monitoring-Benachrichtigungen für Ihre CPU- und Arbeitsspeichernutzung festzulegen. Sie können beispielsweise eine Benachrichtigung einrichten, die Sie informiert, wenn der Messwert /instance/memory/maximum_utilization
einen von Ihnen festgelegten Schwellenwert überschreitet. Weitere Informationen finden Sie unter Monitoring-Benachrichtigung für die Speichernutzung festlegen.
Wie viele Verbindungen von Ihrer Clientanwendung sollten Sie geöffnet lassen?
Wir empfehlen, Benchmarks für Ihren Client zu verwenden, um die optimale Einstellung zu ermitteln. Der empfohlene Ausgangspunkt für jeden Client ist eine Verbindung pro Valkey-Knoten. Weitere Informationen finden Sie unter Überlastung von Verbindungen auf Valkey vermeiden.
Wir empfehlen außerdem, Pipelining für Ihren Client zu aktivieren, damit er mehr Anfragen schneller verarbeiten kann.
Wie überwachen Sie die Anzahl der Clientverbindungen für Ihre Instanz?
Verwenden Sie den Messwert /instance/node/clients/connected_clients
, um die Anzahl der Clientverbindungen zu überwachen, die Sie verwenden. Dieser Messwert gibt die Anzahl der Clients an, die mit jedem Knoten Ihrer Instanz verbunden sind.
Was tun, wenn Sie zu viele Clientverbindungen haben?
Die maximale Anzahl Ihrer Clientverbindungen, die Sie mit dem Messwert /instance/clients/maximum_connected_clients
ermitteln können, muss kleiner sein als der Wert, der mit dem Parameter maxclients
verknüpft ist. Wenn die Werte gleich sind, gehen Sie so vor:
- Beenden Sie alle nicht autorisierten oder unnötigen Verbindungen mit dem Befehl
client kill
. - Prüfen Sie den Knotentyp für Ihre Instanz. Wenn die maximale Anzahl von Clients für den Knotentyp dem maximalen Wert entspricht, den Memorystore for Valkey für den Knotentyp unterstützt, ändern Sie die Größe des Verbindungspools Ihres Clients oder verwenden Sie einen größeren Knotentyp. Weitere Informationen finden Sie unter Überlastung von Verbindungen auf Valkey vermeiden.
Angenommen, Sie haben eine bevorstehende Veranstaltung, die zu einem Traffic-Anstieg für Ihr Unternehmen führen wird. Wie gehen Sie vor?
Sie können Memorystore for Valkey an Ihre geschäftlichen Anforderungen anpassen. In diesem Fall können Sie die Kapazität für Ihre Instanz auf folgende Weise erhöhen:
- Sie können der Instanz Shards hinzufügen. Dadurch kann die Instanz mehr CPU-Auslastung für die Verarbeitung eines größeren Daten- oder Trafficvolumens nutzen. Die Kapazität Ihrer Instanz wird durch die Anzahl der Shards in Ihrer Instanz bestimmt. Durch das Hinzufügen von Shards kann Ihre Anwendung eine erhöhte Nachfrage ohne Leistungseinbußen bewältigen.
- Sie können den Knotentyp in einen größeren Knotentyp ändern. Dadurch erhält die Instanz mehr Arbeitsspeicher. Die Kapazität Ihrer Instanz wird durch den Knotentyp Ihrer Instanz bestimmt. Sie können beispielsweise den Knotentyp von
standard-small
inhighmem-medium
ändern.
Wir empfehlen, die Kapazität für Ihre Instanz einige Tage vor der Veranstaltung zu erhöhen. Außerdem können Sie die Kapazität Ihrer Instanz besser skalieren und die Geschwindigkeit und Zuverlässigkeit der Skalierung erhöhen, wenn Sie die Instanz in Zeiten mit geringem Traffic skalieren. Informationen zum Überwachen von Instanz-Traffic finden Sie unter Instanzen überwachen.
Wie schützen Sie Ihre Daten?
Zum Schutz Ihrer Daten bietet Memorystore for Valkey die folgenden Mechanismen:
- IAM-Authentifizierung (Identity and Access Management): Mit IAM können Sie den Anmeldezugriff für Ihre Nutzer und Dienstkonten verwalten. Die IAM-basierte Authentifizierung ist in Valkey AUTH integriert. So können Sie Anmeldedaten (IAM-Tokens) nahtlos rotieren, ohne auf statische Passwörter angewiesen zu sein.
- Verschlüsselung während der Übertragung: Der gesamte Valkey-Traffic wird mit dem TLS-Protokoll (Transport Layer Security) verschlüsselt. Wenn die Verschlüsselung während der Übertragung aktiviert ist, kommunizieren Valkey-Clients über eine sichere Verbindung. Valkey-Clients, die nicht für TLS konfiguriert sind, werden blockiert.
Was sind die Best Practices für Clientcode?
Damit Sie Clientcode optimal mit Memorystore for Valkey verwenden können, empfehlen wir Ihnen, die folgenden Best Practices zu beachten:
Wenn Sie Ihre Anwendung mit einer Memorystore for Valkey-Instanz mit Cluster Mode Enabled verbinden möchten, verwenden Sie einen von uns empfohlenen Client wie valkey-go, iovalkey, valkey-py oder Valkey GLIDE.
Wenn Sie einen anderen Client verwenden, muss es sich um einen Cluster-kompatiblen Valkey-Client handeln, der eine Zuordnung von Hash-Slots zu den entsprechenden Knoten in der Instanz verwaltet. So können Anfragen an die richtigen Knoten gesendet werden. So wird Leistungsmehraufwand durch Weiterleitungen vermieden. Weitere Informationen finden Sie unter Best Practices für Valkey-Clients.
Wir empfehlen, die Zeitlimitintervalle für Verbindungen auf fünf Sekunden und die Zeitlimitintervalle für Anfragen auf zehn Sekunden festzulegen. Wenn Sie Ihre Zeitüberschreitungen auf kleinere Intervalle festlegen, kann es bei Memorystore for Valkey zu Reconnection-Storms kommen, die den Dienst gefährden können.
Verwenden Sie exponentiellen Backoff als Standardstrategie zur Fehlerbehebung für Netzwerkanwendungen, wenn der Client eine fehlgeschlagene Anfrage regelmäßig noch einmal sendet, wobei die Abstände zwischen den Anfragen immer länger werden.
Verwenden Sie unsere Codebeispiele für die Clientbibliothek. Die Standardwerte für den valkey-go-Client entsprechen beispielsweise allen unseren Empfehlungen. Sie müssen also nichts für diesen Client konfigurieren.
Welche Optionen haben Sie für die Datenresilienz?
Memorystore for Valkey bietet die folgenden Funktionen für die Datenresilienz:
Hochverfügbarkeit: Memorystore for Valkey bietet redundante Kapazität in Replikatknoten. Wenn ein Fehler auftritt, kann Memorystore for Valkey diese Kapazität nutzen, um ohne Ausfallzeiten zu arbeiten.
Persistenz: Wenn Ihre Umgebung unerwartet abstürzt, wird sie von Memorystore for Valkey automatisch wiederhergestellt. Das wird als Persistenz bezeichnet.
Memorystore for Valkey bietet die folgende Art von Persistenz:
RDB-Persistenz (Redis Database): Schützen Sie Ihre Daten, indem Sie Snapshots Ihrer Daten in einem langlebigen Speicher speichern. Sie legen die Häufigkeit dieser Snapshots fest, indem Sie ein Snapshot-Intervall auswählen. Wenn Knotenausfälle auftreten, können Sie Daten auch dann wiederherstellen, wenn kein Failover möglich ist.
AOF-Persistenz (Append-Only File): Verwenden Sie diese Art der Persistenz, wenn Sie der Datenbeständigkeit Priorität einräumen möchten. Bei der AOF-Persistenz werden Daten dauerhaft gespeichert, indem jeder Schreibbefehl in einer Logdatei, der AOF-Datei, aufgezeichnet wird. Bei einem Systemausfall oder Neustart spielt der Server die Befehle der AOF-Datei sequenziell ab, um Ihre Daten wiederherzustellen.
Sicherungen: Sie können Ihre Memorystore for Valkey-Instanzen manuell zu einem bestimmten Zeitpunkt wiederherstellen. Außerdem können Sie Sicherungen verwenden, um Daten zu exportieren und zu analysieren.
Sicherungen sind in den folgenden Szenarien nützlich:
- Notfallwiederherstellung: Verwenden Sie Sicherungen im Rahmen eines Notfallwiederherstellungsplans. Im Falle einer Katastrophe können Sie Ihre Daten in einer neuen Memorystore for Valkey-Instanz wiederherstellen.
- Datenmigration: Daten zwischen verschiedenen Memorystore for Valkey-Instanzen migrieren. Sie können Daten zusammenführen oder in eine andere Region verschieben. Sie können auch Sicherungen aus Memorystore for Valkey-Instanzen wiederherstellen.
- Daten freigeben: Daten zwischen verschiedenen Teams oder Anwendungen freigeben. Das ermöglicht die Zusammenarbeit, die Offline-Datenanalyse und den Datenaustausch.
- Compliance: Erstellen Sie regelmäßige Sicherungen von Cache-Daten für Compliance-Zwecke.
- Sicherungen planen: Neben dem Erstellen einer On-Demand-Sicherung können Sie einen Sicherungszeitplan für eine Instanz konfigurieren. Daher initiiert Memorystore for Valkey regelmäßige Sicherungen für die Instanz.
Regionenübergreifende Replikation: Erstellen Sie sekundäre Instanzen aus einer primären Instanz, um Ihre Instanz für Lesevorgänge in verschiedenen Regionen verfügbar zu machen. Sekundäre Instanzen bieten auch Redundanz für Notfallwiederherstellungsszenarien im Falle regionaler Ausfälle.
Die regionsübergreifende Replikation in Memorystore for Valkey bietet Ihnen die folgenden Vorteile:
- Notfallwiederherstellung: Wenn die Region der primären Instanz nicht mehr verfügbar ist, können Sie die Verbindung zu einer sekundären Instanz in einer anderen Region trennen oder zu ihr wechseln, um Lese- und Schreibanfragen zu verarbeiten. Sekundäre Instanzen verarbeiten Leseanfragen, ohne einen Switchover- oder Trennbefehl auszugeben.
- Geografisch verteilte Daten: Durch die geografische Verteilung von Daten werden diese näher an Sie herangebracht und die Leselatenz wird verringert.
- Geografisches Load-Balancing für Lesetraffic: Wenn in einer Region langsame oder überlastete Verbindungen auftreten, können Sie den Traffic in eine andere Region weiterleiten.
Wie erzielen Sie die beste Leistung für Ihre Instanz?
So optimieren Sie die Leistung Ihrer Memorystore for Valkey-Instanz:
- Beachten Sie die Best Practices für Arbeitsspeicherverwaltung und CPU-Auslastung, da diese Praktiken die beste Leistung für Ihre Instanz ermöglichen.
- Verwenden Sie Audit-Logs, um den Zugriff auf Ihre Instanz zu überwachen. So können Sie feststellen, ob es Probleme mit Administratoraktivitäten für die Instanz (das
Admin Activity
-Audit-Log) oder mit Nutzern gibt, die auf Instanzdaten zugreifen (dasData Access
-Audit-Log). - Verwenden Sie Lesereplikate. In Memorystore for Valkey ist die Replikation asynchron. Die Daten im primären Knoten werden daher nicht sofort in den Replikaten angezeigt. Wenn Sie mit Daten leben können, die nicht ganz aktuell sind, sollten Sie Lesereplikate verwenden. Dadurch werden der Lesedurchsatz und die Latenz erheblich verbessert.
Vermeiden Sie ressourcenintensive Valkey-Befehle. Die Verwendung dieser Befehle kann zu den folgenden Leistungsproblemen führen:
- Hohe Latenz und Client-Zeitüberschreitungen
- Arbeitsspeichermangel durch Befehle, die die Arbeitsspeichernutzung erhöhen
- Datenverlust bei der Knotenreplikation und ‑synchronisierung, weil der Valkey-Hauptthread blockiert ist
- Systemdiagnosen, Beobachtbarkeit und Replikation
Verwenden Sie stattdessen ressourcenschonendere Befehle. Verwenden Sie beispielsweise nicht den Befehl
KEYS
, um den gesamten Keyspace zu scannen. Verwenden Sie stattdessenSCAN
.Weitere Informationen zu ressourcenintensiven Valkey-Befehlen und ihren ressourcenschonenden Alternativen finden Sie unter Ressourcenintensive Valkey-Befehle.
Wenn Sie für Ihre Daten ein Ablaufdatum festlegen können, empfehlen wir Ihnen, dies zu tun. Dadurch wird der Speicherverbrauch reduziert.
Führen Sie ein Upgrade der Version Ihrer Memorystore for Valkey-Instanz auf die neueste Instanzversion durch. Neuere Softwareversionen bieten Verbesserungen in Bezug auf Zuverlässigkeit und Leistung.
Ändern Sie den Wert des Parameters
maxmemory-policy
. Dieser Parameter gibt das Verhalten an, dem Valkey folgt, wenn die Instanzdaten das Limit vonmaxmemory
erreichen.Wenn der Instanzspeicher voll ist und ein neuer Schreibvorgang eingeht, werden die Schlüssel von Valkey entfernt, um Platz für den Schreibvorgang zu schaffen. Dieser Vorgang basiert auf der
maxmemory
-Richtlinie Ihrer Instanz. Wenn der Wert des Parameters
maxmemory-policy
aufnoeviction
gesetzt ist, gibt Memorystore for Valkey einen Fehler zurück, wenn Ihre Instanz den maximalen Arbeitsspeicher erreicht. Bei Memorystore for Valkey werden jedoch keine Daten überschrieben oder entfernt. Um die Verfügbarkeit Ihrer Instanz zu verbessern, ändern Sie den Wert des Parametersmaxmemory-policy
, damit Memorystore for Valkey Schlüssel entfernen kann.Weitere Informationen zu den verschiedenen Werten, die Sie für den Parameter
maxmemory-policy
festlegen können, finden Sie unter Maxmemory-Richtlinien. Weitere Informationen zum Aktualisieren dieses Parameters finden Sie unter Konfigurationsparameter aktualisieren.Optimieren Sie Ihre Memorystore for Valkey-Instanz, damit sie die gewünschte Cache-Trefferquote hat. So können Sie die Größe Ihrer Datenbank anpassen, damit sie den entsprechenden Prozentsatz an Treffern verarbeiten kann.
So optimieren Sie eine Instanz:
- Verwenden Sie die Monitoring-Messwerte
total_keyspace_hits_count
undtotal_keyspace_misses_count
, um die Gesamtzahl der erfolgreichen bzw. fehlgeschlagenen Schlüsselvorgänge für die Instanz zu ermitteln. - Teilen Sie die Gesamtzahl der Treffer durch die Gesamtzahl der Treffer und Fehler
(d. h. Treffer/(Treffer + Fehler)). Der Quotient ist Ihre Trefferquote. - Um die Instanz so zu optimieren, dass Sie die für Sie passende Trefferquote erhalten, müssen Sie die Instanz skalieren. Sie können die Anzahl der Shards erhöhen oder verringern oder den Knotentyp hoch- oder herunterskalieren. Weitere Informationen finden Sie unter Instanzkapazität skalieren.
Durch eine höhere Trefferquote werden Latenz und Durchsatz Ihres Systems verbessert. Finden Sie das richtige Verhältnis, um Ihre Leistungs-, Skalierungs- und Kostenziele zu erreichen.
- Verwenden Sie die Monitoring-Messwerte
Standardmäßig empfehlen wir, Leistungsbenchmarks für Ihre Instanz auszuführen, um festzustellen, ob mehr Verbindungen die Leistung steigern, ohne dass es zu einer Sättigung der Verbindungen kommt. Der empfohlene Ausgangspunkt ist, Ihren Client so zu konfigurieren, dass er eine Verbindung zu jedem Valkey-Knoten öffnet.
Aktivieren Sie das Pipelining für Ihren Client, damit er mehr Anfragen schneller verarbeiten kann. Verwenden Sie die Clientbibliothek, um das Pipelining zu konfigurieren. Weitere Informationen finden Sie in der Dokumentation zu dieser Bibliothek.
Wie können Sie die Hochverfügbarkeit für Ihre Instanz optimieren?
Wir empfehlen, hochverfügbare Instanzen mit mehreren Zonen anstelle von Instanzen mit einer Zone zu erstellen, da sie zuverlässiger sind.
Wenn Sie eine Instanz mit Hochverfügbarkeit erstellen, empfehlen wir, den Messwert /instance/node/replication/offset
zu verwenden. Mit diesem Messwert können Sie den Replikations-Offset (in Byte) für einen einzelnen Knoten in Ihrer Instanz überwachen. Der Replikations-Offset ist die Anzahl der Byte, die von Memorystore for Valkey nicht zwischen dem primären Knoten und den Lesereplikaten repliziert wurden.