Autoescalado
En esta página se explica cómo funciona el ajuste automático de escala. Antes de leer esta página, debes familiarizarte con la descripción general de Bigtable y con las instancias, los clústeres y los nodos.
En Bigtable, las instancias son contenedores de clústeres, que son recursos específicos de una ubicación que gestionan las solicitudes. Cada clúster tiene uno o varios nodos, que son recursos de computación que se usan para gestionar tus datos. Cuando creas un clúster en una instancia, puedes elegir entre asignación manual de nodos o escalado automático.
Con la asignación manual de nodos, el número de nodos del clúster se mantiene constante hasta que lo cambias. Cuando el autoescalado está habilitado, Bigtable monitoriza continuamente el clúster y ajusta automáticamente el número de nodos del clúster cuando es necesario. El autoescalado funciona en clústeres HDD y SSD en todas las regiones de Bigtable.
Puedes configurar el escalado automático en la consola de Google Cloud , con gcloud o con la biblioteca de cliente de Cloud Bigtable para Java.
Cuándo usar el autoescalado
Te recomendamos que habilites el ajuste automático de escala en la mayoría de los casos. Estas son algunas de las ventajas del escalado automático:
- Costes: el autoescalado puede ayudarte a optimizar los costes porque Bigtable reduce el número de nodos de tu clúster siempre que sea posible. Esto puede ayudarte a evitar el aprovisionamiento excesivo.
- Rendimiento: el escalado automático permite a Bigtable añadir automáticamente nodos a un clúster cuando cambia una carga de trabajo o aumentan los requisitos de almacenamiento de datos. De esta forma, se mantienen los objetivos de rendimiento de las cargas de trabajo, ya que se asegura de que el clúster tenga suficientes nodos para cumplir los requisitos de uso de CPU y almacenamiento.
- Automatización: el autoescalado reduce la complejidad de la gestión. No es necesario que monitorices ni escales el tamaño del clúster manualmente, ni que escribas una aplicación para realizar estas tareas, ya que el servicio Bigtable se encarga de ello.
Es posible que el escalado automático por sí solo no funcione bien con los siguientes tipos de cargas de trabajo, ya que, aunque Bigtable añade nodos rápidamente cuando aumenta el tráfico, puede tardar en equilibrar los nodos adicionales.
- Tráfico con picos
- Cargas de trabajo por lotes repentinas
Si los picos de uso son predecibles o están programados con regularidad, puedes usar el escalado automático y ajustar la configuración antes de los picos planificados. Consulta más información en Retraso mientras se reequilibran los nodos.
Cómo funciona el ajuste de escala automático
El autoescalado es el proceso de escalar o cambiar el tamaño de un clúster automáticamente añadiendo o quitando nodos. Cuando habilitas el autoescalado, Bigtable ajusta automáticamente el tamaño de tu clúster. Cuando las necesidades de carga de trabajo o almacenamiento de tu clúster fluctúan, Bigtable aumenta la escala añadiendo nodos al clúster o reduce la escala quitando nodos del clúster.
El autoescalado de Bigtable determina el número de nodos necesarios en función de las siguientes dimensiones:
- Uso de CPU objetivo
- Objetivo de uso del almacenamiento
- Número mínimo de nodos
- Número máximo de nodos
Cada dimensión de escalado genera un número de nodos recomendado y Bigtable usa automáticamente el más alto. Por ejemplo, si tu clúster necesita 10 nodos para alcanzar el objetivo de utilización del almacenamiento, pero 12 para alcanzar el objetivo de utilización de la CPU, Bigtable escalará el clúster a 12 nodos.
A medida que cambia el número de nodos, Bigtable optimiza continuamente el almacenamiento y reequilibra los datos entre los nodos para asegurarse de que el tráfico se distribuya de forma uniforme y de que ningún nodo esté sobrecargado.
Una vez que se ha escalado un clúster, Bigtable vuelve a equilibrar automáticamente los nodos del clúster para optimizar el rendimiento. Todas las solicitudes siguen llegando al clúster mientras se lleva a cabo el escalado y el reequilibrado. Para obtener más información, consulta Limitaciones de escalado.
Si un clúster ha escalado verticalmente hasta alcanzar el número máximo de nodos y se supera el objetivo de utilización de la CPU, las solicitudes pueden tener una latencia alta o fallar. Si un clúster ha aumentado su número de nodos hasta el máximo y se supera el límite de utilización del almacenamiento, las solicitudes de escritura fallarán. Para obtener más información sobre los límites de almacenamiento, consulta Almacenamiento por nodo.
Cuando se añade un nodo a un clúster pequeño, como un clúster de un solo nodo, es posible que observes un aumento temporal de la latencia mientras el clúster se reequilibra. Esto se debe a que el nodo adicional duplica proporcionalmente el tamaño del clúster. Del mismo modo, si un clúster reduce su tamaño de dos nodos a un nodo, puede producirse cierta latencia.
Cuando se reduce la escala de un clúster, los nodos se eliminan a un ritmo más lento que cuando se aumenta la escala para evitar que se vea afectada la latencia. Consulta las limitaciones de escalado para obtener más información.
Parámetros de autoescalado
Cuando creas o editas un clúster y eliges el escalado automático, defines los valores del objetivo de utilización de la CPU, el número mínimo de nodos y el número máximo de nodos. Puedes configurar el objetivo de utilización del almacenamiento o dejar el valor predeterminado, que es del 50 % (2,5 TB para SSD y 8 TB para HDD).
| Parámetro | Descripción |
|---|---|
| Uso de CPU objetivo |
Un porcentaje de la capacidad de CPU del clúster. Puede ser de entre el 10% y el 80%. Cuando el uso de CPU de un clúster supera el objetivo que has definido, Bigtable añade nodos al clúster inmediatamente. Cuando el uso de la CPU es considerablemente inferior al objetivo, Bigtable elimina nodos. Para obtener más información, consulta Determinar el objetivo de uso de la CPU. |
| Número mínimo de nodos |
El número mínimo de nodos al que Bigtable reducirá el clúster. Si el escalado de nodos al doble está habilitado, este valor debe ser un número par. Este valor debe ser mayor que cero y no puede ser inferior al 10% del valor que haya definido para el número máximo de nodos. Por ejemplo, si el número máximo de nodos es 40, el número mínimo de nodos debe ser al menos 4. El requisito del 10% es un límite estricto. Para obtener más información, consulta Determinar el número mínimo de nodos. |
| Número máximo de nodos |
El número máximo de nodos al que quieres que se escale el clúster. Si el escalado de nodos al doble está habilitado, este valor debe ser un número par. Este valor debe ser mayor que cero e igual o superior al número mínimo de nodos. El valor no puede ser más de 10 veces el número que elijas para el número mínimo de nodos. El requisito de 10 veces es un límite estricto. Para obtener más información, consulta Determinar el número máximo de nodos. |
| Objetivo de utilización del almacenamiento |
Número máximo de terabytes por nodo que puedes almacenar en clústeres SSD o HDD antes de que Bigtable escale. De esta forma, siempre tendrás suficientes nodos para gestionar las fluctuaciones en la cantidad de datos que almacenes. Para obtener más información, consulta Determinar el objetivo de utilización del almacenamiento. Este objetivo no incluye el nivel de acceso poco frecuente. |
| Uso combinado de SSD y acceso poco frecuente |
Número máximo de terabytes por nodo que puedes almacenar en clústeres de SSD y de acceso poco frecuente antes de que Bigtable aumente la capacidad. Este objetivo asegura que siempre tengas suficientes nodos para gestionar las fluctuaciones en la cantidad de datos que almacenas. Para obtener más información, consulta la sección Almacenamiento por niveles y escalado automático de este documento. |
Configurar autoescalado
En esta sección se describe cómo elegir los parámetros de escalado automático. Después de definir los valores iniciales, monitoriza el clúster y ajusta los números si es necesario.
Determinar el objetivo de uso de la CPU
Basar el objetivo de uso de CPU en tu carga de trabajo específica. El objetivo óptimo de tu clúster depende de los requisitos de latencia y de rendimiento de tu carga de trabajo. Para obtener más información, consulta Planificar la capacidad de Bigtable.
Por lo general, si observas una latencia inaceptablemente alta, debes reducir el objetivo de utilización de la CPU.
Determinar el objetivo de uso del almacenamiento
Si tu aplicación es sensible a la latencia, mantén la utilización del almacenamiento por debajo del 60%. Si tu aplicación no es sensible a la latencia, puedes elegir un objetivo de utilización del almacenamiento del 70% o más. Para obtener más información, consulta