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 instance.

Comment surveiller les retards de réplication ?

Memorystore for Valkey dispose de la métrique /instance/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 une instance principale.

En maintenant la différence de décalage de réplication à un niveau faible, 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 Valkey peut vous envoyer une alerte.

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

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

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

Que faire en cas de retard de réplication entre votre instance principale et ses instances répliquées ?

Un retard de réplication important peut se produire si l'instance principale comporte trop d'opérations d'écriture et que les instances répliquées ne parviennent pas à rattraper leur retard pour répliquer ces opérations. Pour résoudre ce problème, nous vous recommandons de faire évoluer la capacité de l'instance en augmentant le nombre de fragments pour l'instance.

Scénarios d'utilisation du processeur

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

Que faire si le tampon de sortie de votre instance manque d'espace ?

Si le tampon de sortie de votre instance Memorystore for Valkey manque d'espace, procédez comme suit :

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

Lorsque la mémoire de votre instance est saturée et qu'une nouvelle écriture arrive, Memorystore for Valkey supprime les clés conformément à la règle maxmemory de votre instance 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 instance. Cela vous permet de savoir si votre instance 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 instance ?

Si votre instance présente une utilisation élevée du processeur ou si ses ressources sont épuisées (par exemple, en raison d'un nombre excessif de connexions), elle peut se comporter de manière anormale et des métriques externes peuvent manquer.

Scénarios de gestion de la mémoire

Cette section décrit les problèmes de gestion de la mémoire que votre instance peut rencontrer.

Quelle métrique pouvez-vous utiliser pour déterminer si votre instance est sous pression au niveau de la mémoire ?

Pour surveiller l'utilisation de la mémoire d'une instance Memorystore for Valkey, nous vous recommandons d'afficher la /instance/memory/maximum_utilization métrique. Si l'utilisation de la mémoire de l'instance approche les 80% et que vous prévoyez une augmentation de la consommation des données, alors faites évoluer la taille de l'instance pour améliorer les performances et libérer de l'espace pour les nouvelles données.

Scénarios de surveillance

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

Comment configurer des alertes pour Memorystore for Valkey ?

Vous pouvez utiliser Cloud Monitoring pour définir des alertes qui vous avertissent si des métriques dépassent les seuils que vous avez définis pour votre instance. Pour en savoir plus sur la configuration d'alertes dans Cloud Monitoring, consultez Définir une alerte Monitoring pour l'utilisation de la mémoire.

Scénarios de gestion des connexions

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

Que faire si vous atteignez votre limite de connexions ou si vous recevez un délai d'attente de connexion ?

Lorsque vous atteignez votre limite de connexions, votre client ne parvient pas à se connecter à votre serveur. C'est ce qu'on appelle un refus de connexion.

Dans ce cas, procédez comme suit :

Scénarios de délai avant expiration

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

Que faire si vous recevez un délai avant expiration d'E/S ?

Lorsqu'une opération de lecture ou d'écriture dans Memorystore for Valkey ne parvient pas à se terminer dans un délai spécifié, un délai avant expiration d'E/S se produit. Ce délai avant expiration peut se produire pour différentes raisons. Par exemple, un ou plusieurs nœuds de votre instance peuvent être surchargés.

Si vous recevez un délai avant expiration d'E/S, procédez comme suit :

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 Valkey. Vous devez autoriser tous les ports pour les deux points de terminaison Private Service Connect de votre instance. Pour en savoir plus sur les 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 Valkey.

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

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

Si votre règle d'administration utilise la règle .disablePrivateServiceConnectCreationForConsumers, autorisez 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 Valkey. 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 avant expiration des utilisateurs TCP : définissez ce délai avant expiration dans vos clients pour réinitialiser les connexions qui ont des requêtes en attente et qui cessent de répondre. Par exemple, si vous définissez le délai avant expiration 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.

Gérer les erreurs pour les instances avec le mode cluster désactivé

  • Si l'application se connecte au point de terminaison en lecture d'une instance qui ne comporte pas d'instances répliquées avec accès en lecture, la connexion se ferme et le message d'erreur ERR no replicas found s'affiche. Dans ce cas, essayez de connecter l'application au point de terminaison principal ou ajoutez des instances répliquées avec accès en lecture à l'instance.

  • En cas de basculement, les connexions existantes de votre application se ferment et le message d'erreur ERR role change occurred s'affiche. Ce message d'erreur s'affiche également si votre application se connecte au point de terminaison en lecture d'une instance et que toutes les instances répliquées avec accès en lecture de l'instance échouent. Dans ce cas, l' application doit réessayer la connexion avec un intervalle exponentiel entre les tentatives.

Scénarios de persistance

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

Votre trafic d'écriture dépasse la capacité de Memorystore for Valkey à 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'instances répliquées et une synchronisation complète.

Memorystore for Valkey 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 soutenues.