Cette page décrit différents scénarios d'erreur et fournit des conseils pour les résoudre.
Scénarios de réplication
Cette section explique les problèmes de réplication qui peuvent survenir avec votre instance.
Comment surveillez-vous les délais avant réplication ?
Memorystore pour Valkey propose 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 répliques 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 pour Valkey peut vous en informer par le biais d'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
,standard-small
ouhighmem-medium
, définissez le seuil sur une valeur inférieure à 64 Mo. - Si le type de nœud est
highmem-xlarge
, définissez le seuil sur une valeur inférieure à 1 Go.
Que faire en cas de délai de réplication entre votre instance principale et ses instances répliquées ?
Il peut y avoir un décalage de réplication important si l'instance principale comporte trop d'opérations d'écriture et que les instances répliquées ne peuvent 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 partitions de l'instance.
Scénarios de gestion de la mémoire
Cette section explique 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 soumise à une forte pression sur 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, augmentez la taille de l'instance pour améliorer les performances et faire de la place pour de nouvelles données.
Scénarios de surveillance
Cette section explique 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 des 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 explique 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 message d'expiration du délai de connexion ?
Lorsque vous atteignez la limite de connexions, votre client ne parvient pas à se connecter à votre serveur. C'est ce qu'on appelle un refus de connexion.
Si cela se produit, 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 de l'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 vérifier si tous les nœuds de l'instance sont en dessous de la limite. - Arrêtez les connexions indésirables ou ayant fait l'objet d'une fuite à l'aide de la commande
client kill
. - 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 Configurer une instance.
- Faites évoluer votre instance vers un type de nœud plus grand afin qu'elle dispose d'une limite de connexion plus élevée.
Scénarios de délai avant expiration
Cette section explique les problèmes de délai d'attente que votre instance peut rencontrer.
Que faire si vous recevez un message d'erreur de délai d'attente 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'attente d'E/S se produit. Ce délai d'inactivité peut être dû à différentes raisons. Par exemple, un ou plusieurs nœuds de votre instance peuvent être surchargés.
Si vous recevez un message d'expiration du 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 de faire en sorte que le pourcentage d'utilisation du processeur de tous les nœuds soit inférieur à 80 %. Pour en savoir plus, consultez les bonnes pratiques concernant l'utilisation du processeur. - Lorsque le client se déconnecte du serveur parce que le délai d'attente du serveur est dépassé, réessayez avec un intervalle exponentiel entre les tentatives et avec gigue. Cela permet d'éviter que plusieurs clients 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 Adresses réseau réservées.
Erreur de connexion causée par les règles d'administration.
Vous pouvez disposer d'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
, ajoutez le numéro de dossier 961333125034
à la liste d'autorisation. Il s'agit d'un dossier spécifiquement destiné à Memorystore pour Valkey. 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 ajouter SERVICE_PRODUCERS
à la liste d'autorisation. 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 aucune instance dupliquée 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 de 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 d'établir la connexion avec un intervalle exponentiel entre les tentatives.