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 , con gcloud
o con 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 en la latencia a medida que se reequilibra el clúster. Esto se debe a que el nodo adicional duplica proporcionalmente el tamaño del clúster. Del mismo modo, si un clúster disminuye su tamaño de dos nodos a un nodo, 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 Cómo determinar 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. Si se habilita la escalabilidad de 2 nodos, este debe ser un número par. 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. Si se habilita la escalabilidad de 2 nodos, este debe ser un número par. Este valor debe ser mayor que cero y mayor o igual 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. El 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 |
Cantidad máxima de terabytes por nodo que puedes almacenar en clústeres de SSD o HDD 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 más información, consulta Cómo determinar el objetivo de uso del almacenamiento. Este objetivo no incluye el nivel de acceso poco frecuente. |
Uso combinado de SSD y acceso poco frecuente |
Cantidad máxima de terabytes por nodo que puedes almacenar en clústeres de SSD y de acceso poco frecuente 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 más información, consulta la sección Almacenamiento por niveles y ajuste de escala automático de este documento. |
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. Si deseas 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 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. Google Cloud
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 |
Almacenamiento por niveles y ajuste de escala automático
El almacenamiento por niveles (vista previa) no afecta el ajuste de escala automático de SSD que se describe en la sección Cómo determinar el objetivo de uso del almacenamiento de este documento. Cuando habilitas el acceso poco frecuente como parte del almacenamiento en niveles, el ajuste de escala automático también se asegura de que el SSD combinado y el almacenamiento de acceso poco frecuente no superen el límite de 32 TB por nodo. Cuando se alcanza el límite, Bigtable se escala verticalmente de forma automática.
Por ejemplo, en un clúster SSD, si estableces un objetivo de uso de almacenamiento de 2.5 TB (50%) por nodo y tu uso de acceso poco frecuente es lo suficientemente alto como para superar el límite de uso de almacenamiento con almacenamiento por niveles, Bigtable agrega nodos. Esto sucede incluso si el uso de tu SSD permanece dentro del objetivo del 50%.
En la siguiente tabla, se explica cómo el ajuste de escala automático recomienda una cantidad de nodos en función del uso de SSD y del uso de acceso poco frecuente:
Situación | Objetivo de uso de almacenamiento | Porcentaje de uso | Uso de SSD | Uso de acceso poco frecuente | Almacenamiento combinado de SSD y de acceso poco frecuente | Cantidad de nodos recomendada |
---|---|---|---|---|---|---|
El uso de SSD está dentro del rango objetivo y no hay uso de acceso poco frecuente. | 5 TB | 100% | Menos de 5 TB | 0 TB | Menos de 5 TB | 1 |
El uso de SSD supera el límite de almacenamiento por nodo. | 5 TB | 100% | 6 TB | 0 TB | 6 TB | 2 |
El uso de SSD y el uso de acceso poco frecuente se encuentran dentro del límite de almacenamiento por niveles. | 5 TB | 100% | 5 TB | 27 TB | 32 TB | 1 |
El uso de almacenamiento por niveles supera el límite de almacenamiento por niveles. | 5 TB | 100% | 5 TB | 28 TB | 33 TB | 2 |
El uso de SSD casi supera el objetivo de uso de SSD y no hay uso de acceso poco frecuente. | 3 TB | 60% | 3 TB | 0 TB | 3 TB | 1 |
El uso de SSD casi supera el objetivo de uso de SSD, y el uso por niveles casi supera el límite de almacenamiento por niveles. | 3 TB | 60% | 3 TB | 29 TB | 32 TB | 1 |
El uso de SSD supera el objetivo de almacenamiento de SSD y no hay uso de acceso poco frecuente. | 2.5 TB | 50% | 4 TB | 0 TB | 4 TB | 2 |
El uso por niveles supera el límite de almacenamiento por niveles. | 2.5 TB | 50% | 2 TB | 31 TB | 33 TB | 2 |
Para obtener más información sobre el almacenamiento por niveles, consulta la Descripción general del almacenamiento por niveles.
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. Para obtener detalles sobre los valores aceptados, consulta Parámetros de ajuste de escala automático.
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.
Si habilitaste el almacenamiento por niveles, debes tener en cuenta el límite de almacenamiento de 32 TB por nodo. Incluso si el uso de SSD es bajo, un gran volumen de datos en el nivel de acceso poco frecuente puede activar el ajuste de escala de los nodos.
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 de aumento de escala próximo, 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á de inmediato ajustar la escala del clúster al nuevo mínimo. 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 logra escalar el clúster a la nueva cantidad mínima de nodos. En esta situación, Bigtable no cambia el valor configurado. Como resultado, es posible que observes que el recuento de nodos del clúster es inferior al mínimo hasta que se complete el ajuste de escala.
Ajusta tu configuración
Después de habilitar el ajuste de escala automático, es importante supervisar su comportamiento y ajustar la configuración según sea necesario. Usa las métricas de supervisión para observar lo siguiente:
- Cantidades de nodos recomendadas: Presta mucha atención a las métricas
recommended_node_count_for_cpu
yrecommended_node_count_for_storage
. Estas métricas indican la cantidad ideal de nodos según tus objetivos de uso de CPU y almacenamiento, respectivamente. - Cantidad de nodos aprovisionados: Compara las cantidades de nodos recomendadas con la cantidad real de nodos aprovisionados. Si tu clúster usa constantemente más nodos de los recomendados, puedes considerar reducir la cantidad mínima de nodos para disminuir tus costos.
- Cantidad máxima de nodos: Asegúrate de que la cantidad máxima de nodos sea lo suficientemente alta como para permitir que tu clúster escale verticalmente y satisfaga la demanda. Si observas que tu clúster alcanza con frecuencia la cantidad máxima de nodos, auméntala para proporcionar más capacidad.
También puedes ajustar el objetivo de uso de la CPU para mejorar el rendimiento. Si observas problemas de latencia, es posible que debas reducir el objetivo de uso de CPU para garantizar que tu clúster escale de forma más agresiva cuando aumente la demanda. Por el contrario, si tu clúster se aprovisiona en exceso de forma constante y tu latencia es aceptable, puedes considerar aumentar el objetivo de CPU.
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:
Navega al Explorador de registros:
Ir al Explorador de registros.
Selecciona el proyecto Google Cloud adecuado.
En el campo Consulta, ingresa lo siguiente:
resource.type="audited_resource" resource.labels.service="bigtableadmin.googleapis.com" resource.labels.method="AutoscaleCluster"
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?
- Habilita el ajuste de escala automático en un clúster existente.
- Comprende el rendimiento de Bigtable.