Résoudre des problèmes

Cette page décrit différents scénarios d'erreur et fournit des conseils pour résoudre ces erreurs.

Scénarios de réplication

Cette section décrit les problèmes de réplication qui peuvent survenir avec votre cluster.

Comment surveiller les délais de réplication ?

Memorystore for Redis Cluster dispose de la métrique /cluster/replication/maximum_offset_diff. Cette métrique surveille la différence maximale de décalage de réplication (en octets) pour un nœud dans un cluster principal.

En maintenant la différence de décalage de réplication à un niveau bas, les instances répliquées peuvent effectuer des opérations de synchronisation incrémentielle plus fréquemment et à un coût inférieur à celui des opérations de synchronisation complète.

Nous vous recommandons de définir un seuil pour la métrique maximum_offset_diff. Si le seuil est dépassé, Memorystore for Redis Cluster peut vous envoyer une alerte.

En fonction du type de nœud de votre cluster, nous vous recommandons de définir le seuil comme suit :

  • Si le type de nœud est redis-shared-core-nano, redis-standard-small, redis-highmem-medium, redis-highcpu-medium ou redis-standard-large, définissez le seuil sur une valeur inférieure à 64 Mo.

  • Si le type de nœud est redis-highmem-xlarge ou redis-highmem-2xlarge, définissez le seuil sur une valeur inférieure à 1 Go.

Scénarios d'erreur de connectivité

Cette section décrit les problèmes de connectivité que votre instance peut rencontrer.

Erreur de connexion causée par des règles de pare-feu

Les règles de pare-feu peuvent entraîner des erreurs de connexion en bloquant les ports utilisés par Memorystore for Redis Cluster. Pour les deux points de terminaison Private Service Connect de votre instance, autorisez les ports 11000 à 13047. Pour en savoir plus sur ces points de terminaison, consultez Adresses réseau réservées.

Erreur de connexion causée par des règles d'administration

Vous pouvez disposer d'une règle d'administration qui bloque vos connexions Private Service Connect à votre instance Memorystore for Redis Cluster.

Si votre règle d'administration utilise la règle .restrictPrivateServiceConnectProducer, autorisez le numéro de dossier 961333125034, qui est un dossier spécifiquement destiné à Memorystore for Redis Cluster. Exemple :

name: organizations/Consumer-org-1/policies/compute.restrictPrivateServiceConnectProducer
spec:
    rules:
      - values:
          allowedValues:
          - under:folders/961333125034

Si votre règle d'administration utilise la règle .disablePrivateServiceConnectCreationForConsumers, vous devez autoriser SERVICE_PRODUCERS. Exemple :

name: organizations/Consumer-org-1/policies/compute.disablePrivateServiceConnectCreationForConsumers
spec:
    rules:
      - values:
          allowedValues:
          - SERVICE_PRODUCERS

Erreur de connexion causée par des connexions qui ne répondent pas

Nous vous recommandons vivement de configurer votre application cliente pour détecter les connexions qui ne répondent pas à Memorystore for Redis Cluster. Lorsqu'une connexion qui ne répond pas est détectée, le client doit la réinitialiser. Pour créer une application résiliente, nous vous recommandons les configurations client suivantes :

  • Configurer les paramètres de message keep-alive TCP : définissez les paramètres TCP keepalive time, TCP keepalive interval et TCP keepalive probes afin que les clients détectent et abandonnent de manière proactive les connexions qui ne répondent pas, même lorsqu'elles sont inactives. Par exemple, si vous définissez le paramètre TCP keepalive time sur 30 secondes, TCP keepalive interval sur 10 secondes et TCP keepalive probes sur 3, les clients réinitialisent les connexions inactives qui ne répondent pas en une minute.
  • Configurer les délais d'attente utilisateur TCP : définissez ce délai d'attente dans vos clients pour réinitialiser les connexions qui ont des requêtes en attente et qui ne répondent plus. Par exemple, si vous définissez le délai d'attente sur 15 secondes, les clients réinitialisent les connexions qui ne répondent pas et qui ont des requêtes en attente après 15 secondes.

Scénarios d'utilisation du processeur

Cette section décrit les problèmes d'utilisation du processeur que votre cluster peut rencontrer.

L'espace du tampon de sortie de votre cluster est insuffisant

Si l'espace du tampon de sortie de votre cluster est insuffisant, procédez comme suit :

  • Définissez une valeur plus petite pour le maxmemory paramètre.
  • Utilisez la allkeys-lru maxmemory règle.

Lorsque la mémoire de votre cluster est saturée et qu'une nouvelle écriture arrive, Memorystore for Redis Cluster supprime les clés conformément à la règle maxmemory de votre cluster afin de libérer de l'espace pour l'écriture. La règle allkeys-lru supprime les clés les moins récemment utilisées (LRU, least recently used) de la collection de clés.

Nous vous recommandons de surveiller la maxmemory et la mémoire utilisée de votre cluster. Cela vous permet de savoir si votre cluster atteint la capacité provisionnée. De plus, en réduisant la valeur du paramètre maxmemory, vous obtenez plus d'espace pour la surcharge.

Pourquoi des métriques externes peuvent-elles manquer pour votre cluster ?

Si votre cluster connaît une utilisation élevée du processeur ou si ses ressources sont épuisées (par exemple, en raison d'un nombre trop important de connexions), il peut se comporter de manière anormale et des métriques externes peuvent manquer.

Scénarios de persistance

Cette section décrit les problèmes de persistance qui peuvent survenir avec votre cluster.

Votre trafic d'écriture dépasse la capacité de Memorystore for Redis Cluster à compacter et à récupérer de l'espace via la réécriture AOF

Dans ce cas, le fichier AOF (Append-Only File) augmente plus rapidement que le processus de réécriture ne peut le gérer. Cela entraîne une saturation du disque, des échecs d'écriture et bloque les opérations qui nécessitent la création d'une instance répliquée et une synchronisation complète.

Memorystore for Redis Cluster a mis en place des garde-fous pour réguler le débit d'écriture. Cela garantit que la réécriture AOF peut suivre le rythme des charges de travail à écriture élevée et soutenue.