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 pour 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 une faible différence de décalage de réplication, les instances répliquées peuvent effectuer des opérations de synchronisation incrémentale plus fréquemment et à moindre coût que les 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 pour 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 pour 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 pour 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.

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 pour Valkey, nous vous recommandons d'afficher la métrique /instance/memory/maximum_utilization. Si l'utilisation de la mémoire de l'instance approche les 80 % et que vous prévoyez une augmentation de l'utilisation 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 pour 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 la section 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 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 :

  • Utilisez la métrique /instance/node/stats/rejected_connections_count pour déterminer le nombre de connexions que Memorystore pour Valkey refuse, car le nœud d'instance atteint la limite maximale de clients.
  • Utilisez la métrique /instance/node/clients/connected_clients pour déterminer le nombre de clients connectés au nœud d'instance. Vous pouvez ainsi voir si tous les nœuds de l'instance sont en dessous de la limite.
  • Arrêtez les connexions divulguées ou indésirables à l'aide de la client kill commande.
  • Réduisez le nombre de connexions ou la taille du pool dans l'application cliente. Pour en savoir plus, consultez la documentation associée à l'application cliente.
  • Ajustez la limite maximale de clients. Pour en savoir plus, consultez la section Configurer une instance.
  • Faites évoluer votre instance vers un type de nœud plus grand afin qu'elle dispose d'une limite de connexions plus élevée.

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 d'E/S ?

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

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

  • Utilisez la métrique instance/cpu/maximum_utilization pour déterminer l'utilisation du processeur d'un nœud de votre instance, de 0,0 (0 %) à 1,0 (100 %). Nous vous recommandons que tous les nœuds aient un pourcentage d'utilisation du processeur inférieur à 80 %. Pour en savoir plus, consultez la section Bonnes pratiques d'utilisation du processeur.
  • Lorsque le client se déconnecte du serveur parce que le délai du serveur est dépassé, réessayez avec un intervalle exponentiel entre les tentatives et avec une gigue. Cela permet d'éviter que plusieurs clients ne surchargent le serveur simultanément.

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 pour 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 la section Adresses réseau réservées.

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

Vous pouvez avoir une règle d'administration qui bloque vos connexions Private Service Connect à votre instance Memorystore pour 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 pour 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

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 pour 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 pour Valkey a implémenté 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.