Auf dieser Seite werden verschiedene Fehlerszenarien erläutert und Anleitungen zur Fehlerbehebung gegeben.
Replikationsszenarien
In diesem Abschnitt werden Replikationsprobleme erläutert, die bei Ihrer Instanz auftreten können.
Wie überwache ich Replikationsverzögerungen?
Memorystore for Valkey hat den /instance/replication/maximum_offset_diff Messwert. Dieser Messwert überwacht die maximale Replikations-Offset-Differenz (in Byte) für einen Knoten in einer primären Instanz.
Wenn die Replikations-Offset-Differenz niedrig gehalten wird, können Replikate häufiger inkrementelle Synchronisierungsvorgänge ausführen, und zwar zu geringeren Kosten als bei vollständigen Synchronisierungsvorgängen.
Wir empfehlen, einen Schwellenwert für den Messwert maximum_offset_diff festzulegen. Wenn der Schwellenwert überschritten wird, kann Memorystore for Valkey Sie mit einer Benachrichtigung informieren.
Je nach Knotentyp für Ihre Instanz empfehlen wir, den Schwellenwert so festzulegen:
Wenn der Knotentyp
shared-core-nano,custom-pico,custom-micro,custom-mini,standard-small,highmem-medium,highcpu-mediumoderstandard-largeist, legen Sie den Schwellenwert auf weniger als 64 MB fest.Wenn der Knotentyp
highmem-xlargeoderhighmem-2xlargeist, legen Sie den Schwellenwert auf weniger als 1 GB fest.
Was tun, wenn es eine Replikationsverzögerung zwischen der primären Instanz und ihren Replikaten gibt?
Es kann zu einer erheblichen Replikationsverzögerung kommen, wenn die primäre Instanz zu viele Schreibvorgänge hat und die Replikate diese Vorgänge nicht schnell genug replizieren können. Um dieses Problem zu beheben, empfehlen wir, die Kapazität von der Instanz zu skalieren, indem Sie die Anzahl der Shards für die Instanz erhöhen.
Szenarien zur CPU-Auslastung
In diesem Abschnitt werden Probleme mit der CPU-Auslastung erläutert, die bei Ihrer Instanz auftreten können.
Was tun, wenn der Ausgabepuffer der Instanz voll ist?
Wenn der Ausgabepuffer Ihrer Memorystore for Valkey-Instanz voll ist, gehen Sie so vor:
- Legen Sie einen kleineren Wert für den
maxmemoryParameter fest. - Verwenden Sie die
allkeys-lrumaxmemoryRichtlinie.
Wenn der Speicher Ihrer Instanz voll ist und ein neuer Schreibvorgang eingeht, werden die Schlüssel von Memorystore for Valkey gemäß der maxmemory-Richtlinie Ihrer Instanz entfernt, um Platz für den Schreibvorgang zu schaffen. Die Richtlinie allkeys-lru entfernt die am weitesten in der Vergangenheit verwendeten (LRU) Schlüssel aus dem gesamten Keyset.
Wir empfehlen, die maxmemory- und die Speichernutzung Ihrer Instanz zu beobachten. So können Sie feststellen, ob Ihre Instanz die bereitgestellte Instanzkapazität erreicht.
Wenn Sie den Wert für den Parameter maxmemory verringern, erhalten Sie außerdem mehr Platz für den Overhead.
Szenarien zur Speicherverwaltung
In diesem Abschnitt werden Probleme mit der Speicherverwaltung erläutert, die bei Ihrer Instanz auftreten können.
Mit welchem Messwert kann ich feststellen, ob meine Instanz unter Speichermangel leidet?
Um die Arbeitsspeichernutzung für eine Memorystore for Valkey-Instanz zu beobachten, empfehlen wir, den /instance/memory/maximum_utilization Messwert anzusehen. Wenn die Arbeitsspeichernutzung
der Instanz sich 80% nähert und Sie mit einer Zunahme der Datennutzung rechnen, dann
skalieren Sie die Größe der Instanz hoch
, um die Leistung zu verbessern und Platz für neue Daten zu schaffen.
Monitoring-Szenarien
In diesem Abschnitt werden Probleme mit dem Monitoring erläutert, die bei Ihrer Instanz auftreten können.
Wie richte ich Benachrichtigungen für Memorystore for Valkey ein?
Sie können in Cloud Monitoring Benachrichtigungen einrichten, die Sie informieren, wenn Messwerte Schwellenwerte überschreiten, die Sie für Ihre Instanz festgelegt haben. Weitere Informationen zum Einrichten von Benachrichtigungen in Cloud Monitoring finden Sie unter Cloud Monitoring-Benachrichtigung für die Arbeitsspeichernutzung festlegen.
Szenarien zur Verbindungsverwaltung
In diesem Abschnitt werden Probleme mit der Verbindungsverwaltung erläutert, die bei Ihrer Instanz auftreten können.
Was tun, wenn ich das Verbindungslimit erreiche oder ein Verbindungstimeout auftritt?
Wenn Sie das Verbindungslimit erreichen, kann Ihr Client keine Verbindung zu Ihrem Server herstellen. Dies wird als Verbindungsablehnung bezeichnet.
Gehen Sie in diesem Fall so vor:
- Verwenden Sie den
/instance/node/stats/rejected_connections_count-Messwert, um die Anzahl der Verbindungen zu ermitteln, die von Memorystore for Valkey abgelehnt werden, weil der Instanz knoten das Limit für die maximale Anzahl von Clients erreicht. - Verwenden Sie den
/instance/node/clients/connected_clientsMesswert, um die Anzahl der Clients zu ermitteln, die mit dem Instanzknoten verbunden sind. So können Sie sehen, ob alle Knoten in der Instanz unter dem Limit liegen. - Beenden Sie alle undichten oder unerwünschten Verbindungen mit dem
client killBefehl. - Verringern Sie die Anzahl der Verbindungen oder die Poolgröße in der Clientanwendung. Weitere Informationen finden Sie in der Dokumentation zur Clientanwendung.
- Passen Sie das Limit für die maximale Anzahl von Clients an. Weitere Informationen finden Sie unter Instanz konfigurieren.
- Skalieren Sie Ihre Instanz auf einen größeren Knotentyp, damit sie ein höheres Verbindungslimit hat.
Szenarien für Zeitüberschreitungen
In diesem Abschnitt werden Probleme mit Zeitüberschreitungen erläutert, die bei Ihrer Instanz auftreten können.
Was tun, wenn ein I/O-Timeout auftritt?
Wenn ein Lese- oder Schreibvorgang in Memorystore for Valkey nicht innerhalb einer bestimmten Zeit abgeschlossen wird, tritt ein I/O-Timeout auf. Dieses Timeout kann verschiedene Ursachen haben. Beispielsweise können ein oder mehrere Knoten Ihrer Instanz überlastet sein.
Gehen Sie so vor, wenn ein I/O-Timeout auftritt:
- Verwenden Sie den Messwert
instance/cpu/maximum_utilization, um die CPU Auslastung für einen Knoten in Ihrer Instanz zu ermitteln. Die Werte liegen zwischen 0,0 (0%) und 1,0 (100%). Wir empfehlen, dass die CPU-Auslastung aller Knoten unter 80 % liegt. Weitere Informationen finden Sie unter Best Practices für die CPU-Auslastung. - Wenn die Verbindung zum Server getrennt wird, weil ein Timeout aufgetreten ist, versuchen Sie es mit exponentiellem Backoff und mit Jitter noch einmal. So lässt sich vermeiden, dass mehrere Clients den Server gleichzeitig überlasten.
Szenarien für Verbindungsfehler
In diesem Abschnitt werden Probleme mit der Konnektivität erläutert, die bei Ihrer Instanz auftreten können.
Verbindungsfehler aufgrund von Firewallregeln
Firewallregeln können Verbindungsfehler verursachen, indem sie die von Memorystore for Valkey verwendeten Ports blockieren. Sie müssen alle Ports für beide Private Service Connect-Endpunkte Ihrer Instanz auf die Zulassungsliste setzen. Weitere Informationen zu den Endpunkten finden Sie unter Reservierte Netzwerkadressen.
Verbindungsfehler aufgrund von Organisationsrichtlinien
Es kann eine Organisationsrichtlinie vorhanden sein, die Ihre Private Service Connect-Verbindungen zu Ihrer Memorystore for Valkey-Instanz blockiert.
Wenn Ihre Organisationsrichtlinie die Richtlinie .restrictPrivateServiceConnectProducer verwendet, setzen Sie die Ordnernummer 672235397475 auf die Zulassungsliste. Dieser Ordner ist speziell für Memorystore for Valkey vorgesehen. Beispiel:
name: organizations/Consumer-org-1/policies/compute.restrictPrivateServiceConnectProducer
spec:
rules:
- values:
allowedValues:
- under:folders/672235397475
Wenn Ihre Organisationsrichtlinie die Richtlinie .disablePrivateServiceConnectCreationForConsumers verwendet, setzen Sie SERVICE_PRODUCERS auf die Zulassungsliste. Beispiel:
name: organizations/Consumer-org-1/policies/compute.disablePrivateServiceConnectCreationForConsumers
spec:
rules:
- values:
allowedValues:
- SERVICE_PRODUCERS
Fehlerbehandlung für Instanzen mit deaktiviertem Clustermodus
Wenn die Anwendung eine Verbindung zum Leseendpunkt einer Instanz herstellt, die keine Lesereplikate hat, wird die Verbindung geschlossen und die Fehlermeldung
ERR no replicas foundangezeigt. In diesem Fall versuchen Sie entweder, die Anwendung mit dem primären Endpunkt zu verbinden, oder fügen Sie der Instanz Lesereplikate hinzu.Im Falle eines Failovers werden die vorhandenen Verbindungen von Ihrer Anwendung geschlossen und die Fehlermeldung
ERR role change occurredwird angezeigt. Diese Fehlermeldung wird auch angezeigt, wenn Ihre Anwendung eine Verbindung zum Leseendpunkt einer Instanz herstellt und alle Lesereplikate der Instanz fehlschlagen. In diesem Fall muss die Anwendung die Verbindung mit exponentiellem Backoff wiederholen.
Szenarien zur Persistenz
In diesem Abschnitt werden Probleme mit der Persistenz erläutert, die bei Ihrer Instanz auftreten können.
Der Schreibtraffic übersteigt die Fähigkeit von Memorystore for Valkey, Speicherplatz durch AOF-Rewriting zu komprimieren und freizugeben
In diesem Fall wächst die Append-Only File (AOF) schneller, als der Rewrite-Prozess verarbeiten kann. Dies führt zu einer Erschöpfung des Festplattenspeichers, verursacht Schreibfehler und blockiert Vorgänge, die die Erstellung von Replikaten und die vollständige Synchronisierung erfordern.
Memorystore for Valkey hat Schutzmaßnahmen implementiert, um den Schreibdurchsatz zu regulieren. So wird sichergestellt, dass das AOF-Rewriting mit anhaltend hohen Schreibarbeitslasten Schritt halten kann.