Acerca del escalado de la capacidad de las instancias

En esta página se describe cómo se comporta tu instancia de Memorystore for Redis Cluster durante el escalado.

Puede escalar la capacidad de su instancia de las siguientes formas:

  • Puedes cambiar el número de particiones de tu instancia. Esto es escalado horizontal. Puede escalar una instancia horizontalmente de una de las siguientes formas:

    • Escalar horizontalmente: aumenta la capacidad de tu instancia, lo que le proporciona más memoria y potencia de procesamiento para gestionar un mayor volumen de datos o tráfico. La capacidad de tu instancia se determina en función del número de particiones de tu instancia.

      Al escalar tu instancia, tu aplicación puede gestionar un aumento de la demanda sin que se vea afectado el rendimiento. Para escalar una instancia, añade fragmentos a la instancia.

    • Reducir la escala: disminuye la capacidad de tu instancia, lo que reduce tanto la potencia de procesamiento como la cantidad de memoria disponible para almacenar datos. Esto ocurre cuando las demandas de datos de tu aplicación disminuyen y necesitas reducir el uso de recursos para ahorrar costes. Para reducir la escala de una instancia, disminuye el número de fragmentos de la instancia.

  • Puedes cambiar el tipo de nodo de tu instancia. Esto se denomina escalado vertical. Puede escalar una instancia verticalmente de una de las siguientes formas:

    • Escalar verticalmente: aumenta la capacidad de tu instancia. La capacidad de tu instancia se determina según el tipo de nodo de la instancia. Para aumentar la escala de una instancia, cambia el tipo de nodo por un tipo de nodo más grande. Por ejemplo, puedes aumentar la escala de tu instancia de un tipo de nodo redis-standard-small a un tipo de nodo redis-highmem-medium.
    • Reducir: reduce la capacidad de tu instancia. Para reducir el tamaño de una instancia, cambia el tipo de nodo a un tipo de nodo más pequeño. Por ejemplo, puedes reducir la escala de tu instancia de un tipo de nodo redis-highmem-medium a un tipo de nodo redis-standard-small.

Impacto del escalado

Durante una operación de escalado, la disponibilidad de la instancia no se ve afectada. Sin embargo, cuando cambias el número de particiones de tu instancia, Memorystore for Redis Cluster vuelve a equilibrar el espacio de claves de la instancia. Esto puede provocar un aumento de la latencia durante la operación de escalado.

Además, el impacto de escalar tu instancia verticalmente cambiando el tipo de nodo es similar al que se produce con una operación de mantenimiento.

Situaciones de error

Si se produce un error durante la operación de escalado, es probable que se deba a uno de los siguientes motivos:

  • Quieres actualizar el número de particiones de tu instancia, pero no tienes suficiente memoria libre para el tipo de nodo redis-shared-core-nano de tu instancia.

    Para solucionar este problema, puedes aumentar la escala de tu instancia o liberar memoria de los nodos de tu instancia. Para liberar memoria, haz lo siguiente:

    1. Conéctate a una instancia de Memorystore for Redis Cluster.
    2. Para obtener información sobre la instancia, como la dirección IP y el número de puerto, usa el comando gcloud redis clusters describe.
    3. Anota la dirección IP y el número de puerto de la instancia.
    4. Para obtener información sobre los nodos de la instancia, usa el siguiente comando:

      redis-cli -h IP_ADDRESS -p PORT_NUMBER cluster nodes
      

      Sustituye IP_ADDRESS y PORT_NUMBER por los valores que hayas anotado en el paso anterior.

    5. Anota la dirección IP y el número de puerto de un nodo que no tenga suficiente espacio libre. El ID de este nodo coincide con un ID que aparece en el error.

    6. Para conectarte a este nodo, usa el siguiente comando:

      redis-cli -h IP_ADDRESS -p PORT_NUMBER
      

      Sustituye IP_ADDRESS y PORT_NUMBER por los valores que anotaste en el paso anterior.

    7. En la petición, introduce el comando info memory.

      En el resultado, aparecen los valores de los parámetros used_memory y maxmemory. used_memory es la cantidad de memoria que usa el nodo y maxmemory es la cantidad de memoria disponible para el nodo.

    8. Divide el valor del parámetro used_memory entre el valor del parámetro maxmemory y comprueba que el cociente es superior al 98%.

    9. Para liberar espacio para el nodo, elimina algunas de las claves del nodo.

    10. Vuelve a introducir el comando info memory. En la salida, el valor del parámetro used_memory es menor.

    11. Divide el valor del parámetro used_memory entre el valor del parámetro maxmemory y comprueba que el cociente es ahora inferior al 98%. Si no es así, elimina más llaves.

    12. Repite los pasos del 4 al 11 de este procedimiento para los demás nodos que no tengan suficiente espacio libre.

  • Has reducido el número de particiones a un valor que no tiene capacidad suficiente para contener todas las claves que Memorystore for Redis Cluster almacena en la instancia original. Para solucionar este problema, aumenta el número de particiones para que puedan contener todas las claves almacenadas. Para obtener más información sobre cómo aumentar el número de fragmentos de tu instancia, consulta Escalar el número de fragmentos.

  • Has cambiado a un tipo de nodo más pequeño que no tiene capacidad para almacenar todos los datos que Memorystore for Redis Cluster almacena en el tipo de nodo original. Si esto ocurre, Memorystore for Redis Cluster te proporcionará un tipo de nodo recomendado para reducir la escala verticalmente.

  • Has actualizado el tipo de nodo de tu instancia y has sobrescrito los ajustes predeterminados del tipo de nodo original o estos ajustes ya se han sobrescrito. Sin embargo, el nuevo tipo de nodo escalado no admite los valores de la configuración predeterminada o la configuración no es válida para el tipo de nodo. Si esto ocurre, Memorystore for Redis Cluster devuelve un error. Para resolver este problema, modifica manualmente los ajustes para que sean válidos para el nuevo tipo de nodo.

  • Has escalado tu instancia durante un periodo de alta presión de escritura (por ejemplo, durante una prueba de carga). Para solucionar este problema, escala durante los periodos de poco tráfico de instancias.

  • Tienes un espacio que contiene una clave grande y quieres migrarla a otro nodo. Sin embargo, este nodo no tiene suficiente memoria para admitir la clave. Por lo tanto, no puedes actualizar tu clúster. Para solucionar este problema, reduce el tamaño de la clave y vuelve a intentar la operación de actualización.

  • No se conoce el número de ranura que tiene un nodo de un clúster, sino solo el intervalo de ranuras. Memorystore for Redis Cluster devuelve un mensaje de error. Si esto ocurre, reduce el tamaño de la clave y vuelve a intentar la operación de actualización.

  • Has escalado horizontalmente a un número de particiones más pequeño, pero Memorystore for Redis Cluster no tiene suficiente memoria para atender esta solicitud. Para solucionar este problema, reduce el número de particiones al valor original, que es mayor.

Prácticas recomendadas

Para ayudarte a escalar la capacidad de tu instancia y aumentar la velocidad y la fiabilidad de este proceso, hazlo durante los periodos de poco tráfico siempre que puedas. Para saber cómo monitorizar el tráfico de las instancias, consulte Monitorizar clústeres.