Cette page décrit le comportement de votre cluster dans Memorystore for Redis Cluster lors du scaling.
Vous pouvez ajuster la capacité de votre cluster de plusieurs façons :
Vous pouvez modifier le nombre de segments pour votre cluster. C'est ce qu'on appelle le scaling horizontal. Vous pouvez effectuer un scaling horizontal d'un cluster de l'une des manières suivantes :
Effectuer un scaling horizontal : augmentez la capacité de votre cluster, 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 cluster est déterminée par le nombre de shards qu'il contient.
En augmentant la taille de votre cluster, votre application peut gérer une demande accrue sans dégrader ses performances. Pour effectuer un scaling horizontal d'un cluster, ajoutez des partitions au cluster.
Effectuer un scaling vertical : réduit la capacité de votre cluster, 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 réduire la taille d'un cluster, diminuez le nombre de shards dans le cluster.
Vous pouvez modifier le type de nœud de votre cluster. C'est ce que l'on appelle le scaling vertical. Vous pouvez effectuer un scaling vertical d'un cluster de l'une des manières suivantes :
- Scaling à la hausse : augmentez la capacité de votre cluster. La capacité de votre cluster est déterminée par le type de nœud de votre cluster. Pour faire évoluer un cluster vers le haut, remplacez le type de nœud par un type de nœud plus grand. Par exemple, faites passer votre cluster d'un type de nœud
redis-standard-smallà un type de nœudredis-highmem-medium. Réduire l'échelle : réduire la capacité de votre cluster. Pour réduire la taille d'un cluster, remplacez le type de nœud par un type de nœud plus petit. Par exemple, réduisez la taille de votre cluster en passant d'un type de nœud
redis-highmem-mediumà un type de nœudredis-standard-small.
- Scaling à la hausse : augmentez la capacité de votre cluster. La capacité de votre cluster est déterminée par le type de nœud de votre cluster. Pour faire évoluer un cluster vers le haut, remplacez le type de nœud par un type de nœud plus grand. Par exemple, faites passer votre cluster d'un type de nœud
Impact du scaling
Lors d'une opération de scaling, la disponibilité de votre cluster n'est pas affectée. Toutefois, lorsque vous modifiez le nombre de segments dans votre cluster, Memorystore for Redis Cluster rééquilibre l'espace de clés du cluster. Cela peut entraîner une latence accrue pendant l'opération de scaling.
De plus, l'impact du scaling vertical de votre cluster 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 cluster, mais vous ne disposez pas de suffisamment de mémoire libre pour le type de nœud
redis-shared-core-nanode votre cluster.Pour résoudre ce problème, vous pouvez augmenter la taille de votre cluster ou libérer de la mémoire sur les nœuds de votre cluster. Pour libérer de la mémoire, procédez comme suit :
- Connectez-vous à un cluster.
- Pour obtenir des informations sur le cluster, y compris l'adresse IP et le numéro de port, utilisez la commande
gcloud redis clusters describe. - Notez l'adresse IP et le numéro de port du cluster.
Pour obtenir des informations sur les nœuds du cluster, 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.Les valeurs des paramètres
used_memoryetmaxmemorys'affichent dans le résultat.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 celle 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 le résultat, la valeur du paramètreused_memoryest plus petite.Divisez la valeur du paramètre
used_memorypar celle 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 réduit le nombre de partitions, qui n'est pas suffisant pour contenir toutes les clés stockées par Memorystore for Redis Cluster dans le cluster 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 cluster, consultez Mettre à l'échelle 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 for Redis Cluster stocke dans le type de nœud d'origine. Si cela se produit, Memorystore for Redis Cluster vous propose un type de nœud recommandé pour effectuer un scaling à la baisse verticalement.
Vous avez mis à jour le type de nœud de votre cluster et vous avez écrasé les paramètres par défaut du type de nœud d'origine, ou ces paramètres ont déjà été é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 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 mis à l'échelle votre cluster 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 du cluster.
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é afin qu'elle soit inférieure à 128 Mo. Réessayez ensuite d'effectuer la mise à jour.
Le numéro d'emplacement qu'un nœud d'un cluster possède n'est pas connu, mais seule la plage d'emplacements l'est. Memorystore for Redis Cluster 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 augmenté la capacité de votre cluster en effectuant un scaling horizontal vers un nombre de partitions plus petit. Toutefois, Memorystore for Redis Cluster ne dispose pas de suffisamment de mémoire pour répondre à cette demande. Pour résoudre ce problème, réduisez la capacité de votre cluster en effectuant un scaling à la baisse pour revenir au nombre de partitions d'origine, qui était plus élevé.
Bonnes pratiques
Pour vous aider à adapter la capacité de votre cluster et à augmenter la vitesse et la fiabilité de son scaling, faites-le pendant les périodes de faible trafic, dans la mesure du possible. Pour savoir comment surveiller le trafic du cluster, consultez Surveiller les clusters.