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 von Ihrer Clientanwendung sollten Sie geöffnet lassen?
- Wie überwachen Sie die Anzahl der Clientverbindungen für Ihre Instanz?
- Was tun, wenn Sie zu viele Clientverbindungen haben?
- Angenommen, Sie haben eine bevorstehende Veranstaltung, die zu einem Anstieg des Traffics für Ihr Unternehmen führen wird. Was tun Sie?
- Wie sichern Sie Ihre Daten?
- Was sind die Best Practices für Clientcode?
- Welche Optionen gibt es für die Datenresilienz?
- Wie erzielen Sie die beste Leistung für Ihre Instanz?
- Wie können Sie die Hochverfügbarkeit für Ihre Instanz optimieren?
Wie viel Arbeitsspeicher und CPU sollten Sie verwenden?
Wir empfehlen, dass die Arbeitsspeichernutzung nicht mehr als 80% des Standardwerts von maxmemory beträgt. Wir empfehlen außerdem, eine durchschnittliche CPU-Auslastung von 60 % zu erreichen. Dieser Puffer sorgt dafür, dass Sie den Verlust einer einzelnen Verfügbarkeitszone, die etwa ein Drittel Ihrer Gesamtkapazität ausmacht, tolerieren können. 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?
Wenn Sie die CPU-Nutzung sowohl für Ihren primären Memorystore for Valkey-Knoten als auch für seine Lesereplikate überwachen möchten, verwenden Sie den Messwert /instance/cpu/maximum_utilization. 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. Mit diesem Messwert wird die Arbeitsspeichernutzung für einen einzelnen Knoten in Ihrer Instanz gemessen, von 0,0 (0%) bis 1,0 (100%).
Wie richten Sie Benachrichtigungen ein, um Ihre CPU- und Arbeitsspeicherauslastung zu überwachen?
Mit Cloud Monitoring können Sie Monitoring-Benachrichtigungen für Ihre CPU- und Arbeitsspeichernutzung festlegen. Sie können beispielsweise eine Benachrichtigung einrichten, die Sie informiert, wenn der Messwert /instance/memory/maximum_utilization einen von Ihnen festgelegten Grenzwert überschreitet. Weitere Informationen finden Sie unter Monitoring-Benachrichtigung für die Arbeitsspeichernutzung festlegen.
Wie viele Verbindungen von Ihrer Clientanwendung sollten Sie geöffnet lassen?
Wir empfehlen, Benchmarks für Ihren Kunden 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 Verbindungsüberlastung 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 der 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 gleich dem maximalen Wert ist, 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 Verbindungsüberlastung auf Valkey vermeiden.
Angenommen, Sie haben eine bevorstehende Veranstaltung, die zu einem sprunghaften Anstieg des Traffics für Ihr Unternehmen führen wird. Wie gehen Sie vor?
Sie können Memorystore for Valkey an Ihre Geschäftsanforderungen anpassen. In diesem Fall haben Sie folgende Möglichkeiten, die Kapazität Ihrer Instanz zu erhöhen:
- Sie können der Instanz Shards hinzufügen. Dadurch kann die Instanz mehr CPU-Auslastung für die Verarbeitung größerer Datenmengen oder mehr Traffic 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 bewältigen, ohne dass die Leistung nachlässt.
- 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 der Instanz bestimmt. Sie können beispielsweise den Knotentyp von
standard-smallinhighmem-mediumändern.
Wir empfehlen, die Kapazität für Ihre Instanz einige Tage vor dem Event zu erhöhen. Um die Kapazität Ihrer Instanz zu skalieren und die Geschwindigkeit und Zuverlässigkeit der Skalierung zu erhöhen, sollten Sie die Skalierung während verkehrsarmen Zeiten vornehmen. Informationen zum Überwachen des Instanz-Traffics 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 im Modus 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, müssen Sie darauf achten, dass es sich um einen Cluster-kompatiblen Valkey-Client handelt, 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 der Leistungsaufwand durch Weiterleitungen vermieden. Weitere Informationen finden Sie unter Best Practices für Valkey-Clients.
Wir empfehlen, das Zeitlimit für Verbindungen auf fünf Sekunden und das Zeitlimit 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 Fehlerbehandlung für Netzwerkanwendungen, wenn der Client eine fehlgeschlagene Anfrage regelmäßig mit zunehmenden Verzögerungen zwischen den Anfragen wiederholt.
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. Dies 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 Datenlanglebigkeit Priorität einräumen möchten. Bei der AOF-Persistenz werden Daten dauerhaft gespeichert, indem jeder Schreibbefehl in einer Logdatei namens AOF-Datei aufgezeichnet wird. Bei einem Systemausfall oder Neustart spielt der Server die Befehle in 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 eines Notfalls 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. Dies ermöglicht die Zusammenarbeit, die Offlinedatenanalyse und den Datenaustausch.
- Compliance: Erstellen Sie regelmäßige Sicherungen von Cache-Daten für Compliance-Zwecke.
- Sicherungen planen: Neben der Erstellung 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 in verschiedenen Regionen für Lesezugriffe verfügbar zu machen. Sekundäre Instanzen bieten auch Redundanz für Notfallwiederherstellungsszenarien im Falle regionaler Ausfälle.
Die regionenü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 zur sekundären Instanz in einer anderen Region trennen oder ein Switchover zur sekundären Instanz durchführen, um Lese- und Schreibanfragen zu verarbeiten. Sekundäre Instanzen verarbeiten Leseanfragen, ohne einen Switchover- oder Detach-Befehl auszugeben.
- Geografisch verteilte Daten: Durch die geografische Verteilung der Daten werden die Daten näher an Sie herangebracht und die Leselatenz wird verringert.
- Geografisches Load-Balancing für Lesetraffic: Bei langsamen oder überlasteten Verbindungen in einer Region können Sie den Traffic an eine andere Region weiterleiten.
Wie erzielen Sie die beste Leistung für Ihre Instanz?
So optimieren Sie die Leistung Ihrer Memorystore for Valkey-Instanz:
- Halten Sie sich an die Best Practices für Speicherverwaltung und CPU-Nutzung, 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 Probleme mit Administratoraktivitäten für die Instanz (das
Admin Activity-Audit-Log) oder mit Nutzern, die auf Instanzdaten zugreifen (dasData Access-Audit-Log), vorliegen. - 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 die Verwendung ressourcenintensiver 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, da der Valkey-Hauptthread blockiert ist
- Systemdiagnosen, die nicht ausgeführt werden, Beobachtbarkeit und Replikation
Verwenden Sie stattdessen ressourcenschonendere Befehle. Verwenden Sie beispielsweise nicht den Befehl
KEYS, um den gesamten Schlüsselbereich 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 aktuelle Instanzversion durch. Neuere Softwareversionen bieten Verbesserungen in Bezug auf Zuverlässigkeit und Leistung.
Ändern Sie den Wert des Parameters
maxmemory-policy. Mit diesem Parameter wird das Verhalten von Valkey festgelegt, wenn die Instanzdaten dasmaxmemory-Limit erreichen.Wenn der Instanzspeicher voll ist und ein neuer Schreibvorgang eingeht, entfernt Valkey Schlüssel, um Platz für den Schreibvorgang zu schaffen. Dabei wird die
maxmemory-Richtlinie Ihrer Instanz berücksichtigt. Wenn der Wert des Parameters
maxmemory-policyaufnoevictiongesetzt ist, gibt Memorystore for Valkey einen Fehler zurück, wenn Ihre Instanz den maximalen Arbeitsspeicher erreicht. Memorystore for Valkey überschreibt oder entfernt jedoch keine Daten. 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-policyfestlegen 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_countundtotal_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.
Wenn Sie die Trefferquote erhöhen, verbessern Sie die Latenz und den Durchsatz Ihres Systems. 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 Verbindungsübersättigung 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 zum Konfigurieren des Pipelining die Clientbibliothek. 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 eine höhere Zuverlässigkeit bieten.
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. Replikations-Offset ist die Anzahl der Bytes, die von Memorystore for Valkey zwischen dem primären Knoten und den Lesereplikaten noch nicht repliziert wurden.