Puedes escalar una instancia de AlloyDB para ajustar la capacidad y el rendimiento de tu clúster y adaptarlo a los cambios en las demandas de las cargas de trabajo. El escalado ayuda a gestionar los costes y facilita la gestión de los picos de tráfico.
Puedes escalar las instancias de AlloyDB de varias formas, tal como se resume a continuación.
| Tipo de escalado | Método | Automatización | Instancias principales | Instancias de grupos de lectura |
|---|---|---|---|---|
| Vertical | Cambiar el tipo de máquina | Manual | Compatible | Compatible |
| Horizontal | Cambiar el número de nodos | Manual y automática | No compatible | Compatible |
Antes de empezar
- El Google Cloud proyecto que estés usando debe tener habilitado el acceso a AlloyDB.
- Debes tener uno de estos roles de gestión de identidades y accesos en el Google Cloud proyecto que estés usando:
roles/alloydb.admin(el rol de gestión de identidades y accesos predefinido de AlloyDB)roles/owner(el rol básico de gestión de identidades y accesos de propietario)roles/editor(el rol básico de gestión de identidades y accesos Editor)
Si no tienes ninguno de estos roles, ponte en contacto con el administrador de tu organización para solicitar acceso.
Escalado manual
En esta sección se describen los métodos manuales para escalar las instancias de AlloyDB. Por ejemplo, puedes escalar verticalmente una instancia cambiando su tipo de máquina y escalar horizontalmente una instancia de grupo de lectura cambiando su número de nodos.
Escalar el tipo de máquina de una instancia
Puedes escalar verticalmente las instancias principales y del grupo de lectura cambiando el tipo de máquina de la instancia, lo que modifica su vCPU y su RAM.
Consola
En la Google Cloud consola, ve a la página Clusters.
Haga clic en un clúster de la columna Nombre del recurso.
En la página Resumen, ve a la sección Instancias de tu clúster y haz clic en Editar principal o Editar grupo de lectura.
Selecciona una de las siguientes series de máquinas:
- C4A: la serie de máquinas basadas en Google Axion, disponible en versión preliminar.
- N2: la serie de máquinas predeterminada basada en x86.
- C4: la serie de máquinas con procesadores escalables Intel Xeon y Titanium.
Selecciona un tipo de máquina.
- C4A admite 1, 4, 8, 16, 32, 48, 64 y 72 tipos o formas de máquinas.
- N2 admite 2, 4, 8, 16, 32, 64, 96 y 128 tipos o formas de máquinas.
C4 admite 4, 8, 16, 24, 32, 48, 96, 144, 192 y 288 tipos o formas de máquinas.
Para obtener más información sobre el uso de la serie de máquinas basada en Axion C4A, incluido el tipo de máquina de 1 vCPU, consulta Consideraciones al usar la serie de máquinas basada en Axion C4A.
Haz clic en Actualizar instancia o Actualizar grupo de lectura.
gcloud
Para usar la CLI de gcloud, puedes instalar e inicializar Google Cloud CLI o usar Cloud Shell.
Usa el comando gcloud alloydb instances
update
para cambiar el tipo de máquina de la instancia principal.
gcloud alloydb instances update INSTANCE_ID \
--cpu-count=CPU_COUNT \
--machine-type=MACHINE_TYPE \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--project=PROJECT_IDHaz los cambios siguientes:
INSTANCE_ID: el ID de la instancia que quieres actualizar.CPU_COUNT: número de vCPUs N2 que quieres asignar a la instancia. N2 es el valor predeterminado. Entre los valores válidos se incluyen los siguientes:2: 2 vCPUs, 16 GB de RAM4: 4 vCPUs, 32 GB de RAM8: 8 vCPUs, 64 GB de RAM16: 16 vCPUs y 128 GB de RAM32: 32 vCPUs, 256 GB de RAM64: 64 vCPUs, 512 GB de RAM96: 96 vCPUs, 768 GB de RAM128: 128 vCPUs, 864 GB de RAM
MACHINE_TYPE: opcional. Selecciona un tipo de máquina de la lista de tipos admitidos, comon2-highmem-4,c4-highmem-4-lssdoc4a-highmem-4-lssd. Para obtener más información, consulta Elegir un tipo de máquina de AlloyDB.Si usas
MACHINE_TYPEyCPU_COUNTjuntos, los valores deCPU_COUNTyMACHINE_TYPEdeben coincidir. De lo contrario, se producirá un error.REGION_ID: la región en la que se coloca la instancia.CLUSTER_ID: el ID del clúster en el que se coloca la instancia.PROJECT_ID: el ID del proyecto en el que se encuentra el clúster.
Si el comando devuelve un mensaje de error que incluye la frase
invalid cluster state MAINTENANCE, significa que el clúster está en proceso de
mantenimiento rutinario. De esta forma, se inhabilitará temporalmente la reconfiguración de la instancia.
Vuelve a ejecutar el comando cuando el clúster vuelva al estado READY.
Para comprobar el estado del clúster, consulta Ver detalles del clúster.
Acelerar las actualizaciones de tipos de máquinas
Para actualizar el tipo de máquina más rápido, usa la opción FORCE_APPLY
con el comando gcloud beta alloydb instances update.
gcloud beta alloydb instances update INSTANCE_ID \
--cpu-count=CPU_COUNT \
--machine-type=MACHINE_TYPE \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--project=PROJECT_ID
--update-mode=FORCE_APPLYLa instancia experimenta un tiempo de inactividad de aproximadamente un minuto.
El tipo de máquina de una instancia cambia al cabo de entre 10 y 15 minutos.
Escalar el número de nodos de una instancia de grupo de lectura
AlloyDB te permite escalar el número de nodos de una instancia de grupo de lectura sin que haya ningún tiempo de inactividad a nivel de instancia. Si aumentas el número de nodos, las conexiones de cliente no se verán afectadas.
Cuando reduces el número de nodos, los clientes conectados a un nodo que se está cerrando pueden volver a conectarse a los demás nodos mediante el endpoint de la instancia.
Consola
En la Google Cloud consola, ve a la página Clusters.
Haga clic en un clúster de la columna Nombre del recurso.
En la página Overview (Resumen), vaya a la sección Instances in your cluster (Instancias de su clúster) y haga clic en Edit read pool (Editar grupo de lectura).
En el campo Número de nodos, introduce el número de nodos.
Haz clic en Actualizar grupo de lectura.
gcloud
Para usar la CLI de gcloud, puedes instalar e inicializar Google Cloud CLI o usar Cloud Shell.
Usa el comando gcloud alloydb instances
update para cambiar el número de nodos de una instancia de grupo de lectura.
gcloud alloydb instances update INSTANCE_ID \
--read-pool-node-count=NODE_COUNT \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--project=PROJECT_IDINSTANCE_ID: el ID de la instancia del grupo de lectura.NODE_COUNT: el número de nodos de la instancia del pool de lectura. Especifica un número entre1y20, ambos incluidos. Ten en cuenta que no puedes tener más de 20 nodos en todas las instancias del grupo de lectura de un clúster.REGION_ID: la región en la que se encuentra la instancia.CLUSTER_ID: el ID del clúster en el que se encuentra la instancia.PROJECT_ID: el ID del proyecto en el que se encuentra el clúster.
Si el comando devuelve un mensaje de error que incluye la frase
invalid cluster state MAINTENANCE, significa que el clúster está en proceso de
mantenimiento rutinario. De esta forma, se inhabilitará temporalmente la reconfiguración de la instancia.
Vuelve a ejecutar el comando cuando el clúster vuelva al estado READY. Para consultar el estado del clúster, consulta Ver detalles del clúster.
Autoescalar una instancia de grupo de lectura
El autoescalado de grupos de lectura de AlloyDB te permite cambiar de forma automática y adaptativa el número de nodos de lectura en función del uso de recursos en tiempo real. De esta forma, podrás gestionar los cambios en el uso y reducir los gastos.
Puedes configurar el escalado automático con las siguientes políticas:
- Basado en el uso de CPU: escala el número de nodos en función de un uso de CPU objetivo.
- Basado en la programación: ajusta el número de nodos a un recuento mínimo durante un periodo determinado.
Puedes usar estas políticas juntas. Cuando hay varias políticas activas, la herramienta de escalado automático selecciona la que recomienda el mayor número de nodos.
Limitaciones
La herramienta de escalado automático del grupo de lectura tiene las siguientes limitaciones:
- Distribución de la carga en conexiones de larga duración: para establecer una distribución uniforme del tráfico y aprovechar al máximo la capacidad añadida del ajuste de escala automático, te recomendamos que crees nuevas conexiones de cliente. El escalador automático no finaliza las conexiones de larga duración cuando añade nodos, por lo que el tráfico de esas conexiones no se dirige a los nodos recién añadidos.
- Preparación de la caché de los nodos nuevos: cuando el escalador automático añade nodos nuevos, estos pueden tardar unos minutos en preparar sus cachés y alcanzar el máximo rendimiento de las consultas.
- Comportamiento con consultas de gran tamaño: los ajustes de escalado automático pueden aplazarse durante la ejecución de consultas de lectura muy grandes.
Habilitar el escalado automático en una instancia de grupo de lectura nueva
Puede habilitar y configurar el escalado automático al crear una instancia de grupo de lectura mediante una política basada en la CPU, una política basada en una programación o ambas.
Crear una instancia de grupo de lectura con una política basada en la CPU
Para crear una instancia de grupo de lectura con una política de escalado automático basada en un uso de CPU objetivo, ejecuta el siguiente comando:
gcloud alloydb instances create INSTANCE_ID \
--instance-type=READ_POOL \
--read-pool-node-count=NODE_COUNT \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--project=PROJECT_ID \
--enable-autoscaler \
--autoscaler-max-node-count=MAX_NODE_COUNT \
--autoscaler-target-cpu-usage=TARGET_CPU_USAGEHaz los cambios siguientes:
INSTANCE_ID: el ID de la instancia del grupo de lectura.READ_POOL: especifica el tipo de instancia.NODE_COUNT: el número de nodos de la instancia del grupo de lectura. Especifica un número entre1y20, ambos incluidos. Ten en cuenta que no puedes tener más de 20 nodos en todas las instancias del grupo de lectura de un clúster.REGION_ID:la región en la que se coloca la instancia.CLUSTER_ID: el ID del clúster en el que se coloca la instancia.PROJECT_ID: el ID del proyecto en el que se encuentra el clúster.MAX_NODE_COUNT: número máximo de nodos que puede crear la herramienta de escalado automático en la instancia del grupo de lectura. El número total de nodos de todas las instancias de grupos de lectura de un mismo clúster no puede superar los 20.TARGET_CPU_USAGE: el uso de CPU objetivo de tu instancia de grupo de lectura, expresado como un valor decimal entre 0,0 y 1,0. Por ejemplo, 0,7 para el 70%.
Crear una instancia de grupo de lectura con una política basada en una programación
Para crear una instancia de grupo de lectura con una política de escalado automático basada en una programación que defina un número mínimo de nodos para un periodo específico, ejecuta el siguiente comando:
gcloud alloydb instances create INSTANCE_ID \
--instance-type=READ_POOL \
--read-pool-node-count=NODE_COUNT \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--project=PROJECT_ID \
--enable-autoscaler \
--autoscaler-max-node-count=MAX_NODE_COUNT \
--autoscaler-set-schedule=SCHEDULE_NAME \
--autoscaler-schedule-cron-exp=CRON_EXPRESSION \
--autoscaler-schedule-duration-seconds=DURATION_SECONDS \
--autoscaler-schedule-time-zone=TIME_ZONE \
--autoscaler-schedule-min-node-count=MIN_NODE_COUNT \
--autoscaler-schedule-description="DESCRIPTION"Haz los cambios siguientes:
MAX_NODE_COUNT: número máximo de nodos que puede crear la herramienta de escalado automático en la instancia del grupo de lectura. El número total de nodos de todas las instancias de grupos de lectura de un mismo clúster no puede superar los 20.SCHEDULE_NAME: un nombre único para la programación del escalado.CRON_EXPRESSION: la programación en formato cron que especifica la hora de inicio del evento de escalado.DURATION_SECONDS: la duración en segundos durante la que la programación permanece activa después de iniciarse. Después de este periodo, la instancia se reduce al número de nodos determinado por otras políticas o por su configuración original.TIME_ZONE: zona horaria opcional de la programación. Por ejemplo,America/Los_Angeles.MIN_NODE_COUNT: número mínimo de nodos al que la herramienta de ajuste de escala adapta la instancia del grupo de lectura mientras la programación está activa.DESCRIPTION: una descripción de texto opcional de la programación.
Crear una instancia de grupo de lectura con políticas basadas en la CPU y en la programación
Para crear una instancia de grupo de lectura con políticas de escalado automático basadas en la CPU y en la programación, ejecuta el siguiente comando:
gcloud alloydb instances create INSTANCE_ID \
--instance-type=READ_POOL \
--read-pool-node-count=NODE_COUNT \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--project=PROJECT_ID \
--enable-autoscaler \
--autoscaler-max-node-count=MAX_NODE_COUNT \
--autoscaler-target-cpu-usage=TARGET_CPU_USAGE \
--autoscaler-set-schedule=SCHEDULE_NAME \
--autoscaler-schedule-cron-exp=CRON_EXPRESSION \
--autoscaler-schedule-duration-seconds=DURATION_SECONDS \
--autoscaler-schedule-time-zone=TIME_ZONE \
--autoscaler-schedule-min-node-count=MIN_NODE_COUNT \
--autoscaler-schedule-description="DESCRIPTION"Sustituye TARGET_CPU_USAGE por el uso de CPU objetivo de tu instancia de grupo de lectura, expresado como un valor decimal entre 0,0 y 1,0.
Para ver una descripción de los marcadores de posición que se usan en este comando, consulta las políticas Crear una instancia de grupo de lectura con una política basada en la CPU y Crear una instancia de grupo de lectura con una política basada en la programación.
Habilitar o actualizar el autoescalado en una instancia de grupo de lectura
Puedes habilitar, inhabilitar o modificar los ajustes de escalado automático en una instancia de grupo de lectura.
Para habilitar el autoescalado por primera vez en una instancia o para actualizar una política, usa el comando gcloud alloydb instances update. Por ejemplo, para actualizar el uso de CPU objetivo, ejecuta lo siguiente:
gcloud alloydb instances update INSTANCE_ID \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--project=PROJECT_ID \
--autoscaler-target-cpu-usage=NEW_TARGET_CPU_USAGESustituye NEW_TARGET_CPU_USAGE por el nuevo uso de CPU objetivo que quieras definir para tu instancia de grupo de lectura, expresado como un valor decimal entre 0,0 y 1,0.
Para añadir una segunda programación a una configuración, ejecuta el comando de actualización con un nuevo nombre de programación. Si el nombre de la programación ya existe, el comando actualiza la programación. De lo contrario, se creará una nueva.
gcloud alloydb instances update INSTANCE_ID \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--project=PROJECT_ID \
--autoscaler-set-schedule=NEW_SCHEDULE_NAME \
--autoscaler-schedule-cron-exp=CRON_EXPRESSION \
--autoscaler-schedule-duration-seconds=DURATION_SECONDS \
--autoscaler-schedule-min-node-count=MIN_NODE_COUNTSustituye NEW_SCHEDULE_NAME por el nombre único de la programación de escalado nueva o actualizada. Si el nombre proporcionado coincide con una programación, el comando actualizará los ajustes de esa programación. Si el nombre no existe, el comando crea una nueva programación con ese nombre.
Cómo se evalúan las políticas de autoescalado
Cuando hay varias políticas de escalado automático activas, la herramienta de escalado automático evalúa cada política y elige la que recomienda el mayor número de nodos.
Por ejemplo, supongamos que tiene una configuración con dos políticas:
- Una política basada en la CPU con un objetivo de uso del 60 %.
- Una política basada en una programación que requiere un mínimo de tres nodos los días laborables entre las 8:00 y las 17:00.
Si es un día laborable a las 12:00 y la utilización de la CPU es del 80%, la política basada en la CPU podría recomendar aumentar la escala a cuatro nodos, mientras que la política basada en la programación recomendaría tres. La herramienta de escalado automático escala la instancia a cuatro nodos.
Inhabilitar el ajuste automático de escala
Para inhabilitar el escalado automático, usa la marca no-enable-autoscaler. De esta forma, el grupo de lectura vuelve a tener el número de nodos original antes de que se habilitara el escalado automático.
gcloud alloydb instances update INSTANCE_ID \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--project=PROJECT_ID \
--no-enable-autoscaler