En esta página se describe cómo funciona el escalador automático gestionado y se indican los costes y las limitaciones de su uso en Spanner. También proporciona información para ayudarte a determinar cómo configurar la herramienta de escalado automático gestionada.
Cómo funciona el escalador automático gestionado
Cuando habilitas el autoescalador gestionado, Spanner ajusta automáticamente el tamaño de tu instancia. La función de escalado automático gestionado reacciona a los cambios en la carga de trabajo o las necesidades de almacenamiento de tu instancia a medida que aumenta o disminuye la carga. El autoescalado gestionado aumenta la escala, añadiendo capacidad de computación a la instancia, o reduce la escala, eliminando capacidad de computación de la instancia.
Cuando configuras el escalador automático gestionado, puedes usar unidades de procesamiento para instancias pequeñas o nodos para instancias grandes. En este documento, usamos el término capacidad de computación para referirnos a los nodos o las unidades de procesamiento.
La herramienta de escalado automático gestionada de Spanner determina la capacidad de computación necesaria en función de lo siguiente:
- Objetivo de uso de CPU de prioridad alta
- Objetivo de uso del almacenamiento
- Límite mínimo
- Límite máximo
Cada dimensión de escalado genera un tamaño de instancia recomendado y Spanner usa automáticamente el más alto. Por ejemplo, si tu instancia necesita 10 nodos para alcanzar el objetivo de utilización del almacenamiento, pero 12 nodos para alcanzar el objetivo de utilización de la CPU, Spanner escalará la instancia a 12 nodos.
A medida que cambia la cantidad de capacidad de computación, Spanner optimiza continuamente el almacenamiento. Reequilibra los datos en todos los servidores para asegurarse de que el tráfico se distribuya de forma uniforme y de que ningún servidor esté sobrecargado. Para obtener más información, consulta Limitaciones.
Si el escalador automático gestionado escala una instancia hasta su límite máximo, pero la carga de trabajo sigue provocando un uso de la CPU superior al objetivo, las solicitudes de carga de trabajo pueden tener una latencia mayor o fallar. Si una instancia se escala hasta su objetivo de capacidad de computación máxima, pero la carga de trabajo necesita más almacenamiento que el límite máximo, las solicitudes de escritura pueden fallar. Para saber si se ha alcanzado el máximo de objetivos, puede consultar los registros de eventos del sistema de la herramienta de ajuste automático de escala gestionada en la Google Cloud consola, en la página Información del sistema. Para obtener más información, consulta los límites de almacenamiento.
Cuando Spanner reduce la escala de una instancia, elimina la capacidad de computación a un ritmo más lento que cuando aumenta la escala, para reducir el impacto en la latencia.
Puedes elegir escalar automáticamente de forma asimétrica tus réplicas de solo lectura. Para obtener más información, consulta Escalado automático asimétrico de solo lectura.
Costes
El coste total de Spanner puede ser mayor o menor en función de cómo haya configurado su instancia de Spanner antes de habilitar el escalador automático gestionado y de los límites que haya definido para él.
Por ejemplo, si antes configurabas manualmente tu instancia de Spanner para que tuviera suficiente capacidad de computación para gestionar las cargas de trabajo máximas en cualquier momento, tus costes con el escalador automático gestionado podrían ser más bajos, ya que reduce la capacidad de computación cuando la instancia está inactiva.
Si antes configurabas manualmente tu instancia de Spanner para que tuviera suficiente capacidad de computación para las cargas de trabajo medias y el rendimiento general se deteriora cuando aumenta el tráfico de tu carga de trabajo, tus costes con el escalador automático gestionado podrían ser más altos porque este podría aumentar la capacidad de computación cuando la instancia esté ocupada. Sin embargo, de esta forma, los usuarios disfrutarán de un rendimiento más constante.
Puede limitar el coste máximo de su instancia de Spanner definiendo el límite de nodos o unidades de procesamiento máximo al nivel que quiera gastar.
Limitaciones
Se aplican las siguientes limitaciones cuando habilitas o cambias la función de escalado automático gestionado en una instancia:
- No puedes mover una instancia cuando la función de escalador automático gestionado está habilitada. Primero debes inhabilitar el escalador automático gestionado y, a continuación, mover la instancia. Después de mover la instancia, puede volver a habilitar el escalador automático gestionado.
- Debes definir el límite mínimo de la instancia de autoescalado en 1000 unidades de procesamiento o más, o en 1 nodo o más.
- Cuando habilitas el autoescalado en una instancia, la capacidad de la instancia puede ser inferior al valor mínimo que configures en el autoescalador gestionado. Sin embargo, la instancia se escalará automáticamente hasta el valor mínimo configurado cuando la inicies. Por ejemplo, si tu instancia tiene un nodo, pero estableces el valor mínimo en dos nodos, cuando inicies la instancia, se escalará automáticamente a dos nodos.
- El escalador automático gestionado escala la CPU de las cargas de trabajo de alta prioridad para seguir la recomendación de CPU de alta prioridad de Spanner en caso de que se pierda una zona o una región. No tiene en cuenta el uso total de la CPU. Si el uso de la CPU supera el 100%, el rendimiento puede verse afectado. Si tu carga de trabajo es sensible a la latencia o al rendimiento, puedes personalizar la herramienta de autoescalado de código abierto para escalar en función de la CPU total.
Parámetros de la herramienta de adaptación dinámica gestionada
Cuando creas o editas una instancia y habilitas el escalador automático gestionado, defines los valores que se muestran en la siguiente tabla.
Parámetro | Descripción |
---|---|
Objetivo de uso de CPU de prioridad alta | Porcentaje de la capacidad de CPU de prioridad alta de la instancia. Este valor debe estar entre el 10% y el 90%. Cuando la utilización de la CPU de una instancia supera el objetivo que has definido, Spanner añade inmediatamente capacidad de computación a la instancia. Cuando la utilización de la CPU es considerablemente inferior al objetivo, Spanner elimina capacidad de computación. Para obtener más información, consulta Determinar el objetivo de uso de CPU. |
Objetivo de uso del almacenamiento | El porcentaje de almacenamiento de un nodo que puedes usar antes de que Spanner aumente la capacidad. Este objetivo asegura que siempre tengas suficiente capacidad de computación para gestionar las fluctuaciones en la cantidad de datos que almacenes. Este valor debe estar entre el 10 y el 99%. Para obtener más información, consulta Determinar el objetivo de utilización del almacenamiento. |
Límite mínimo | La cantidad más baja de capacidad de computación a la que Spanner reduce la instancia. El valor mínimo no puede ser inferior al 10% del valor que hayas definido para el límite máximo. Por ejemplo, si el límite máximo es de 40 nodos, el mínimo debe ser de al menos 4 nodos. El requisito del 10% es un límite estricto. Para obtener más información, consulta Determinar el límite mínimo. |
Límite máximo | La mayor cantidad de capacidad de computación a la que Spanner amplía la instancia. En el caso de los nodos, este valor debe ser superior a 1 nodo (o 1000 unidades de procesamiento) e igual o superior al número mínimo de nodos o unidades de procesamiento. El valor no puede ser más de 10 veces el número que elijas para la cantidad mínima de capacidad de computación. Este requisito de 10 veces es un límite estricto. Para obtener más información, consulta Determinar el límite máximo. |
Configurar la herramienta de adaptación dinámica gestionada
En esta sección se describe cómo determinar qué números elegir para los parámetros del escalador automático gestionado. Después de definir los valores iniciales, monitoriza tu instancia y ajusta los números si es necesario.
Determinar el objetivo de uso de CPU de prioridad alta
El objetivo óptimo de tu instancia depende de los requisitos de latencia y de rendimiento de tu carga de trabajo. Para ver nuestras recomendaciones sobre el uso máximo de la CPU en configuraciones de instancias regionales, birregionales y multirregionales, consulta Alertas por uso elevado de la CPU.
El escalador automático gestionado tiene en cuenta las cargas de trabajo de alta prioridad al escalar el uso de la CPU. No tiene en cuenta el uso total de CPU. Si el uso de la CPU supera el 100%, el rendimiento puede verse afectado. Si tu carga de trabajo es sensible a la latencia o al rendimiento, considera la posibilidad de personalizar la herramienta Autoscaler de código abierto para escalar en función de la CPU total.
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
En el caso del escalado automático, el objetivo de utilización del almacenamiento se expresa como un porcentaje por nodo. En las instancias de 1 nodo (1000 unidades de procesamiento) o más, el tamaño del almacenamiento está limitado a 10 TiB por nodo.
Determinar el límite máximo
El valor que elijas como cantidad máxima de capacidad de computación será igual a la cantidad de capacidad de computación que necesite la instancia para gestionar el tráfico más intenso, aunque no esperes alcanzar ese volumen la mayoría de las veces. Spanner nunca aumenta la capacidad de computación más de lo necesario. También puedes considerar este número como la cantidad máxima de capacidad de computación que estás dispuesto a pagar. Consulta los parámetros de escalado automático para obtener información sobre los valores aceptados.
El límite máximo debe permitir tanto el objetivo de uso de CPU como el objetivo de uso de almacenamiento que hayas definido para el autoescalado.
Si vas a cambiar una instancia de asignación manual a escalado automático gestionado, busca la cantidad más alta de capacidad de computación que haya tenido la instancia en los últimos uno o dos meses. El límite máximo de tu escalador automático gestionado debe ser al menos ese valor.
Si vas a habilitar el escalador automático gestionado en una instancia nueva, consulta las métricas de otras instancias y úsalas como guía para definir el límite máximo.
Si tienes una carga de trabajo nueva y no sabes cómo va a crecer, puedes estimar la cantidad de capacidad de computación que necesitas para alcanzar el objetivo de utilización del almacenamiento integrado y, después, ajustar el número.
También debes saber cuánta cuota queda en tu nodo, ya que el escalador automático gestionado no puede configurar tu instancia para que tenga más capacidad de computación que tu cuota. Para obtener más información, consulta Límites de nodos.
Una vez que la instancia esté en funcionamiento con el autoescalado habilitado, monitoriza la instancia y asegúrate de que el valor que has elegido para el límite máximo sea al menos tan alto como el límite recomendado para el objetivo de CPU y el límite recomendado para el objetivo de almacenamiento.
Determinar el límite mínimo
Defines un límite mínimo para el autoescalador gestionado para asegurarte de que tu instancia de Spanner pueda reducirse al tamaño más pequeño y rentable. Spanner impide automáticamente que el número de nodos sea inferior al mínimo necesario para mantener los objetivos de utilización de CPU y almacenamiento.
El valor mínimo más pequeño que permite el escalador automático gestionado es 1 nodo o 1000 unidades de procesamiento. Si habilitas el autoescalado en una instancia que tiene menos capacidad que el valor mínimo configurado para el autoescalador gestionado, la instancia se escalará automáticamente hasta este mínimo cuando la inicies.
Después de iniciar la instancia que tiene el escalado automático gestionado, debes realizar una prueba inicial para asegurarte de que funciona con el tamaño mínimo establecido. Deberías volver a hacer pruebas periódicamente para asegurarte de que sigue funcionando correctamente.
Para obtener más información sobre los valores aceptados, consulta Parámetros del escalador automático gestionado en este documento.
En muchos casos, querrá definir el valor mínimo en más de uno. Elige un número mayor o aumenta el límite mínimo en las siguientes situaciones:
- Tienes un evento de escalado máximo próximo en el que esperas que tu tráfico aumente temporalmente y quieres asegurarte de que tienes suficiente capacidad de computación.
- Tu aplicación envía tráfico con picos. Cuando añades capacidad de computación, Spanner vuelve a equilibrar automáticamente la carga para usar los nuevos nodos o unidades de procesamiento. Como este proceso puede tardar varios minutos, te recomendamos que elijas un valor mínimo más alto. De esta forma, tu instancia se adaptará a los picos sin problemas.
- Aumentar la capacidad de computación máxima. El mínimo siempre debe ser el diez por ciento o más del objetivo de capacidad de computación máxima. Por ejemplo, si defines el número máximo de nodos en
30
, debes definir el número mínimo de nodos en al menos3
.
Si aumentas el valor de la capacidad de computación mínima de una instancia, Spanner intentará escalarla inmediatamente al nuevo mínimo. Se aplican las restricciones estándar. Cuando te quedes sin cuota, tu solicitud para cambiar la configuración del escalador automático gestionado fallará y la configuración no se actualizará.
Después de configurar por primera vez el escalador automático gestionado y, posteriormente, de forma periódica, prueba tu instancia para asegurarte de que funciona con el tamaño mínimo.
Marcas de parámetros y limitaciones de Google Cloud CLI
Cuando usas la CLI de Google Cloud para configurar el escalador automático gestionado, hay algunas marcas obligatorias que debes definir. Hay marcas opcionales que se usan para indicar si quieres usar nodos o unidades de procesamiento. Para obtener más información sobre cómo crear una instancia con el escalador automático gestionado o habilitar el escalado automático gestionado en una instancia, consulta lo siguiente:
Se necesitan las siguientes marcas para habilitar el escalador automático gestionado en tu instancia:
autoscaling-high-priority-cpu-percent
autoscaling-storage-percent
Si decides usar nodos, también debes usar las dos siguientes marcas cuando habilites el escalador automático gestionado:
autoscaling-min-nodes
autoscaling-max-nodes
Si decides usar unidades de procesamiento, también debes usar las dos siguientes marcas cuando habilites el escalador automático gestionado:
autoscaling-min-processing-units
autoscaling-max-processing-units
Al añadir el escalador automático gestionado a una instancia que ya existe mediante la CLI de Google Cloud, se aplican las siguientes limitaciones:
- No puedes usar la marca
--nodes
con las marcas--autoscaling-min-nodes
o--autoscaling-max-nodes
porque--nodes
define un número específico de nodos en lugar de un intervalo de escalado. Del mismo modo, no puedes usar la marca--processing-units
con las marcasautoscaling-min-processing-units
oautoscaling-max-processing-units
, ya que--processing-units
define un número específico de unidades de procesamiento en lugar de un intervalo de escalado. - No se pueden mezclar las marcas de nodos y unidades de procesamiento. Por ejemplo, no puedes usar
--autoscaling-max-nodes
conautoscaling-min-processing-units
.
Ajustar la configuración
Vigila el uso de tu capacidad de computación y ajusta la configuración si es necesario, sobre todo después de habilitar por primera vez el escalador automático gestionado. Te recomendamos que uses la página Estadísticas del sistema de la consola de Google Cloud .
Autoescalado asimétrico de solo lectura
Después de habilitar el escalador automático gestionado, también puedes habilitar y escalar automáticamente tus réplicas de solo lectura de forma independiente de otras réplicas. El autoescalado asimétrico de solo lectura te permite controlar los límites de capacidad de computación y los objetivos de utilización de la CPU de tus regiones de solo lectura en función de su uso. De esta forma, se optimizan los patrones de tráfico de lectura local y se mejora la rentabilidad. Los siguientes parámetros de configuración del escalado automático se pueden configurar para cada región de réplica de solo lectura:
- Límite de capacidad de computación mínima
- Límite máximo de capacidad de computación
- Objetivo de uso de CPU de prioridad alta
Puedes habilitar el autoescalado asimétrico y configurar estos parámetros creando una instancia o actualizando una instancia.
En cada réplica, se aplican las siguientes reglas cuando habilitas el escalado automático asimétrico en una instancia:
- Si la capacidad de computación actual de la réplica se encuentra entre los valores mínimo y máximo de escalado automático definidos para la región, la capacidad de computación de la réplica no cambia.
- Si la capacidad de computación actual de la réplica es inferior al mínimo de escalado automático definido para la región, se ajustará para que coincida con el mínimo de escalado automático.
- Si la capacidad de computación actual de la réplica supera el máximo de autoescalado definido para la región, se ajustará para que coincida con el máximo de autoescalado.
Control de acceso
Para configurar el escalador automático gestionado, debes ser una entidad de seguridad con un rol que tenga permisos de creación y actualización para la instancia que estés configurando.
Supervisión
Spanner proporciona varias métricas para ayudarte a entender cómo funciona el escalador automático gestionado a medida que se escala verticalmente para satisfacer los requisitos de la carga de trabajo. Las métricas también pueden ayudarte a determinar si tu configuración es óptima para cumplir los requisitos de carga de trabajo y costes de tu empresa. Por ejemplo, si observa que el número de nodos de una instancia suele estar cerca del máximo, puede aumentar este valor. Para obtener más información sobre cómo monitorizar tus recursos de Spanner, consulta el artículo Monitorizar instancias con Cloud Monitoring.
Las siguientes métricas se muestran en gráficos en la página Estadísticas del sistema de la consola Google Cloud . También puede ver estas métricas con Cloud Monitoring.
spanner.googleapis.com/instance/autoscaling/min_node_count
spanner.googleapis.com/instance/autoscaling/max_node_count
spanner.googleapis.com/instance/autoscaling/min_processing_units
spanner.googleapis.com/instance/autoscaling/max_processing_units
spanner.googleapis.com/instance/autoscaling/high_priority_cpu_target_utilization
spanner.googleapis.com/instance/autoscaling/storage_target_utilization
Almacenamiento de registros
Spanner crea un registro de auditoría de eventos del sistema cada vez que escala una instancia. Cada registro de eventos tiene un texto de descripción y metadatos relacionados con el evento de escalado automático.
Ver registros en la página Estadísticas del sistema
Puede ver los registros de eventos del sistema de la herramienta de ajuste automático de escala gestionada en la consolaGoogle Cloud en la página Estadísticas del sistema.
En la Google Cloud consola, abre Spanner:
Selecciona la instancia con el autoescalado habilitado.
En el menú de navegación, haga clic en Estadísticas del sistema.
En la página Estadísticas del sistema, vaya a la métrica Capacidad de computación.
Haz clic en Ver registros para abrir el panel de registros.
En el panel Registros de capacidad de computación se muestran los registros de la última hora.
Si el escalado automático asimétrico de solo lectura está habilitado en tu instancia, el resumen de registro proporciona una descripción y la ubicación de los cambios en la capacidad de computación de cada réplica. Por ejemplo,
Increased from 1 to 2 nodes in us-central1 to maintain high priority CPU utilization at 80%
. Si no usas el ajuste de escala automático asimétrico, la información de ubicación no se proporciona en el resumen del registro. Por ejemplo,Increased from 9 to 10 nodes to maintain high priority CPU utilization at 65%
.
Ver registros con el explorador de registros
También puedes ver los registros con el explorador de registros:
En la Google Cloud consola, abre Explorador de registros:
Selecciona el Google Cloud proyecto adecuado.
En el campo Consulta, introduce lo siguiente:
protoPayload.methodName="AutoscaleInstance"
Puedes añadir la siguiente consulta para filtrar aún más los registros:
resource.type="spanner_instance" resource.labels.instance_id=INSTANCE_ID resource.labels.project_id=PROJECT_ID logName="projects/span-cloud-testing/logs/cloudaudit.googleapis.com%2Fsystem_event" protoPayload.methodName="AutoscaleInstance"
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. Puedes configurar alertas basadas en registros en la página Explorador de registros de la Google Cloud o mediante la API Cloud Monitoring.
Siguientes pasos
- Consulta cómo crear una instancia con el autoescalador gestionado habilitado.
- Consulta cómo modificar una instancia para añadir el autoescalado o cambiar la configuración del autoescalado.
- Consulta cómo cambiar una instancia de autoescalado a escalado manual.