Acerca del ajuste de la capacidad del clúster

En esta página, se describe el comportamiento de tu clúster en Memorystore for Redis Cluster durante el ajuste de escala.

Puedes escalar la capacidad de tu clúster de las siguientes maneras:

  • Puedes cambiar la cantidad de fragmentos de tu clúster. Esto se conoce como escalamiento horizontal. Puedes escalar un clúster horizontalmente de una de las siguientes maneras:

    • Escalar horizontalmente: Aumenta la capacidad de tu clúster, lo que le brinda más memoria y potencia de procesamiento para controlar un mayor volumen de datos o tráfico. La capacidad de tu clúster se determina según la cantidad de fragmentos que contiene.

      Si escalas horizontalmente tu clúster, tu aplicación podrá manejar una mayor demanda sin que se degrade el rendimiento. Para escalar horizontalmente un clúster, agrega fragmentos al clúster.

    • Reducir la escala: Reduce la capacidad de tu clúster, lo que disminuye la potencia de procesamiento y 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 costos. Para reducir un clúster, disminuye la cantidad de fragmentos en el clúster.

  • Puedes cambiar el tipo de nodo de tu clúster. Esto se conoce como escalamiento vertical. Puedes escalar un clúster de forma vertical de una de las siguientes maneras:

    • Aumentar la escala: Aumenta la capacidad de tu clúster. La capacidad de tu clúster está determinada por el tipo de nodo del clúster. Para escalar un clúster verticalmente, cambia el tipo de nodo a uno más grande. Por ejemplo, puedes escalar verticalmente tu clúster de un tipo de nodo redis-standard-small a un tipo de nodo redis-highmem-medium.
    • Reducir la escala: Reduce la capacidad de tu clúster. Para reducir la escala de un clúster, cambia el tipo de nodo a uno más pequeño. Por ejemplo, puedes reducir la escala de tu clúster de un tipo de nodo redis-highmem-medium a un tipo de nodo redis-standard-small.

Impacto del escalamiento

Durante una operación de ajuste de escala, no se ve afectada la disponibilidad de tu clúster. Sin embargo, cuando cambias la cantidad de fragmentos en tu clúster, Memorystore for Redis Cluster reequilibra el espacio de claves del clúster. Esto puede causar un aumento de la latencia durante la operación de ajuste de escala.

Además, el impacto de escalar verticalmente tu clúster cambiando el tipo de nodo es similar a lo que sucede con una operación de mantenimiento.

Situaciones de falla

Si encuentras un error durante la operación de ajuste de escala, es probable que se deba a una de las siguientes situaciones:

  • Quieres actualizar el recuento de fragmentos de tu clúster, pero no tienes suficiente memoria libre para el tipo de nodo redis-shared-core-nano de tu clúster.

    Para resolver este problema, puedes aumentar la escala de tu clúster o liberar memoria de los nodos del clúster. Para liberar memoria, haz lo siguiente:

    1. Conéctate a un clúster.
    2. Para obtener detalles sobre el clúster, incluidos 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 del clúster.
    4. Para obtener información sobre los nodos del clúster, usa el siguiente comando:

      redis-cli -h IP_ADDRESS -p PORT_NUMBER cluster nodes
      

      Reemplaza IP_ADDRESS y PORT_NUMBER por los valores que anotaste 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
      

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

    7. En el símbolo del sistema, ingresa el comando info memory.

      En el resultado, aparecen los valores de los parámetros used_memory y maxmemory. used_memory indica cuánta memoria usa el nodo y maxmemory indica cuánta memoria está disponible para el nodo.

    8. Divide el valor del parámetro used_memory por el valor del parámetro maxmemory y verifica que el cociente sea superior al 98%.

    9. Para liberar espacio en el nodo, borra algunas de sus claves.

    10. Vuelve a ingresar el comando info memory. En el resultado, el valor del parámetro used_memory es menor.

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

    12. Para cualquier otro nodo que no tenga suficiente espacio libre, repite los pasos del 4 al 11 de este procedimiento.

  • Redujiste la cantidad de fragmentos a una cantidad menor que no tiene la capacidad de contener todas las claves que Memorystore for Redis Cluster almacena en el clúster original. Para resolver este problema, aumenta la cantidad de fragmentos para que puedan contener todas las claves almacenadas. Para obtener más información sobre cómo aumentar la cantidad de fragmentos de tu clúster, consulta Cómo escalar la cantidad de fragmentos.

  • Realizaste un ajuste de escala a un tipo de nodo más pequeño que no tiene la capacidad de contener 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.

  • Actualizaste el tipo de nodo de tu clúster y sobrescribiste la configuración predeterminada del tipo de nodo original, o bien esta configuración ya se sobrescribió. 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 la configuración de forma manual para que sea válida para el nuevo tipo de nodo.

  • Escalaste tu clúster durante un período de alta presión de escritura (por ejemplo, durante las pruebas de carga). Para resolver este problema, realiza el ajuste durante los períodos de poco tráfico del clúster.

  • Tienes una ranura que contiene una clave grande y deseas migrarla a otro nodo. Sin embargo, este nodo no tiene suficiente memoria para admitir la clave. No puedes actualizar tu clúster. Para resolver este problema, reduce el tamaño de la clave para que sea inferior a 128 MB. Luego, vuelve a intentar la operación de actualización.

  • No se conoce el número de ranura que posee un nodo de un clúster, sino solo el rango 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.

  • Aumentaste la capacidad de tu clúster al realizar un escalamiento horizontal a un recuento de fragmentos más pequeño. Sin embargo, Memorystore for Redis Cluster no tiene suficiente memoria para satisfacer esta solicitud. Para resolver este problema, reduce la capacidad del clúster disminuyendo la cantidad de fragmentos hasta la cantidad original más grande.

Prácticas recomendadas

Para ayudarte a escalar la capacidad de tu clúster y aumentar la velocidad y la confiabilidad de su escalamiento, hazlo durante los períodos de tráfico bajo, siempre que puedas. Para obtener información sobre cómo supervisar el tráfico del clúster, consulta Supervisa clústeres.