Questions fréquentes sur Memorystore pour Valkey

Sur cette page, vous trouverez les réponses aux questions fréquentes suivantes concernant l'utilisation de Memorystore pour Valkey :

Quelle quantité de mémoire et de CPU vous recommandons-nous d'utiliser ?

Nous vous recommandons de ne pas dépasser 80 % d'utilisation de la mémoire. Nous vous recommandons également d'exécuter votre instance avec une utilisation moyenne du processeur de 60 %. Vous pouvez ainsi tolérer la perte d'une seule zone de disponibilité, ce qui représente environ un tiers de votre capacité totale. Dans ce scénario, l'utilisation moyenne du processeur sur les nœuds restants est d'environ 90 %.

Comment surveillez-vous la quantité de processeur et de mémoire que vous utilisez ?

Pour surveiller l'utilisation du processeur de votre nœud Memorystore pour Valkey principal et de ses répliques en lecture, utilisez la métrique /instance/cpu/maximum_utilization. Cette métrique mesure l'utilisation maximale du processeur sur tous les nœuds de votre instance, de 0,0 (0 %) à 1,0 (100 %). Pour en savoir plus, consultez les bonnes pratiques concernant l'utilisation du processeur.

Pour surveiller la mémoire utilisée par votre nœud principal Memorystore pour Valkey et ses répliques en lecture, utilisez la métrique /instance/node/memory/utilization. Cette métrique mesure l'utilisation de la mémoire pour un seul nœud de votre instance, de 0,0 (0 %) à 1,0 (100 %).

Comment définissez-vous des alertes pour surveiller l'utilisation du processeur et de la mémoire ?

Pour définir des alertes de surveillance pour l'utilisation du processeur et de la mémoire, utilisez Cloud Monitoring. Par exemple, vous pouvez définir une alerte pour vous avertir si la métrique /instance/memory/maximum_utilization dépasse un seuil que vous avez défini. Pour en savoir plus, consultez Définir une alerte Monitoring pour l'utilisation de la mémoire.

Combien de connexions de votre application cliente vous recommandons-nous de laisser ouvertes ?

Nous vous recommandons d'utiliser des benchmarks pour votre client afin de déterminer le paramètre optimal. Le point de départ recommandé pour chaque client est une connexion par nœud Valkey. Pour en savoir plus, consultez Éviter la surcharge de connexion sur Valkey.

Nous vous recommandons également d'activer le pipeline pour votre client afin qu'il puisse traiter plus de requêtes et plus rapidement.

Comment surveiller le nombre de connexions client pour votre instance ?

Pour surveiller le nombre de connexions client que vous utilisez, utilisez la métrique /instance/node/clients/connected_clients. Cette métrique mesure le nombre de clients connectés à chaque nœud de votre instance.

Que faire si vous avez trop de connexions client ?

Le nombre maximal de connexions client, que vous pouvez trouver à l'aide de la métrique /instance/clients/maximum_connected_clients, doit être inférieur à la valeur associée au paramètre maxclients. Si les valeurs sont égales, procédez comme suit :

Supposons que vous ayez un événement à venir qui va générer un pic de trafic pour votre entreprise. Que faites-vous ?

Vous pouvez configurer Memorystore pour Valkey afin de répondre aux besoins de votre entreprise. Dans ce scénario, vous pouvez augmenter la capacité de votre instance de plusieurs manières :

  • Vous pouvez ajouter des partitions à l'instance. L'instance dispose ainsi d'une plus grande utilisation du processeur pour gérer un volume de données ou de trafic plus important. La capacité de votre instance est déterminée par le nombre de segments qu'elle contient. En ajoutant des partitions, votre application peut gérer une demande accrue sans dégradation des performances.
  • Vous pouvez remplacer le type de nœud par un type de nœud plus grand. Cela donne plus de mémoire à l'instance. La capacité de votre instance est déterminée par son type de nœud. Par exemple, vous pouvez remplacer un type de nœud standard-small par un type de nœud highmem-medium.

Nous vous recommandons d'augmenter la capacité de votre instance plusieurs jours avant l'événement. De plus, pour vous aider à adapter la capacité de votre instance et à augmenter la vitesse et la fiabilité de son scaling, effectuez le scaling pendant les périodes de faible trafic. Pour savoir comment surveiller le trafic des instances, consultez Surveiller les instances.

Comment sécurisez-vous vos données ?

Pour sécuriser vos données, Memorystore pour Valkey vous propose les mécanismes suivants :

  • Authentification Identity and Access Management (IAM) : utilisez IAM pour gérer l'accès à la connexion de vos utilisateurs et comptes de service. L'authentification basée sur IAM s'intègre à Valkey AUTH, ce qui vous permet de faire tourner les identifiants (jetons IAM) de manière fluide sans avoir à utiliser de mots de passe statiques.
  • Chiffrement en transit : chiffrez tout le trafic Valkey à l'aide du protocole TLS (Transport Layer Security). Lorsque le chiffrement en transit est activé, les clients Valkey communiquent de manière sécurisée via une connexion. Les clients Valkey qui ne sont pas configurés pour TLS sont bloqués.

Quelles sont les bonnes pratiques pour le code client ?

Pour utiliser le code client de manière optimale avec Memorystore pour Valkey, nous vous recommandons de suivre les bonnes pratiques suivantes :

  • Pour connecter votre application à une instance Memorystore pour Valkey en mode cluster activé, utilisez un client que nous recommandons, tel que valkey-go, iovalkey, valkey-py ou Valkey GLIDE.

    Si vous utilisez un autre client, assurez-vous d'utiliser un client Valkey compatible avec les clusters qui conserve un mappage des emplacements de hachage vers les nœuds correspondants de l'instance. Les requêtes peuvent ainsi être envoyées aux nœuds appropriés. Cela évite la surcharge de performances causée par les redirections. Pour en savoir plus, consultez les bonnes pratiques concernant le client Valkey.

  • Nous vous recommandons de définir vos intervalles de délai avant expiration de la connexion sur cinq secondes et vos intervalles de délai avant expiration de la requête sur 10 secondes. Si vous définissez des délais d'inactivité sur des intervalles plus petits, Memorystore pour Valkey peut être confronté à des tempêtes de reconnexion, ce qui peut mettre le service en danger.

  • Utilisez l'intervalle exponentiel entre les tentatives comme stratégie standard de gestion des exceptions pour les applications réseau lorsque le client relance régulièrement une requête ayant échoué en observant des délais croissants entre les tentatives.

  • Utilisez nos exemples de code de la bibliothèque cliente. Par exemple, les valeurs par défaut du client valkey-go répondent à toutes nos recommandations. Vous n'avez donc rien à configurer pour ce client.

Quelles sont vos options de résilience des données ?

Memorystore pour Valkey vous offre les fonctionnalités suivantes pour la résilience des données :

  • Haute disponibilité : Memorystore pour Valkey fournit une capacité redondante dans les nœuds répliqués. En cas d'échec, Memorystore pour Valkey peut utiliser cette capacité pour fonctionner sans temps d'arrêt.

  • Persistance : lorsque votre environnement plante de manière inattendue, Memorystore pour Valkey le restaure automatiquement. C'est ce qu'on appelle la persistance.

    Memorystore pour Valkey propose le type de persistance suivant :

    • Persistance de la base de données Redis (RDB) : protégez vos données en enregistrant des instantanés de vos données dans un espace de stockage durable. Vous choisissez la fréquence de ces instantanés en sélectionnant un intervalle d'instantanés. En cas de défaillance de nœud, vous pouvez récupérer les données même lorsque le basculement n'est pas possible.

    • Persistance des fichiers AOF (Append-Only File) : utilisez ce type de persistance lorsque vous souhaitez privilégier la durabilité des données. La persistance AOF stocke les données de manière durable en enregistrant chaque commande d'écriture dans un fichier journal appelé fichier AOF. En cas de défaillance ou de redémarrage du système, le serveur relit les commandes du fichier AOF de manière séquentielle pour restaurer vos données.

  • Sauvegardes : restaurez manuellement vos instances Memorystore pour Valkey à un moment précis. Vous pouvez également utiliser des sauvegardes pour exporter et analyser des données.

    Les sauvegardes sont utiles dans les scénarios suivants :

    • Reprise après sinistre : utilisez les sauvegardes dans le cadre d'un plan de reprise après sinistre. En cas de sinistre, vous pouvez restaurer vos données sur une nouvelle instance Memorystore pour Valkey.
    • Migration de données : migrez des données entre différentes instances Memorystore pour Valkey. Vous pouvez consolider les données ou les déplacer vers une autre région. Vous pouvez également restaurer des sauvegardes à partir d'instances Memorystore pour Valkey.
    • Partager des données : partagez des données entre différentes équipes ou applications. Cela permet la collaboration, l'analyse des données hors connexion et l'échange de données.
    • Conformité : créez des sauvegardes périodiques des données du cache à des fins de conformité.
    • Programmer des sauvegardes : en plus de créer une sauvegarde à la demande, vous pouvez configurer un calendrier de sauvegarde pour une instance. Par conséquent, Memorystore pour Valkey lance des sauvegardes périodiques pour l'instance.
  • Réplication interrégionale : créez des instances secondaires à partir d'une instance principale pour rendre votre instance disponible en lecture dans différentes régions. Les instances secondaires offrent également une redondance pour les scénarios de reprise après sinistre en cas de pannes régionales.

    La réplication multirégionale sur Memorystore pour Valkey offre les avantages suivants :

    • Reprise après sinistre : si la région de l'instance principale devient indisponible, vous pouvez détacher ou basculer vers une instance secondaire dans une autre région pour répondre aux requêtes de lecture et d'écriture. Les instances secondaires traitent les requêtes de lecture sans émettre de commande de basculement ni de détachement.
    • Données distribuées géographiquement : la distribution géographique des données les rapproche de vous et réduit la latence en lecture.
    • Équilibrage de charge géographique pour le trafic de lecture : si des connexions lentes ou surchargées se produisent dans une région, vous pouvez rediriger le trafic vers une autre région.

Comment optimiser les performances de votre instance ?

Pour optimiser les performances de votre instance Memorystore pour Valkey, procédez comme suit :

  • Suivez les bonnes pratiques pour la gestion de la mémoire et l'utilisation du processeur, car elles permettent d'optimiser les performances de votre instance.
  • Utilisez les journaux d'audit pour surveiller l'accès à votre instance. Vous pouvez ainsi déterminer s'il existe des problèmes associés à l'activité d'administration pour l'instance (journal d'audit Admin Activity) ou aux utilisateurs accédant aux données de l'instance (journal d'audit Data Access).
  • Utilisez des instances répliquées avec accès en lecture. Dans Memorystore pour Valkey, la réplication est asynchrone. Par conséquent, les données du nœud principal n'apparaissent pas immédiatement dans les répliques. Si vous pouvez gérer des données légèrement obsolètes, utilisez des instances répliquées avec accès en lecture. Cela vous permet d'améliorer considérablement le débit de lecture et la latence.
  • Évitez d'utiliser des commandes Valkey gourmandes en ressources. L'utilisation de ces commandes peut entraîner les problèmes de performances suivants :

    • Latence élevée et délais avant expiration des clients
    • Pression sur la mémoire causée par des commandes qui augmentent l'utilisation de la mémoire
    • Perte de données lors de la réplication et de la synchronisation des nœuds, car le thread principal de Valkey est bloqué
    • Vérifications d'état, observabilité et réplication affamées

    Au lieu d'utiliser ces commandes, utilisez des commandes plus efficaces en termes de ressources. Par exemple, n'utilisez pas la commande KEYS pour analyser l'intégralité de votre espace de clés. Utilisez plutôt SCAN.

    Pour en savoir plus sur les commandes Valkey gourmandes en ressources et leurs alternatives plus efficaces, consultez Commandes Valkey gourmandes en ressources.

  • Si les besoins de votre entreprise vous permettent de définir un délai d'expiration pour vos données, nous vous recommandons de le faire. Cela réduit la consommation de mémoire.

  • Mettez à niveau la version de votre instance Memorystore pour Valkey vers la dernière version. Les versions logicielles plus récentes offrent une fiabilité et des performances améliorées.

  • Modifiez la valeur du paramètre maxmemory-policy. Ce paramètre spécifie le comportement de Valkey lorsque les données de votre instance atteignent la limite maxmemory.

    Si la mémoire de votre instance est saturée et qu'une nouvelle écriture arrive, Valkey supprime les clés conformément à la règle maxmemory de l'instance afin de libérer de l'espace pour l'écriture. Si la valeur du paramètre
    maxmemory-policy est définie sur noeviction, Memorystore pour Valkey renvoie une erreur lorsque votre instance atteint sa mémoire maximale. Toutefois, Memorystore pour Valkey n'écrase ni ne supprime aucune donnée. Pour améliorer la disponibilité de votre instance, modifiez la valeur du paramètre maxmemory-policy afin que Memorystore pour Valkey puisse supprimer des clés.

    Pour en savoir plus sur les différentes valeurs que vous pouvez définir pour le paramètre maxmemory-policy, consultez Règles Maxmemory. Pour en savoir plus sur la mise à jour de ce paramètre, consultez Mettre à jour un paramètre de configuration.

  • Ajustez votre instance Memorystore pour Valkey afin qu'elle présente le taux d'accès au cache souhaité. Cela vous permet de dimensionner correctement votre base de données afin qu'elle puisse gérer le pourcentage de résultats approprié.

    Pour ajuster une instance, procédez comme suit :

    1. Utilisez les métriques de surveillance total_keyspace_hits_count et total_keyspace_misses_count pour déterminer respectivement le nombre total de recherches de clés réussies et le nombre total de recherches de clés ayant échoué pour l'instance.
    2. Divisez le nombre total de hits par le nombre total de hits et de misses
      (c'est-à-dire hits/(hits + misses)). Le quotient correspond à votre taux de succès.
    3. Pour ajuster l'instance afin d'obtenir le taux d'accès qui vous convient, faites-la évoluer. Vous pouvez augmenter ou diminuer le nombre de partitions, ou augmenter ou diminuer le type de nœud. Pour en savoir plus, consultez À propos du scaling de la capacité des instances.

    L'augmentation du taux de réussite améliore la latence et le débit de votre système. Trouvez l'équilibre qui correspond à vos objectifs de performances, de scaling et de coûts.

  • Par défaut, nous vous recommandons d'exécuter des benchmarks de performances sur votre instance pour déterminer si l'augmentation du nombre de connexions améliore les performances sans saturer les connexions. Le point de départ recommandé consiste à configurer votre client pour qu'il ouvre une connexion à chaque nœud Valkey.

  • Activez le pipeline pour votre client afin qu'il puisse traiter plus de requêtes et plus rapidement. Pour configurer le pipelining, utilisez la bibliothèque cliente. Pour en savoir plus, consultez la documentation associée à cette bibliothèque.

Comment optimiser la haute disponibilité pour votre instance ?

Nous vous recommandons de créer des instances multizones à haute disponibilité plutôt que des instances monozones, car elles offrent une meilleure fiabilité.

Si vous créez une instance à haute disponibilité, nous vous recommandons d'utiliser la métrique /instance/node/replication/offset. Cette métrique vous permet de surveiller le décalage de réplication (en octets) pour un seul nœud de votre instance. Le décalage de réplication correspond au nombre d'octets que Memorystore pour Valkey n'a pas répliqués entre le nœud principal et les réplicas en lecture.