À propos du scaling de la capacité des instances

Cette page décrit le comportement de votre instance Memorystore pour Valkey lors du scaling.

Vous pouvez ajuster la capacité de votre instance de différentes manières :

  • Vous pouvez modifier le nombre de segments pour votre instance. C'est ce qu'on appelle le scaling horizontal. Vous pouvez effectuer un scaling horizontal d'une instance de l'une des manières suivantes :

    • Scaling horizontal : augmentez la capacité de votre instance, ce qui lui donne plus de mémoire et de puissance de traitement pour gérer un plus grand volume de données ou de trafic. La capacité de votre instance est déterminée par le nombre de segments qu'elle contient.

      En augmentant la capacité de votre instance, votre application peut gérer une demande accrue sans dégradation des performances. Pour effectuer un scaling horizontal d'une instance, ajoutez des partitions à l'instance.

    • Réduire la capacité : diminuez la capacité de votre instance, ce qui réduit à la fois la puissance de traitement et la quantité de mémoire disponible pour stocker les données. Cela se produit lorsque les besoins en données de votre application diminuent et que vous devez réduire votre utilisation des ressources pour économiser de l'argent. Pour réduire la taille d'une instance, diminuez le nombre de segments dans l'instance.

  • Vous pouvez modifier le type de nœud de votre instance. C'est ce qu'on appelle le scaling vertical. Vous pouvez effectuer un scaling vertical d'une instance de l'une des manières suivantes :

    • Scaling à la hausse : augmentez la capacité de votre instance. La capacité de votre instance est déterminée par le type de nœud de votre instance. Pour effectuer un scaling vertical d'une instance, remplacez le type de nœud par un type de nœud plus grand. Par exemple, vous pouvez faire évoluer votre instance d'un type de nœud standard-small vers un type de nœud highmem-medium.
    • Scaling à la baisse : réduire la capacité de votre instance. Pour réduire la taille d'une instance, remplacez le type de nœud par un type plus petit. Par exemple, réduisez la taille de votre instance en passant d'un type de nœud highmem-medium à un type de nœud standard-small.

Impact du scaling

Lors d'une opération de scaling, la disponibilité de votre instance n'est pas affectée. Toutefois, lorsque vous modifiez le nombre de shards dans votre instance, Memorystore pour Valkey rééquilibre l'espace de clés de l'instance. Cela peut entraîner une latence accrue lors de l'opération de scaling.

De plus, l'impact du scaling vertical de votre instance en modifiant le type de nœud est semblable à celui d'une opération de maintenance.

Scénarios d'échec

Si vous rencontrez une erreur lors de l'opération de scaling, cela est probablement dû à l'un des scénarios suivants :

  • Vous souhaitez mettre à jour le nombre de partitions de votre instance, mais vous ne disposez pas de suffisamment de mémoire libre pour le type de nœud shared-core-nano de votre instance.

    Pour résoudre ce problème, vous pouvez mettre à l'échelle votre instance ou libérer de la mémoire sur les nœuds de votre instance. Pour libérer de la mémoire, procédez comme suit :

    1. Connectez-vous à une instance Memorystore pour Valkey.
    2. Pour obtenir des informations sur l'instance, y compris l'adresse IP et le numéro de port, utilisez la commande gcloud memorystore instances describe.
    3. Notez l'adresse IP et le numéro de port de l'instance.
    4. Pour obtenir des informations sur les nœuds de l'instance, utilisez la commande suivante :

      valkey-cli -h IP_ADDRESS -p PORT_NUMBER cluster nodes
      

      Remplacez IP_ADDRESS et PORT_NUMBER par les valeurs que vous avez notées à l'étape précédente.

    5. Notez l'adresse IP et le numéro de port d'un nœud qui ne dispose pas de suffisamment d'espace libre. L'ID de ce nœud correspond à un ID qui apparaît dans l'erreur.

    6. Pour vous connecter à ce nœud, utilisez la commande suivante :

      valkey-cli -h IP_ADDRESS -p PORT_NUMBER
      

      Remplacez IP_ADDRESS et PORT_NUMBER par les valeurs que vous avez notées à l'étape précédente.

    7. À l'invite, saisissez la commande info memory.

      Dans le résultat, les valeurs des paramètres used_memory et maxmemory s'affichent. used_memory correspond à la quantité de mémoire utilisée par le nœud et maxmemory à la quantité de mémoire disponible pour le nœud.

    8. Divisez la valeur du paramètre used_memory par celle du paramètre maxmemory, puis vérifiez que le quotient est supérieur à 98 %.

    9. Pour libérer de l'espace pour le nœud, supprimez certaines de ses clés.

    10. Saisissez à nouveau la commande info memory. Dans le résultat, la valeur du paramètre used_memory est plus petite.

    11. Divisez la valeur du paramètre used_memory par celle du paramètre maxmemory, puis vérifiez que le quotient est désormais inférieur à 98 %. Si ce n'est pas le cas, supprimez d'autres clés.

    12. Pour tous les autres nœuds qui ne disposent pas de suffisamment d'espace libre, répétez les étapes 4 à 11 de cette procédure.

  • Vous avez réduit le nombre de shards, qui n'a pas la capacité de contenir toutes les clés que Memorystore pour Valkey stocke dans l'instance d'origine. Pour résoudre ce problème, augmentez le nombre de partitions afin de pouvoir stocker toutes les clés. Pour savoir comment augmenter le nombre de partitions de votre instance, consultez Faire évoluer le nombre de partitions.

  • Vous avez effectué un scaling vers un type de nœud plus petit qui n'a pas la capacité de contenir toutes les données que Memorystore pour Valkey stocke dans le type de nœud d'origine. Si cela se produit, Memorystore pour Valkey vous fournit un type de nœud recommandé pour effectuer un scaling vertical à la baisse.

  • Vous avez modifié le type de nœud de votre instance, et vous avez écrasé les paramètres par défaut du type de nœud d'origine ou ces paramètres sont déjà écrasés. Toutefois, le nouveau type de nœud mis à l'échelle ne prend pas en charge les valeurs des paramètres par défaut ou les paramètres ne sont pas valides pour le type de nœud. Dans ce cas, Memorystore pour Valkey renvoie une erreur. Pour résoudre ce problème, modifiez manuellement les paramètres afin qu'ils soient valides pour le nouveau type de nœud.

  • Vous avez mis à l'échelle votre instance pendant une période de forte pression d'écriture (par exemple, lors d'un test de charge). Pour résoudre ce problème, effectuez le scaling pendant les périodes de faible trafic d'instance.

  • Vous disposez d'un emplacement contenant une clé volumineuse et vous souhaitez migrer cette clé vers un autre nœud. Toutefois, ce nœud ne dispose pas de suffisamment de mémoire pour prendre en charge la clé. Par conséquent, vous ne pouvez pas mettre à jour votre instance. Pour résoudre ce problème, réduisez la taille de la clé et réessayez l'opération de mise à jour.

  • Le numéro d'emplacement qu'un nœud d'instance possède n'est pas connu, mais seule la plage d'emplacements l'est. Memorystore pour Valkey renvoie un message d'erreur. Si cela se produit, réduisez la taille de la clé et réessayez l'opération de mise à jour.

  • Vous avez effectué un scaling horizontal vers un nombre de segments plus petit, mais Memorystore pour Valkey ne dispose pas de suffisamment de mémoire pour répondre à cette demande. Pour résoudre ce problème, revenez au nombre de partitions initial, qui était plus élevé.

Bonnes pratiques

Pour vous aider à adapter la capacité de votre instance et à augmenter la vitesse et la fiabilité de son scaling, effectuez-le pendant les périodes de faible trafic, dans la mesure du possible. Pour savoir comment surveiller le trafic des instances, consultez Surveiller les instances.