Auf dieser Seite werden verschiedene Fehlerszenarien erläutert und es wird beschrieben, wie Sie die Fehler beheben können.
Replikationsszenarien
In diesem Abschnitt werden Replikationsprobleme beschrieben, die bei Ihrer Instanz auftreten können.
Wie überwachen Sie Replikationsverzögerungen?
Memorystore for Valkey hat den Messwert /instance/replication/maximum_offset_diff
. Mit diesem Messwert wird der maximale Unterschied beim Replikations-Offset (in Byte) für einen Knoten in einer primären Instanz überwacht.
Wenn Sie die Differenz beim Replikations-Offset niedrig halten, können Replikate häufiger und kostengünstiger inkrementelle Synchronisierungsvorgänge ausführen als vollständige Synchronisierungsvorgänge.
Wir empfehlen, einen Grenzwert für den Messwert maximum_offset_diff
festzulegen. Wenn der Grenzwert überschritten wird, kann Memorystore for Valkey Sie per Benachrichtigung informieren.
Basierend auf dem Knotentyp für Ihre Instanz empfehlen wir, den Schwellenwert so festzulegen:
- Wenn der Knotentyp
shared-core-nano
,standard-small
oderhighmem-medium
ist, legen Sie den Schwellenwert auf weniger als 64 MB fest. - Wenn der Knotentyp
highmem-xlarge
ist, legen Sie den Schwellenwert auf weniger als 1 GB fest.
Was tun Sie, wenn es eine Replikationsverzögerung zwischen Ihrer primären Instanz und ihren Replikaten gibt?
Wenn die primäre Instanz zu viele Schreibvorgänge hat und die Replikate diese Vorgänge nicht schnell genug replizieren können, kann es zu einer erheblichen Replikationsverzögerung kommen. Um dieses Problem zu beheben, empfehlen wir, die Kapazität der Instanz zu skalieren, indem Sie die Anzahl der Shards für die Instanz erhöhen.
Szenarien für die Speicherverwaltung
In diesem Abschnitt werden Probleme mit der Speicherverwaltung erläutert, die bei Ihrer Instanz auftreten können.
Welchen Messwert können Sie verwenden, um festzustellen, ob Ihre Instanz unter Arbeitsspeicherbelastung steht?
Wenn Sie die Speichernutzung für eine Memorystore for Valkey-Instanz überwachen möchten, empfehlen wir Ihnen, den Messwert /instance/memory/maximum_utilization
anzusehen. Wenn die Speichernutzung der Instanz sich 80% nähert und Sie erwarten, dass die Datennutzung zunimmt, sollten Sie die Größe der Instanz hochskalieren, um die Leistung zu verbessern und Platz für neue Daten zu schaffen.
Monitoring-Szenarien
In diesem Abschnitt werden Probleme bei der Überwachung beschrieben, die bei Ihrer Instanz auftreten können.
Wie richte ich Benachrichtigungen für Memorystore for Valkey ein?
Mit Cloud Monitoring können Sie Benachrichtigungen einrichten, die Sie informieren, wenn Messwerte die von Ihnen für Ihre Instanz festgelegten Grenzwerte überschreiten. Weitere Informationen zum Festlegen von Benachrichtigungen in Cloud Monitoring finden Sie unter Cloud Monitoring-Benachrichtigung für die Speichernutzung festlegen.
Szenarien für die Verbindungsverwaltung
In diesem Abschnitt werden Probleme bei der Verbindungsverwaltung beschrieben, die bei Ihrer Instanz auftreten können.
Was können Sie tun, wenn Sie das Verbindungslimit erreichen oder ein Verbindungs-Timeout auftritt?
Wenn Sie das Verbindungslimit erreichen, kann Ihr Client keine Verbindung zu Ihrem Server herstellen. Das wird als Verbindungsablehnung bezeichnet.
Gehen Sie in diesem Fall so vor:
- Mit der Messwert
/instance/node/stats/rejected_connections_count
können Sie die Anzahl der Verbindungen ermitteln, die von Memorystore for Valkey abgelehnt werden, weil der Instanzknoten das maximale Clientlimit erreicht. - Mit dem Messwert
/instance/node/clients/connected_clients
können Sie die Anzahl der Clients 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 unerwünschten Verbindungen mit dem Befehl
client kill
. - 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.
Zeitüberschreitungsszenarien
In diesem Abschnitt werden Zeitüberschreitungsprobleme beschrieben, die bei Ihrer Instanz auftreten können.
Was tun Sie, wenn Sie eine I/O-Zeitüberschreitung erhalten?
Wenn ein Lese- oder Schreibvorgang in Memorystore for Valkey nicht innerhalb eines bestimmten Zeitraums abgeschlossen wird, tritt ein I/O-Zeitüberschreitungsfehler auf. Dieser Timeout kann verschiedene Gründe haben. Beispielsweise sind ein oder mehrere Knoten Ihrer Instanz möglicherweise überlastet.
Wenn Sie eine E/A-Zeitüberschreitung erhalten, gehen Sie so vor:
- Mit der Messwert
instance/cpu/maximum_utilization
können Sie die CPU-Auslastung für einen Knoten in Ihrer Instanz ermitteln, von 0,0 (0%) bis 1,0 (100%). Wir empfehlen, dass alle Knoten eine CPU-Auslastung von weniger als 80 % haben. Weitere Informationen finden Sie unter Best Practices für die CPU-Nutzung. - Wenn die Verbindung des Clients zum Server getrennt wird, weil der Server eine Zeitüberschreitung meldet, versuchen Sie es noch einmal mit exponentiellem Backoff und Jitter. So wird verhindert, dass mehrere Clients den Server gleichzeitig überlasten.
Szenarien für Verbindungsfehler
In diesem Abschnitt werden Verbindungsprobleme beschrieben, 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 sollten alle Ports für die beiden Private Service Connect-Endpunkte Ihrer Instanz auf die Zulassungsliste setzen. Weitere Informationen zu den Endpunkten finden Sie unter Reservierte Netzwerkadressen.
Verbindungsfehler aufgrund von Organisationsrichtlinien.
Sie können eine Organisationsrichtlinie haben, die Ihre Private Service Connect-Verbindungen zu Ihrer Memorystore for Valkey-Instanz blockiert.
Wenn in Ihrer Organisationsrichtlinie die .restrictPrivateServiceConnectProducer
-Richtlinie verwendet wird, setzen Sie die 961333125034
-Ordnernummer 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/961333125034
Wenn in Ihrer Organisationsrichtlinie die Richtlinie .disablePrivateServiceConnectCreationForConsumers
verwendet wird, sollten Sie SERVICE_PRODUCERS
auf die Zulassungsliste setzen. 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 found
wird angezeigt. In diesem Fall sollten Sie entweder versuchen, die Anwendung mit dem primären Endpunkt zu verbinden, oder der Instanz Lesereplikate hinzufügen.Im Falle eines Failovers werden die bestehenden Verbindungen von Ihrer Anwendung geschlossen und die Fehlermeldung
ERR role change occurred
wird angezeigt. Diese Fehlermeldung wird auch angezeigt, wenn Ihre Anwendung eine Verbindung zum Lese-Endpunkt einer Instanz herstellt und alle Lesereplikate der Instanz fehlschlagen. In diesem Fall sollte die Anwendung die Verbindung mit exponentiellem Backoff wiederholen.