Auf dieser Seite werden verschiedene Fehlerszenarien erläutert und Anleitungen zur Fehlerbehebung gegeben.
Replikationsszenarien
In diesem Abschnitt werden Replikationsprobleme erläutert, die bei Ihrem Cluster auftreten können.
Wie werden Replikationsverzögerungen überwacht?
Memorystore for Redis Cluster hat den /cluster/replication/maximum_offset_diff Messwert. Dieser Messwert überwacht die maximale Replikations-Offset-Differenz (in Byte) für einen Knoten in einem primären Cluster.
Wenn die Replikations-Offset-Differenz niedrig gehalten wird, können Replikate häufiger inkrementelle Synchronisierungsvorgänge und zu geringeren Kosten als vollständige Synchronisierungsvorgänge ausführen.
Wir empfehlen, einen Schwellenwert für den Messwert maximum_offset_diff festzulegen. Wenn der Schwellenwert überschritten wird, kann Memorystore for Redis Cluster Sie per Benachrichtigung informieren.
Je nach Knotentyp für Ihren Cluster empfehlen wir, den Schwellenwert so festzulegen:
Wenn der Knotentyp
redis-shared-core-nano,redis-standard-small,redis-highmem-medium,redis-highcpu-mediumoderredis-standard-largeist, legen Sie den Schwellenwert auf weniger als 64 MB fest.Wenn der Knotentyp
redis-highmem-xlargeoderredis-highmem-2xlargeist, legen Sie den Schwellenwert auf weniger als 1 GB fest.
Szenarien für Verbindungsfehler
In diesem Abschnitt werden Verbindungsprobleme erläutert, die bei Ihrem Cluster auftreten können.
Verbindungsfehler aufgrund von Firewallregeln
Firewallregeln können Verbindungsfehler verursachen, indem sie die Ports blockieren, die von Memorystore for Redis Cluster verwendet werden. Lassen Sie für beide Private Service Connect-Endpunkte Ihres Clusters die TCP-Ports 11000 bis 13047 zu. Weitere Informationen zu diesen Endpunkten finden Sie unter Reservierte Netzwerkadressen.
Verbindungsfehler aufgrund von Organisationsrichtlinien
Möglicherweise haben Sie eine Organisationsrichtlinie, die Ihre Private Service Connect-Verbindungen zu Ihrem Cluster blockiert.
Wenn Ihre Organisationsrichtlinie die Richtlinie .restrictPrivateServiceConnectProducer verwendet, lassen Sie den Ordner 961333125034 zu. Dieser Ordner ist speziell für Memorystore for Redis Cluster vorgesehen. Beispiel:
name: organizations/Consumer-org-1/policies/compute.restrictPrivateServiceConnectProducer
spec:
rules:
- values:
allowedValues:
- under:folders/961333125034
Wenn Ihre Organisationsrichtlinie die Richtlinie .disablePrivateServiceConnectCreationForConsumers verwendet, lassen Sie SERVICE_PRODUCERS zu. Beispiel:
name: organizations/Consumer-org-1/policies/compute.disablePrivateServiceConnectCreationForConsumers
spec:
rules:
- values:
allowedValues:
- SERVICE_PRODUCERS
Verbindungsfehler aufgrund nicht reagierender Verbindungen
Wir empfehlen dringend, Ihre Clientanwendung so zu konfigurieren, dass nicht reagierende Verbindungen zu Memorystore for Redis Cluster erkannt werden. Wenn eine nicht reagierende Verbindung erkannt wird, muss der Client sie zurücksetzen. Um eine robuste Anwendung zu erstellen, empfehlen wir die folgenden Clientkonfigurationen:
- TCP-Keep-Alive-Parameter konfigurieren: Legen Sie die Parameter
TCP keepalive time,TCP keepalive intervalundTCP keepalive probesso fest, dass Clients nicht reagierende Verbindungen proaktiv erkennen und trennen, auch wenn die Verbindungen im Leerlauf sind. Wenn Sie beispielsweise den ParameterTCP keepalive timeauf 30 Sekunden,TCP keepalive intervalauf 10 Sekunden undTCP keepalive probesauf 3 festlegen, setzen Clients nicht reagierende inaktive Verbindungen innerhalb einer Minute zurück. - TCP-Nutzer-Time-outs konfigurieren: Legen Sie dieses Time-out in Ihren Clients fest, um Verbindungen zurückzusetzen, bei denen noch Anfragen ausstehen und die nicht mehr reagieren. Wenn Sie das Time-out beispielsweise auf 15 Sekunden festlegen, setzen Clients nicht reagierende Verbindungen mit ausstehenden Anfragen nach 15 Sekunden zurück.
Szenarien für die CPU-Auslastung
In diesem Abschnitt werden Probleme mit der CPU-Auslastung erläutert, die bei Ihrem Cluster auftreten können.
Der Ausgabepuffer Ihres Clusters ist voll
Wenn der Ausgabepuffer Ihres Clusters voll ist, gehen Sie so vor:
- Legen Sie einen kleineren Wert für den
maxmemoryParameter fest. - Verwenden Sie die
allkeys-lrumaxmemoryRichtlinie.
Wenn der Speicher Ihres Clusters voll ist und ein neuer Schreibvorgang eingeht, entfernt Memorystore for Redis Cluster Schlüssel, um Platz für den Schreibvorgang zu schaffen. Dieser Vorgang basiert auf der maxmemory-Richtlinie Ihres Clusters. Die Richtlinie allkeys-lru entfernt die am weitesten in der Vergangenheit verwendeten (LRU) Schlüssel aus dem gesamten Keyset.
Wir empfehlen, die Werte für maxmemory und den verwendeten Speicher Ihres Clusters im Blick zu behalten. So können Sie feststellen, ob Ihr Cluster die bereitgestellte Clusterkapazität erreicht.
Wenn Sie den Wert für den Parameter maxmemory verringern, erhalten Sie außerdem mehr Platz für den Overhead.
Warum fehlen möglicherweise externe Messwerte für Ihren Cluster?
Wenn Ihr Cluster eine hohe CPU-Auslastung aufweist oder die Ressourcen des Clusters erschöpft sind (z. B. durch zu viele Verbindungen), kann es zu Fehlverhalten des Clusters kommen und externe Messwerte fehlen möglicherweise.
Persistenzszenarien
In diesem Abschnitt werden Persistenzprobleme erläutert, die bei Ihrem Cluster auftreten können.
Ihr Schreibtraffic übersteigt die Fähigkeit von Memorystore for Redis Cluster, Speicherplatz durch AOF-Rewriting zu komprimieren und freizugeben
In diesem Fall wächst die Append-Only File (AOF) schneller, als der Rewriting-Prozess verarbeiten kann. Dies führt zu einer Erschöpfung des Speicherplatzes, verursacht Schreibfehler und blockiert Vorgänge, die die Erstellung von Replikaten und die vollständige Synchronisierung erfordern.
Memorystore for Redis Cluster hat Schutzmaßnahmen implementiert, um den Schreibdurchsatz zu regulieren. So wird sichergestellt, dass das AOF-Rewriting mit anhaltend hohen Schreibarbeitslasten Schritt halten kann.