Cette page décrit le comportement de votre instance Memorystore for Redis Cluster pendant le scaling.
Vous pouvez faire évoluer la capacité de votre instance de différentes manières :
Vous pouvez modifier le nombre de segments de votre instance. Il s'agit d'un scaling horizontal. Vous pouvez effectuer un scaling horizontal d'une instance de l'une des manières suivantes :
Effectuer un scaling horizontal : augmentez la capacité de votre instance, ce qui donne à l'instance 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 effectuant un scaling à la hausse de votre instance, votre application peut gérer une demande accrue sans dégrader ses performances. Pour effectuer un scaling à la hausse d'une instance, ajoutez-y des segments.
Scaling à la baisse : réduisez la capacité de votre instance, ce qui diminue à 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 effectuer un scaling à la baisse d'une instance, réduisez le nombre de segments qu'elle contient.
Vous pouvez modifier le type de nœud de votre instance. Il s'agit d'un 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 son type de nœud. Pour effectuer un scaling à la hausse d'une instance, remplacez son type de nœud par un type de nœud plus grand. Par exemple, passez d'un type de nœud
redis-standard-smallà un type de nœudredis-highmem-medium. Scaling à la baisse : réduisez la capacité de votre instance. Pour effectuer un scaling à la baisse d'une instance, remplacez son type de nœud par un type de nœud plus petit. Par exemple, passez d'un type de nœud
redis-highmem-mediumà un type de nœudredis-standard-small.
- Scaling à la hausse : augmentez la capacité de votre instance. La capacité de votre instance est déterminée par son type de nœud. Pour effectuer un scaling à la hausse d'une instance, remplacez son type de nœud par un type de nœud plus grand. Par exemple, passez d'un type de nœud
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 segments de votre instance, Memorystore for Redis Cluster rééquilibre l'espace de clés de l'instance. Cela peut entraîner une latence accrue pendant 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 segments de votre instance, mais vous ne disposez pas de suffisamment de mémoire libre pour le type de nœud
redis-shared-core-nanode votre instance.Pour résoudre ce problème, vous pouvez soit effectuer un scaling à la hausse de votre instance soit libérer de la mémoire sur les nœuds de votre instance. Pour libérer de la mémoire, procédez comme suit :
- Connectez-vous à une instance Memorystore for Redis Cluster.
- Pour obtenir des informations sur l'instance, y compris son adresse IP et son numéro de port, utilisez la
gcloud redis clusters describecommande. - Notez l'adresse IP et le numéro de port de l'instance.
Pour obtenir des informations sur les nœuds de l'instance, utilisez la commande suivante :
redis-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.
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.
Pour vous connecter à ce nœud, utilisez la commande suivante :
redis-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.
À l'invite, saisissez la commande
info memory.Dans la sortie, les valeurs des paramètres
used_memoryetmaxmemorys'affichent.used_memorycorrespond à la quantité de mémoire utilisée par le nœud etmaxmemoryà la quantité de mémoire disponible pour le nœud.Divisez la valeur du paramètre
used_memorypar la valeur du paramètremaxmemory, puis vérifiez que le quotient est supérieur à 98%.Pour libérer de l'espace pour le nœud, supprimez certaines de ses clés.
Saisissez à nouveau la commande
info memory. Dans la sortie, la valeur du paramètreused_memoryest inférieure.Divisez la valeur du paramètre
used_memorypar la valeur du paramètremaxmemory, puis vérifiez que le quotient est désormais inférieur à 98%. Si ce n'est pas le cas, supprimez d'autres clés.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 effectué un scaling à la baisse du nombre de segments, qui n'a pas la capacité de contenir toutes les clés que Memorystore for Redis Cluster stocke dans l'instance d'origine. Pour résoudre ce problème, effectuez un scaling à la hausse du nombre de segments afin de pouvoir contenir toutes les clés stockées. Pour en savoir plus sur l'augmentation du nombre de segments de votre instance, consultez la section Faire évoluer le nombre de segments.
Vous avez effectué un scaling à la baisse du type de nœud, qui n'a pas la capacité de contenir toutes les données que Memorystore for Redis Cluster stocke dans le type de nœud d'origine. Dans ce cas, Memorystore for Redis Cluster vous fournit un type de nœud recommandé pour effectuer un scaling vertical à la baisse.
Vous avez mis à jour le type de nœud de votre instance et vous avez remplacé les paramètres par défaut settings pour le type de nœud d'origine ou ces paramètres ont déjà été remplacés. Toutefois, le nouveau type de nœud mis à l'échelle n'est pas compatible avec 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 for Redis Cluster 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 effectué un scaling de 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 des instances.
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é. Vous ne pouvez pas mettre à jour votre cluster. Pour résoudre ce problème, réduisez la taille de la clé à moins de 128 Mo. Ensuite, réessayez l'opération de mise à jour.
Le numéro d'emplacement appartenant à un nœud d'un cluster n'est pas connu, mais seule la plage d'emplacements l'est. Memorystore for Redis Cluster renvoie un message d'erreur. Dans ce cas, réduisez la taille de la clé et réessayez l'opération de mise à jour.
Vous avez augmenté la capacité de votre cluster en effectuant un scaling à la hausse avec un nombre de segments inférieur. Toutefois, Memorystore for Redis Cluster ne dispose pas de suffisamment de mémoire pour répondre à cette requête. Pour résoudre ce problème, réduisez la capacité de votre cluster en effectuant un scaling à la baisse avec le nombre de segments d'origine, qui est plus élevé.
Bonnes pratiques
Pour vous aider à faire évoluer 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, chaque fois que vous le pouvez. Pour savoir comment surveiller le trafic des instances, consultez la section Surveiller les clusters.