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 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 mit einer Benachrichtigung informieren.
Je nach Knotentyp für Ihren Cluster empfehlen wir, den Schwellenwert wie folgt 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 Ihrer Instanz 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. Fügen Sie für beide Private Service Connect-Endpunkte Ihrer Instanz die Ports 11000 bis 13047 zur Zulassungsliste hinzu. Weitere Informationen zu diesen 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 Redis Cluster-Instanz blockiert.
Wenn Ihre Organisationsrichtlinie die Richtlinie .restrictPrivateServiceConnectProducer verwendet, fügen Sie die Ordnernummer 961333125034 zur Zulassungsliste hinzu. 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, sollten Sie SERVICE_PRODUCERS zur Zulassungsliste hinzufügen. 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-Zeitlimits für Nutzer konfigurieren: Legen Sie dieses Zeitlimit in Ihren Clients fest, um Verbindungen zurückzusetzen, bei denen ausstehende Anfragen vorhanden sind und die nicht mehr reagieren. Wenn Sie das Zeitlimit 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 maxmemory- und die Speicherauslastung Ihres Clusters zu überwachen. 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 Festplattenspeichers, 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.