Ajuste de escala automático

En esta página, se explica cómo funciona el ajuste de escala automático. Antes de leer esta página, debes familiarizarte con la descripción general de Bigtable y con la información sobre instancias, clústeres y nodos.

En Bigtable, las instancias son contenedores para clústeres, que son recursos específicos de la ubicación que controlan las solicitudes. Cada clúster tiene uno o más nodos, que son recursos de procesamiento que se usan para administrar tus datos. Cuando creas un clúster en una instancia, eliges la asignación manual de nodos o el ajuste de escala automático.

Con la asignación manual de nodos, la cantidad de nodos en el clúster permanece constante hasta que la cambies. Cuando el ajuste de escala automático está habilitado, Bigtable supervisa de forma continua el clúster y ajusta de forma automática la cantidad de nodos en el clúster cuando es necesario. El ajuste de escala automático funciona en clústeres HDD y SSD, en todas las regiones de Bigtable.

Puedes configurar el ajuste de escala automático en la consola de Google Cloud mediante gcloud o la biblioteca cliente de Cloud Bigtable para Java.

Cuándo usar el ajuste de escala automático

En la mayoría de los casos, te recomendamos que habilites el ajuste de escala automático. Estos son algunos beneficios del ajuste de escala automático:

  • Costos: El ajuste de escala automático puede ayudarte a optimizar los costos, ya que Bigtable reduce la cantidad de nodos en tu clúster siempre que sea posible. Esto puede ayudarte a evitar el aprovisionamiento excesivo.
  • Rendimiento: El ajuste de escala automático permite que Bigtable agregue nodos a un clúster de forma automática cuando una carga de trabajo cambia o cuando aumentas los requisitos de almacenamiento de datos. Esto ayuda a mantener los objetivos de rendimiento de la carga de trabajo, ya que garantiza que el clúster tenga suficientes nodos para cumplir con los requisitos de almacenamiento y el uso de CPU objetivo.
  • Automatización: El ajuste de escala automático reduce la complejidad de la administración. No necesitas supervisar y escalar el tamaño del clúster de forma manual ni escribir una aplicación que haga estas tareas, ya que el servicio de Bigtable las administra por ti.

Es posible que el ajuste de escala automático por sí solo no funcione bien para los siguientes tipos de cargas de trabajo, ya que, si bien Bigtable agrega nodos con rapidez cuando el tráfico aumenta, puede tardar tiempo balancear los nodos adicionales.

  • Tráfico inestable
  • Cargas de trabajo repentinas por lotes

Si los aumentos de uso son predecibles o programados con regularidad, puedes usar el ajuste de escala automático y ajustar la configuración antes de los aumentos de actividad planificados. Consulta Retraso mientras los nodos se rebalancean para obtener más detalles.

Cómo funciona el ajuste de escala automático

El ajuste de escala automático es el proceso de escalamiento automático o cambio de tamaño de un clúster, mediante el cual se agregan o se quitan nodos. Cuando habilitas el ajuste de escala automático, Bigtable ajusta el tamaño de tu clúster de forma automática por ti. Cuando la carga de trabajo o las necesidades de almacenamiento de tu clúster fluctúan, Bigtable escala verticalmente, lo que agrega nodos al clúster, o reduce la escala verticalmente, lo que quita nodos del clúster.

El ajuste de escala automático de Bigtable determina la cantidad de nodos necesarios en función de las siguientes dimensiones:

  • Objetivo de uso de CPU
  • Objetivo de uso de almacenamiento
  • Cantidad mínima de nodos
  • Cantidad máxima de nodos

Cada dimensión de escalamiento genera un recuento de nodo recomendado, y Bigtable usa de forma automática el más alto. Esto significa que, por ejemplo, si tu clúster necesita 10 nodos para cumplir con tu objetivo de uso de almacenamiento, pero 12 para cumplir con tu objetivo de uso de CPU, Bigtable escala el clúster a 12 nodos.

A medida que cambia la cantidad de nodos, Bigtable optimiza el almacenamiento de manera continua, mediante el rebalanceo de los datos entre los nodos, para garantizar que el tráfico se distribuya de manera uniforme y no se sobrecarguen los nodos.

Después de escalar verticalmente un clúster, Bigtable rebalancea los nodos de tu clúster de forma automática para obtener un rendimiento óptimo. Todas las solicitudes continúan llegando al clúster mientras el escalamiento y el rebalanceo están en curso. Consulta Limitaciones de escalamiento para obtener más información.

Si un clúster escala verticalmente hasta su cantidad máxima de nodos y se supera el objetivo de uso de CPU, las solicitudes pueden tener una latencia alta o fallar. Si un clúster escala verticalmente hasta su cantidad máxima de nodos y se supera el límite de uso de almacenamiento, las solicitudes de escritura fallarán. Consulta Almacenamiento por nodo para obtener más detalles sobre los límites de almacenamiento.

Cuando se agrega 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 a medida que el clúster se rebalancea. Esto se debe a que el nodo adicional duplica proporcionalmente el tamaño del clúster. Del mismo modo, si el tamaño de un clúster disminuye de dos nodos a uno, es posible que se produzca cierta latencia.

Cuando se reduce verticalmente la escala de un clúster, los nodos se quitan a una velocidad menor que cuando se escala verticalmente, para evitar cualquier impacto en la latencia. Consulta limitaciones del escalamiento para obtener más detalles.

Parámetros de ajuste de escala automático

Cuando creas o editas un clúster y eliges el ajuste de escala automático, defines los valores para el objetivo de uso de CPU, los nodos mínimos y la cantidad máxima de nodos. Puedes configurar el objetivo de uso del almacenamiento o dejar el valor predeterminado, que es de 50% (2.5 TB para SSD y 8 TB para HDD).

Parámetro Descripción
Objetivo de uso de CPU

Un porcentaje de la capacidad de CPU del clúster. Puede ser del 10% al 80%. Cuando el uso de CPU de un clúster supera el objetivo que estableciste, Bigtable agrega nodos al clúster de inmediato. Cuando el uso de CPU es mucho más bajo que el objetivo, Bigtable quita nodos. Para obtener orientación, consulta Determina el objetivo de uso de CPU.

Cantidad mínima de nodos

La cantidad más baja de nodos a los que Bigtable reducirá la escala del clúster. Este valor debe ser mayor que cero y no puede ser menor que el 10% del valor que estableciste para la cantidad máxima de nodos. Por ejemplo, si la cantidad máxima de nodos es 40, la cantidad mínima de nodos debe ser al menos 4. El requisito del 10% es un límite estricto. Para obtener orientación, consulta Determina la cantidad mínima de nodos.

Cantidad máxima de nodos

La cantidad más alta de nodos a la que deseas que escale el clúster. Este valor debe ser mayor que cero y igual o mayor que la cantidad mínima de nodos. El valor no puede ser más de 10 veces la cantidad mínima de nodos que elijas. Este requisito de 10 veces es un límite estricto. Para obtener orientación, consulta Determina la cantidad máxima de nodos.

Objetivo de uso de almacenamiento

La cantidad máxima de terabytes por nodo que puedes almacenar antes de que Bigtable escale verticalmente. Este objetivo garantiza que siempre tengas suficientes nodos para manejar las fluctuaciones en la cantidad de datos que almacenas. Para obtener orientación, consulta Determina el objetivo de uso del almacenamiento.

Configurar ajuste de escala automático

En esta sección, se describe cómo elegir tus parámetros de ajuste de escala automático. Después de configurar los valores iniciales, supervisa el clúster y ajusta los números si es necesario.

Determina el objetivo de uso de CPU

Basa el objetivo de uso de CPU en tu carga de trabajo única. El objetivo óptimo para tu clúster depende de los requisitos de capacidad de procesamiento y latencia de tu carga de trabajo. Para obtener más información, consulta Planifica tu capacidad de Bigtable.

En general, si observas una latencia inaceptablemente alta, debes reducir el objetivo de uso de CPU.

Determina el objetivo de uso del almacenamiento

Si tu aplicación es sensible a la latencia, mantén el uso de almacenamiento por debajo del 60%. Si tu aplicación no es sensible a la latencia, puedes elegir un objetivo de uso de almacenamiento del 70% o más. Para obtener más información, consulta Planifica tu capacidad de Bigtable.

Para el ajuste de escala automático, el uso de almacenamiento se expresa como la cantidad de bytes de almacenamiento por nodo en lugar de como un porcentaje. El objetivo de uso de 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 en el almacenamiento SSD y de 16 TB por nodo en el almacenamiento HDD.

En la siguiente tabla, se muestran los importes objetivo para los porcentajes objetivo de uso de almacenamiento típicos. La consola de Google Cloud acepta el valor en TB por nodo, y las bibliotecas cliente de Cloud Bigtable, API y gcloud CLI aceptan un valor de número entero en GiB por nodo.

Porcentaje SSD HDD
80% 4 TB o 4,096 GiB 12.8 TB o 13,107 GiB
70% 3.5 TB o 3,584 GiB 11.2 TB o 11,468 GiB
60% 3 TB o 3,072 GiB 9.6 TB o 9,830 GiB
50% 2.5 TB o 2,560 GiB 8 TB o 8,192 GiB

Determina la cantidad máxima de nodos

El valor que elijas como cantidad máxima de nodos debería ser la cantidad de nodos que el clúster necesita para manejar el mayor tráfico de tu carga de trabajo, incluso si no esperas alcanzar ese volumen la mayor parte del tiempo. Bigtable nunca escala verticalmente a más nodos de los que necesita. También puedes considerar esta cantidad como el número más alto de nodos que estás dispuesto a pagar. Consulta Parámetros de ajuste de escala automático para obtener más información sobre los valores aceptados.

La cantidad máxima debe permitir que se cumpla el objetivo de uso de CPU que estableces y el objetivo de uso de almacenamiento que establece Bigtable.

Si cambias un clúster de asignación manual a ajuste de escala automático, busca la mayor cantidad de nodos que el clúster tuvo en el último mes. El máximo de ajuste de escala automático debe ser al menos esa cantidad.

Si habilitas el ajuste de escala automático para un clúster nuevo en una instancia existente, usa métricas de otros clústeres en la instancia a modo de guía.

Si tienes una carga de trabajo nueva y no estás seguro de cómo crecerá, puedes estimar la cantidad de nodos que necesitas para cumplir con el objetivo de uso de almacenamiento integrado y, luego, ajustar el número más adelante.

Para llegar a esta cantidad, calcula la cantidad de datos que planeas almacenar en el clúster y, luego, divide esa cantidad por el objetivo de uso de almacenamiento para el tipo de almacenamiento que usas.

Por ejemplo, si almacenas 10 TB en un clúster SSD, puedes dividir 10 TB por 2.5 TB, que es el objetivo de uso de almacenamiento establecido de forma predeterminada para los clústeres SSD que usan ajuste de escala automático. El resultado es 4, lo que significa que 4 es la cantidad de nodos que pueden controlar esa cantidad de datos y el máximo debe ser un número mayor que ese.

Con la misma fórmula, en los siguientes ejemplos se muestra la cantidad de nodos que podrías necesitar para algunas cantidades de almacenamiento de muestra:

Almacenamiento SSD por clúster Cantidad máxima de nodos más baja
25 TB 10
35 TB 14
50 TB 20

Después de que tu clúster esté en funcionamiento con el ajuste de escala automático habilitado, supervisa el clúster y asegúrate de que el valor que elijas para la cantidad máxima de nodos sea al menos tan alto como los valores de recommended number of nodes for CPU target y recommended number of nodes for storage target.

Determina la cantidad mínima de nodos

Puedes establecer el mínimo en 1 para garantizar que Bigtable pueda reducir la escala verticalmente al tamaño más pequeño y rentable si es posible. El clúster nunca se vuelve demasiado pequeño porque Bigtable evita de forma automática que la cantidad de nodos disminuya por debajo del mínimo necesario para mantener los objetivos de uso de CPU y almacenamiento. Consulta Parámetros de ajuste de escala automático para obtener más información sobre los valores aceptados.

Sin embargo, en muchos casos deberás establecer un valor mayor que uno. Elige una cantidad mayor o aumenta la cantidad mínima de nodos para las siguientes situaciones:

  • Tienes un evento próximo, como Cyber Monday, en el que esperas que el tráfico aumente de forma temporal y deseas asegurarte de tener la capacidad suficiente.
  • Tu aplicación envía tráfico con aumentos bruscos. Cuando se agregan nodos nuevos, Bigtable rebalancea de forma automática a los nodos nuevos. Debido a que este proceso puede llevar varios minutos, a menudo es mejor adoptar un enfoque conservador y elegir un mínimo más alto para que tu clúster pueda incorporar los aumentos repentinos sin problemas.
  • Aumentas la cantidad máxima de nodos. El mínimo siempre debe ser el diez por ciento o menos de la cantidad máxima de nodos. Por ejemplo, si estableces el máximo en 30, debes establecer el mínimo en al menos 3.

Si aumentas el valor de la cantidad mínima de nodos de un clúster, Bigtable intentará escalar el clúster al nuevo mínimo de inmediato. Sin embargo, se aplican las restricciones estándar. Si una zona se queda sin nodos, no se aprovisionan nodos adicionales para cumplir con el mínimo configurado. Bigtable sigue intentando agregar nodos y crea una entrada de registro de auditoría para cada intento fallido hasta que escala correctamente el clúster a la nueva cantidad mínima de nodos. Bigtable no cambia el valor configurado en esta situación. Como resultado, es posible que obserbes que la cantidad de nodos del clúster es inferior a la mínima hasta que se complete la escala.

Ajusta tu configuración

Supervisa el uso de los nodos y ajusta la configuración si es necesario, en especial después de habilitar el ajuste de escala automático por primera vez.

Considera la replicación

En una instancia que usa la replicación, la configuración y la actividad del ajuste de escala automático de cada clúster son completamente independientes de las de los otros clústeres de la instancia. Debes configurar el modo de escalamiento para cada clúster de una instancia.

En general, para las instancias replicadas, debes habilitar el ajuste de escala automático en cada clúster de la instancia. La configuración del ajuste de escala automático suele ser la misma para cada clúster de la instancia, pero puede ser diferente según el caso de uso, la carga de trabajo y los requisitos de rendimiento para cada clúster.

Debido a que los clústeres en una instancia replicada realizan un trabajo adicional para administrar la replicación, debes elegir una mayor cantidad máxima de nodos para ellos que 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 ajuste de escala automático, debes ser un principal en un rol que tenga permisos de create y update para el clúster y la instancia que estás configurando.

Supervisión

Bigtable proporciona varias métricas para ayudarte a comprender cómo funciona el ajuste de escala automático de Bigtable a medida que aumenta o reduce la escala verticalmente a fin de cumplir con los requisitos de carga de trabajo. Las métricas también pueden ayudarte a medir si tu configuración es óptima para satisfacer los requisitos de costos y carga de trabajo de tu empresa. Por ejemplo, si observas que la cantidad de nodos de un clúster suele estar cerca de la cantidad máxima de nodos, puedes considerar aumentar el máximo. Para obtener más información sobre la supervisión de tus recursos de Bigtable, consulta Supervisa una instancia.

Las siguientes métricas se muestran en grafos en la página de descripción general del clúster en la consola de Google Cloud. También puedes 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

Logging

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%.

Puedes ver los registros de eventos del sistema de ajuste de escala automático en la página de descripción general del clúster de Bigtable en la consola de Google Cloud. También puedes verlos con el Explorador de registros:

  1. Navega al Explorador de registros:

    Ir al Explorador de registros.

    Selecciona el proyecto de Google Cloud adecuado.

  2. En el campo Consulta, ingresa lo siguiente:

    resource.type="audited_resource" resource.labels.service="bigtableadmin.googleapis.com"
    resource.labels.method="AutoscaleCluster"
    
  3. Haz clic en Ejecutar 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.

¿Qué sigue?