Descripción general de la herramienta del escalador automático

En esta página, se presenta la herramienta Escalador automático para Spanner (escalador automático), una herramienta de código abierto que puedes usar como herramienta complementaria de Spanner. Esta herramienta te permite aumentar o reducir automáticamente la capacidad de procesamiento en una o más instancias de Spanner según la cantidad de capacidad que se esté usando.

Para obtener más información sobre el escalamiento en Spanner, consulta Ajuste de escala automático de Spanner. Para obtener información sobre la implementación de la herramienta de escalamiento automático, consulta lo siguiente:

En esta página, se presentan las características, la arquitectura y la configuración de alto nivel del escalador automático. En estos temas, se te guiará a través de la implementación del escalador automático en uno de los entornos de ejecución compatibles en cada una de las diferentes topologías.

Escalador automático

La herramienta de escalador automático es útil para administrar el uso y el rendimiento de tus implementaciones de Spanner. Para ayudarte a equilibrar el control de costos con las necesidades de rendimiento, la herramienta Autoscaler supervisa tus instancias y agrega o quita nodos o unidades de procesamiento de forma automática para garantizar que permanezcan dentro de los siguientes parámetros:

Más o menos un margen configurable.

El ajuste de escala automático de las implementaciones de Spanner permite que tu infraestructura se adapte y escale de forma automática para satisfacer los requisitos de carga casi sin intervención. El ajuste de escala automático también aplica un tamaño adecuado a la infraestructura aprovisionada, lo que puede ayudarte a minimizar los cargos incurridos.

Arquitectura

El escalador automático tiene dos componentes principales: el obturador y el escalador. Aunque puedes implementar el escalador automático con diferentes configuraciones en varios entornos de ejecución en varias topologías con diferentes configuraciones, la funcionalidad de estos componentes principales es la misma.

En esta sección, se describen estos dos componentes y sus propósitos con más detalle.

Aplicación de sondeo

El sondeo recopila y procesa las métricas de series temporales de una o más instancias de Spanner. El sondeo procesa previamente los datos de métricas para cada instancia de Spanner, de modo que solo los datos más relevantes se evalúan y se envían al escalador. El procesamiento previo que realiza el sondeo también simplifica el proceso de evaluación de los límites para las instancias regionales, birregionales y multirregionales de Spanner.

Escalador

El escalador evalúa los datos recibidos del componente de sondeo y determina si necesitas ajustar la cantidad de nodos o unidades de procesamiento y, de ser así, en qué medida. La función compara los valores de las métricas con el umbral, más o menos un margen permitido, y ajusta la cantidad de nodos o unidades de procesamiento según el método de escalamiento configurado. Para obtener más detalles, consulta Métodos de escalamiento.

Durante el flujo, la herramienta de escalamiento automático escribe un resumen de sus recomendaciones y acciones en Cloud Logging para el seguimiento y la auditoría.

Funciones del escalador automático

En esta sección, se describen las funciones principales de la herramienta Autoscaler.

Administra varias instancias

La herramienta de escalamiento automático puede administrar varias instancias de Spanner en varios proyectos. Las instancias multirregionales, birregionales y regionales tienen diferentes umbrales de uso que se usan cuando se escala. Por ejemplo, las implementaciones multirregionales y de región doble se escalan con un 45% de uso de CPU de prioridad alta, mientras que las implementaciones regionales se escalan con un 65% de uso de CPU de prioridad alta, más o menos un margen permitido. Para obtener más información sobre los diferentes umbrales de escalamiento, consulta Alertas para el uso de CPU elevado.

Parámetros de configuración independientes

Cada instancia de Spanner con ajuste de escala automático puede tener uno o más programas de sondeo. Cada programa de sondeo tiene su propio conjunto de parámetros de configuración.

Estos parámetros determinan los siguientes factores:

  • La cantidad mínima y máxima de nodos o unidades de procesamiento que controlan qué tan pequeña o grande es tu instancia, lo que te ayuda a controlar los cargos incurridos.
  • El método de escalamiento que se usa para ajustar la instancia de Spanner específica para tu carga de trabajo.
  • Los períodos de inactividad para permitir que Spanner administre las divisiones de datos

Métodos de escalamiento

La herramienta de escalador automático proporciona tres métodos diferentes para el escalamiento ascendente y descendente de las instancias de Spanner: gradual, lineal y directo. Cada método está diseñado para admitir diferentes tipos de cargas de trabajo. Puedes aplicar uno o más métodos a cada instancia de Spanner con ajuste de escala automático cuando creas programas de sondeo independientes.

En las siguientes secciones, se proporciona más información sobre estos métodos de escalamiento.

Paso a paso

El escalamiento gradual es útil para cargas de trabajo que tienen picos pequeños o múltiples. Aprovisiona la capacidad para suavizarlos a todos con un solo evento de ajuste de escala automático.

En el siguiente gráfico, se muestra un patrón de carga con varias plataformas o pasos de carga, en el que cada paso tiene varios picos pequeños. Este patrón es adecuado para el método gradual.

Patrón de carga con varios pasos.

Cuando se supera el límite de carga, este método aprovisiona y quita nodos o unidades de procesamiento con un número fijo pero configurable. Por ejemplo, se agregan o quitan tres nodos para cada acción de escalamiento. Si cambias la configuración, puedes permitir que se agreguen o quiten incrementos más grandes de capacidad en cualquier momento.

Lineal

El escalamiento lineal se usa mejor con patrones de carga que cambian de manera más gradual o tienen algunos picos grandes. Con el método, se calcula la cantidad mínima de nodos o unidades de procesamiento necesarios para mantener el uso por debajo del umbral de escalamiento. La cantidad de nodos o unidades de procesamiento que se agregan o quitan en cada evento de escalamiento no se limita a un importe fijo.

En el patrón de carga de muestra del siguiente gráfico, se muestran aumentos y disminuciones repentinos y grandes en la carga. Estas fluctuaciones no se agrupan en pasos perceptibles como en el gráfico anterior. Este patrón se puede controlar mejor con el escalamiento lineal.

Patrón de carga con fluctuaciones.

La herramienta del escalador automático usa la proporción del uso observado durante el límite de uso para calcular si se deben agregar o quitar nodos o unidades de procesamiento del número total actual.

La fórmula para calcular la cantidad nueva de nodos o unidades de procesamiento es la siguiente:

newSize = currentSize * currentUtilization / utilizationThreshold

Direct

El escalamiento directo proporciona un aumento inmediato de capacidad. Este método está diseñado para admitir cargas de trabajo por lotes en las que se requiere un recuento de nodos predeterminado más alto de forma periódica en un programa con hora de inicio conocida. Este método escala la instancia hasta la cantidad máxima de nodos o unidades de procesamiento especificados en el programa y está diseñado para usarse junto con un método lineal o gradual.

En el siguiente gráfico, se muestra el gran aumento planificado en la carga con capacidad aprovisionada de manera previa del escalador automático para usar el método directo.

Patrón de carga con ajuste de escala directo aprovisionado de forma previa

Una vez que se completa la carga de trabajo por lotes y el uso vuelve a los niveles normales, según la configuración, se aplica un escalamiento lineal o gradual para reducir la escala de la instancia de forma automática.

Configuración

La herramienta Escalador automático tiene diferentes opciones de configuración que puedes usar para administrar el escalamiento de tus implementaciones de Spanner. Aunque las funciones de Cloud Run y los parámetros de GKE son similares, se proporcionan de manera diferente. Para obtener más información sobre la configuración de la herramienta Autoscaler, consulta Configura una implementación de funciones de Cloud Run y Configura una implementación de GKE.

Configuración avanzada

La herramienta de escalamiento automático tiene opciones de configuración avanzada que te permiten controlar con mayor precisión cuándo y cómo se administran tus instancias de Spanner. En las siguientes secciones, se presenta una selección de estos controles.

Límites personalizados

La herramienta del escalador automático determina la cantidad de nodos o unidades de procesamiento que se agregarán o restarán a una instancia mediante los umbrales de Spanner recomendados para las siguientes métricas de carga:

  • CPU de alta prioridad
  • CPU promedio móvil de 24 horas
  • Uso de almacenamiento

Te recomendamos que uses los umbrales predeterminados como se describe en Crea alertas para las métricas de Spanner. Sin embargo, en algunos casos, es posible que desees modificar los umbrales que usa la herramienta del escalador automático. Por ejemplo, puedes usar umbrales más bajos para lograr que la herramienta de escalamiento automático reaccione con mayor rapidez que para los umbrales más altos. Esta modificación ayuda a evitar que las alertas se activen en umbrales más altos.

Métricas personalizadas

Si bien las métricas predeterminadas en la herramienta de Autoscaler abordan la mayoría de las situaciones de rendimiento y escalamiento, hay algunas instancias en las que es posible que debas especificar tus propias métricas para determinar cuándo reducir la escala y escalar horizontalmente. Para estas situaciones, debes definir métricas personalizadas en la configuración con la propiedad metrics.

Márgenes

Un margen define un límite superior y uno inferior alrededor del umbral. La herramienta del escalador automático solo activa un evento de ajuste de escala automático si el valor de la métrica supera el límite superior o es inferior.

El objetivo de este parámetro es evitar que los eventos de ajuste de escala automático se activen para fluctuaciones pequeñas de la carga de trabajo alrededor del umbral, lo que reduce la cantidad de fluctuación en las acciones del escalador automático. El umbral y el margen juntos definen el siguiente rango, según lo que desees que sea el valor de la métrica:

[threshold - margin, threshold + margin]

Cuanto menor sea el margen, más reducido será el rango, lo cual da como resultado una mayor probabilidad de que se active un evento de ajuste de escala automático.

Especificar un parámetro de margen para una métrica es opcional y tiene un valor predeterminado de cinco puntos porcentuales tanto antes como debajo del parámetro.

Divisiones de datos

Spanner asigna rangos de datos llamados divisiones a los nodos o las subdivisiones de un nodo llamado unidades de procesamiento. El nodo o las unidades de procesamiento administran y entregan de forma independiente los datos en las divisiones asignadas. Las divisiones de datos se crean según varios factores, lo que incluye el volumen de datos y los patrones de acceso. Para obtener más detalles, consulta Spanner: esquema y modelo de datos.

Los datos se organizan en divisiones y Spanner administra las divisiones de forma automática. Por lo tanto, cuando la herramienta de escalamiento automático agrega o quita nodos o unidades de procesamiento, necesita permitir que el backend de Spanner tenga tiempo suficiente para reasignar y reorganizar las divisiones a medida que se agrega o se quita capacidad nueva de las instancias.

La herramienta del escalador automático usa períodos de enfriamiento en los eventos de escalamiento vertical y horizontal para controlar la rapidez con la que puede agregar o quitar nodos o unidades de procesamiento de una instancia. Este método permite que la instancia tenga el tiempo necesario para reorganizar las relaciones entre las notas de procesamiento o las unidades de procesamiento y las divisiones de datos. De forma predeterminada, los períodos de enfriamiento de escalamiento vertical y de reducción de escala se establecen en los siguientes valores mínimos:

  • Valor de escalamiento vertical: 5 minutos
  • Valor de reducción de escala: 30 minutos

Para obtener más información sobre las recomendaciones de escalamiento y los períodos de enfriamiento, consulta Escala instancias de Spanner.

Precios

El consumo de recursos de la herramienta de escalamiento automático es menor en términos de procesamiento, memoria y almacenamiento. Según la configuración del escalador automático, cuando se implementa en funciones de Cloud Run, el uso de recursos del escalador automático suele estar en el nivel gratuito de sus servicios dependientes (funciones de Cloud Run, Cloud Scheduler, Pub/Sub y Firestore).

Usa la calculadora de precios para generar una estimación de los costos de tus entornos según el uso previsto.

¿Qué sigue?