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-mediumouredis-standard-large, définissez le seuil sur une valeur inférieure à 64 Mo.Si le type de nœud est
redis-highmem-xlargeouredis-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 intervaletTCP keepalive probesafin 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ètreTCP keepalive timesur 30 secondes,TCP keepalive intervalsur 10 secondes etTCP keepalive probessur 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
maxmemoryparamètre. - Utilisez la
allkeys-lrumaxmemoryrè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.