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, ya que 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 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 uso del almacenamiento, pero 12 para alcanzar el objetivo de uso 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 dejarlo en 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 antes de que Bigtable aumente la capacidad. 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. |
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 Planificar la capacidad de Bigtable.
En el caso del autoescalado, el uso del almacenamiento se expresa como el número de bytes de almacenamiento por nodo, en lugar de como un porcentaje. El objetivo de utilización del almacenamiento se especifica por nodo, pero se aplica a todo el clúster. Los límites de capacidad de los nodos son de 5 TB por nodo para el almacenamiento SSD y de 16 TB por nodo para el almacenamiento HDD.
En la siguiente tabla se muestran los importes objetivo de los porcentajes de utilización del almacenamiento habituales. La Google Cloud consola acepta el valor en TB por nodo, y la CLI de gcloud, la API y las bibliotecas de cliente de Cloud Bigtable aceptan un valor entero en GiB por nodo.
Porcentaje | SSD | HDD |
---|---|---|
80 % | 4 TB o 4096 GiB | 12,8 TB o 13.107 GiB |
70 % | 3,5 TB o 3584 GiB | 11,2 TB o 11.468 GiB |
60 % | 3 TB o 3072 GiB | 9,6 TB o 9830 GiB |
50 % | 2,5 TB o 2560 GiB | 8 TB u 8192 GiB |
Determinar el número máximo de nodos
El valor que elijas como número máximo de nodos debe ser el número de nodos que el clúster necesita para gestionar el tráfico más intenso de tu carga de trabajo, aunque no esperes alcanzar ese volumen la mayoría de las veces. Bigtable nunca aumenta el número de nodos más de lo necesario. También puedes considerar este número como el número máximo de nodos que estás dispuesto a pagar. Consulta los parámetros de escalado automático para obtener información sobre los valores aceptados.
El número máximo debe permitir tanto el objetivo de uso de CPU que hayas definido como el objetivo de uso de almacenamiento que haya definido Bigtable.
Si vas a cambiar un clúster de asignación manual a autoescalado, busca el número más alto de nodos que ha tenido el clúster en el último mes. El valor máximo de autoescalado debe ser al menos ese número.
Si vas a habilitar el autoescalado en un clúster nuevo de una instancia que ya tengas, usa las métricas de otros clústeres de la instancia como guía.
Si tienes una carga de trabajo nueva y no sabes cómo va a crecer, puedes estimar el número de nodos que necesitas para alcanzar el objetivo de utilización del almacenamiento integrado y, después, ajustar el número.
Para obtener este número, calcula la cantidad de datos que tienes previsto almacenar en el clúster y, a continuación, divide ese número entre el objetivo de utilización del almacenamiento del tipo de almacenamiento que uses.
Por ejemplo, si almacenas 10 TB en un clúster SSD, puedes dividir 10 TB entre 2,5 TB, que es el objetivo de uso del almacenamiento definido de forma predeterminada para los clústeres SSD que usan el autoescalado. El resultado es 4, lo que significa que 4 es el número de nodos que pueden gestionar esa cantidad de datos y que el máximo debe ser un número superior.
Con la misma fórmula, en los siguientes ejemplos se muestra el número de nodos que podrías necesitar para algunas cantidades de almacenamiento de muestra:
Almacenamiento SSD por clúster | Número máximo de nodos más pequeño |
---|---|
25 TB | 10 |
35 TB | 14 |
50 TB | 20 |
Una vez que el clúster esté en funcionamiento con el autoescalado habilitado, monitoriza el clúster y asegúrate de que el valor que elijas para el número máximo de nodos sea al menos tan alto como el recommended number of nodes for CPU target
y el recommended number of nodes for storage target
.
Determinar el número mínimo de nodos
Puedes definir el mínimo en 1 para asegurarte de que tu Bigtable se pueda reducir al tamaño más pequeño y rentable posible. El clúster nunca se queda demasiado pequeño porque Bigtable impide automáticamente que el número de nodos descienda por debajo del mínimo necesario para mantener los objetivos de utilización de CPU y almacenamiento. Consulta los parámetros de escalado automático para obtener información sobre los valores aceptados.
Sin embargo, en muchos casos, querrá asignar a este valor más de uno. Elige un número mayor o aumenta el número mínimo de nodos en las siguientes situaciones:
- Tienes un evento próximo, como el Cyber Monday, en el que esperas que tu tráfico aumente temporalmente y quieres asegurarte de que tienes suficiente capacidad.
- Tu aplicación envía tráfico con picos. Cuando se añaden nodos nuevos, Bigtable se reequilibra automáticamente en los nodos nuevos. Como este proceso puede tardar varios minutos, suele ser mejor adoptar un enfoque conservador y elegir un mínimo más alto para que el clúster pueda adaptarse a los picos sin problemas.
- Aumenta el número máximo de nodos. El mínimo siempre debe ser el diez por ciento o menos del número máximo de nodos. Por ejemplo, si el valor máximo es 30, el mínimo debe ser al menos 3.
Si aumentas el valor del número mínimo de nodos de un clúster, Bigtable intentará inmediatamente escalar el clúster al nuevo mínimo. Se aplican las restricciones estándar. Sin embargo, si una zona se queda sin nodos, no se aprovisionarán nodos adicionales para cumplir el mínimo configurado. Bigtable sigue intentando añadir nodos y crea una entrada de registro de auditoría por cada intento fallido hasta que consigue escalar el clúster al nuevo número mínimo de nodos. Bigtable no cambia el valor configurado en esta situación. Por lo tanto, es posible que observes que el número de nodos del clúster es inferior al mínimo hasta que se complete el escalado.
Ajustar la configuración
Vigila el uso de tus nodos y ajusta la configuración si es necesario, sobre todo después de habilitar el autoescalado por primera vez.
Cuenta de replicación
En una instancia que usa la replicación, los ajustes y la actividad de autoescalado de cada clúster son completamente independientes de los de los demás clústeres de la instancia. Debes configurar el modo de escalado de cada clúster de una instancia.
Por lo general, en las instancias replicadas, debes habilitar el autoescalado en todos los clústeres de la instancia. La configuración del autoescalado suele ser la misma para todos los clústeres de la instancia, pero puede variar en función del caso práctico, la carga de trabajo y los requisitos de rendimiento de cada clúster.
Como los clústeres de una instancia replicada realizan tareas adicionales para gestionar la replicación, debes elegir un número máximo de nodos superior al que elegirías para una instancia de un solo clúster. Para obtener más información, consulta Replicación y rendimiento.
Control de acceso
Para configurar el autoescalado, debes ser un principal con los permisos create
y update
del clúster y de la instancia que estés configurando.
Supervisión
Bigtable proporciona varias métricas para ayudarte a entender cómo funciona el escalado automático de Bigtable a medida que aumenta y disminuye para cumplir los requisitos de la carga de trabajo. Las métricas también pueden ayudarte a evaluar si tus ajustes son óptimos para cumplir los requisitos de carga de trabajo y costes de tu empresa. Por ejemplo, si observa que el número de nodos de un clúster suele estar cerca del número máximo de nodos, puede aumentar el máximo. Para obtener más información sobre cómo monitorizar tus recursos de Bigtable, consulta Monitorizar una instancia.
Las siguientes métricas se muestran en gráficos en la página de resumen del clúster de la consola Google Cloud . También puede ver estas métricas con Cloud Monitoring.
bigtable.googleapis.com/cluster/autoscaling/min_node_count
bigtable.googleapis.com/cluster/autoscaling/max_node_count
bigtable.googleapis.com/cluster/autoscaling/recommended_node_count_for_cpu
bigtable.googleapis.com/cluster/autoscaling/recommended_node_count_for_storage
Almacenamiento de registros
Bigtable emite un registro de auditoría de eventos del sistema cada vez que escala un clúster. La entrada de registro es similar a la siguiente:
Grew from 9 to 10 nodes to maintain CPU utilization at 60%.
Puede ver los registros de eventos del sistema de escalado automático en la página de resumen del clúster de Bigtable en la Google Cloud consola. También puedes verlos con el Explorador de registros:
Ve al explorador de registros:
Selecciona el Google Cloud proyecto adecuado.
En el campo Consulta, introduce lo siguiente:
resource.type="audited_resource" resource.labels.service="bigtableadmin.googleapis.com" resource.labels.method="AutoscaleCluster"
Haz clic en Realizar una consulta.
En el panel Resultados de la consulta se muestran los registros de la última hora.
Para obtener más información sobre cómo ver los registros, consulta Cloud Logging.