É possível escalonar uma instância do AlloyDB para ajustar a capacidade e o desempenho do cluster para atender às demandas de carga de trabalho em constante mudança. O escalonamento ajuda a gerenciar custos e facilita o tratamento de picos de tráfego.
É possível escalonar instâncias do AlloyDB de várias maneiras, conforme resumido abaixo.
| Tipo de escalonamento | Método | Automation | Instâncias principais | Instâncias do pool de leitura |
|---|---|---|---|---|
| Categoria | Como mudar o tipo de máquina | Manual | Com suporte | Com suporte |
| Horizontal | Como mudar a contagem de nós | Manual e automático | Indisponível | Com suporte |
Antes de começar
- O projeto do Google Cloud que você está usando precisa ter sido ativado para acessar o AlloyDB.
- Você precisa ter um destes papéis do IAM no Google Cloud projeto que está sendo usado:
roles/alloydb.admin(o papel predefinido do IAM de Admin do AlloyDB)roles/owner(o papel básico do IAM de Proprietário)roles/editor(o papel básico do IAM de Editor)
Se você não tiver nenhum desses papéis, entre em contato com o Administrador da organização para solicitar acesso.
Escalonamento manual
Esta seção descreve métodos manuais para escalonar instâncias do AlloyDB. Por exemplo, é possível escalonar verticalmente uma instância mudando o tipo de máquina e escalonar horizontalmente uma instância do pool de leitura mudando a contagem de nós.
Escalonar o tipo de máquina de uma instância
É possível escalonar verticalmente as instâncias principais e do pool de leitura mudando o tipo de máquina da instância, o que modifica a vCPU e a RAM.
Console
No Google Cloud console, acesse a página Clusters.
Clique em um cluster na coluna Nome do Recurso.
Na página Visão geral , acesse a seção Instâncias no cluster e clique em Editar principal ou Editar pool de leitura.
Selecione uma destas séries de máquinas:
- C4A (série de máquinas baseadas no Google Axion)
- N2 (série de máquinas baseadas em x86). Essa é a série de máquinas padrão.
- C4 (série de máquinas baseadas em x86)
- Z3 (série de máquinas baseadas em Intel Xeon)
Selecione um tipo de máquina.
- O C4A oferece suporte a 1, 2, 4, 8, 16, 32, 48, 64 e 72 vCPUs.
- O N2 oferece suporte a 2, 4, 8, 16, 32, 64, 96 e 128 vCPUs.
- O C4 oferece suporte a 4, 8, 16, 24, 32, 48, 96, 144, 192 e 288 vCPUs.
- O Z3 oferece suporte a 8, 14, 16, 22, 32, 44 e 88 vCPUs.
Para mais informações sobre como usar a série de máquinas baseadas no Axion C4A, incluindo o tipo de máquina de 1 vCPU, consulte Considerações ao usar a série de máquinas baseadas no Axion C4A.
Clique em Atualizar instância ou Atualizar pool de leitura.
gcloud
Para usar a CLI gcloud, você pode instalar e inicializar a Google Cloud CLI ou você pode usar o Cloud Shell.
Use o gcloud alloydb instances update
comando para mudar o tipo de máquina da instância principal.
gcloud alloydb instances update INSTANCE_ID \
--cpu-count=CPU_COUNT \
--machine-type=MACHINE_TYPE \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--project=PROJECT_IDSubstitua:
INSTANCE_ID: o ID da instância que você está atualizando.CPU_COUNT: o número de vCPUs N2 que você quer para a instância. O N2 é o padrão. Os valores válidos incluem:2: 2 vCPUs, 16 GB RAM4: 4 vCPUs, 32 GB RAM8: 8 vCPUs, 64 GB RAM16: 16 vCPUs, 128 GB RAM32: 32 vCPUs, 256 GB RAM64: 64 vCPUs, 512 GB RAM96: 96 vCPUs, 768 GB RAM128: 128 vCPUs, 864 GB RAM
MACHINE_TYPE: opcional. Selecione em uma lista de tipos de máquinas com suporte, comon2-highmem-4,c4-highmem-4-lssdouc4a-highmem-4-lssd. Para mais informações, consulte Escolher um tipo de máquina do AlloyDB.Quando você usa
MACHINE_TYPEeCPU_COUNTjuntos, os valores emCPU_COUNTeMACHINE_TYPEprecisam corresponder. Caso contrário, você receberá um erro.REGION_ID: a região em que a instância está localizada.CLUSTER_ID: o ID do cluster em que a instância está localizada.PROJECT_ID: o ID do projeto em que o cluster está localizado.
Se o comando retornar uma mensagem de erro que inclua a frase invalid cluster state MAINTENANCE, o cluster estará passando por manutenção de rotina. Isso impede temporariamente a reconfiguração da instância.
Execute o comando novamente depois que o cluster retornar a um estado READY.
Para verificar o status do cluster, consulte Visualizar detalhes do cluster.
Acelerar atualizações de tipo de máquina
Para atualizar o tipo de máquina mais rapidamente, use a FORCE_APPLY
opção com o gcloud beta alloydb instances update comando.
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_APPLYA instância passa por aproximadamente um minuto de inatividade.
O tipo de máquina de uma instância muda após 10 a 15 minutos.
Escalonar a contagem de nós de uma instância do pool de leitura
O AlloyDB permite escalonar o número de nós em uma instância do pool de leitura sem tempo de inatividade no nível da instância. Quando você aumenta a contagem de nós, as conexões do cliente permanecem inalteradas.
Quando você diminui a contagem de nós, todos os clientes conectados a um nó que está sendo desligado podem se reconectar aos outros nós usando o endpoint da instância.
Console
No Google Cloud console, acesse a página Clusters.
Clique em um cluster na coluna Nome do Recurso.
Na página Visão geral , acesse a seção Instâncias no cluster e clique em Editar pool de leitura.
No campo Contagem de nós, insira uma contagem de nós.
Clique em Atualizar pool de leitura.
gcloud
Para usar a CLI gcloud, você pode instalar e inicializar a Google Cloud CLI ou você pode usar o Cloud Shell.
Use o gcloud alloydb instances update comando para mudar o
número de nós em uma instância do pool de leitura.
gcloud alloydb instances update INSTANCE_ID \
--read-pool-node-count=NODE_COUNT \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--project=PROJECT_ID \INSTANCE_ID: o ID da instância do pool de leitura.NODE_COUNT: o número de nós na instância do pool de leitura. Especifique um número de1a20, inclusive. Não é possível ter mais de 20 nós em todas as instâncias do pool de leitura em um cluster.REGION_ID: a região em que a instância está localizada.CLUSTER_ID: o ID do cluster em que a instância está localizada.PROJECT_ID: o ID do projeto em que o cluster está localizado.
Se o comando retornar uma mensagem de erro que inclua a frase invalid cluster state MAINTENANCE, o cluster estará passando por manutenção de rotina. Isso impede temporariamente a reconfiguração da instância.
Execute o comando novamente depois que o cluster retornar a um estado READY. Para
verificar o status do cluster, consulte Visualizar detalhes
do cluster.
Escalonar automaticamente uma instância do pool de leitura
O escalonamento automático do pool de leitura do AlloyDB permite mudar o número de nós de leitura de forma automática e adaptável com base no uso de recursos em tempo real. Isso ajuda a lidar com mudanças de uso e diminuir despesas.
É possível configurar o escalonamento automático usando as seguintes políticas:
- Com base no uso da CPU: escalona o número de nós com base em uma meta de uso da CPU.
- Com base na programação: escalona o número de nós para uma contagem mínima durante um período especificado.
É possível usar essas políticas juntas. Quando várias políticas estão ativas, o escalonador automático seleciona aquela que recomenda o maior número de nós.
Limitações
O escalonador automático do pool de leitura tem as seguintes limitações:
- Distribuição de carga para conexões de longa duração: para estabelecer uma distribuição uniforme de tráfego e usar totalmente a capacidade adicionada do escalonamento automático, recomendamos que você crie novas conexões de cliente. O escalonador automático não encerra as conexões de longa duração atuais quando adiciona novos nós. Portanto, o tráfego dessas conexões não é roteado para os nós recém-adicionados.
- Aquecimento do cache para novos nós: quando o escalonador automático adiciona novos nós, pode levar alguns minutos para que eles aqueçam os caches e atinjam o desempenho máximo da consulta.
Ativar o escalonamento automático em uma nova instância do pool de leitura
É possível ativar e configurar o escalonamento automático ao criar uma instância do pool de leitura usando uma política baseada em CPU, uma política baseada em programação ou ambas.
Criar uma instância do pool de leitura com uma política baseada em CPU
Para criar uma instância do pool de leitura com uma política de escalonamento automático com base em uma meta de uso da CPU, execute o comando a seguir:
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_USAGESubstitua:
INSTANCE_ID: o ID da instância do pool de leitura.READ_POOL: especifica o tipo de instância.NODE_COUNT: o número de nós na instância do pool de leitura. Especifique um número de1a20, inclusive. Não é possível ter mais de 20 nós em todas as instâncias do pool de leitura em um cluster.REGION_ID:a região em que a instância está localizada.CLUSTER_ID: o ID do cluster em que a instância está localizada.PROJECT_ID: o ID do projeto em que o cluster está localizado.MAX_NODE_COUNT: o número máximo de nós que o escalonador automático pode criar na instância do pool de leitura. O número total de nós em todas as instâncias do pool de leitura em um único cluster não pode exceder 20.TARGET_CPU_USAGE: a meta de uso da CPU para a instância do pool de leitura, expressa como um valor decimal entre 0,0 e 1,0. Por exemplo, 0,7 para 70%.
Criar uma instância do pool de leitura com uma política baseada em programação
Para criar uma instância do pool de leitura com uma política de escalonamento automático baseada em programação que define um número mínimo de nós para um período específico, execute o comando a seguir:
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"Substitua:
MAX_NODE_COUNT: o número máximo de nós que o escalonador automático pode criar na instância do pool de leitura. O número total de nós em todas as instâncias do pool de leitura em um único cluster não pode exceder 20.SCHEDULE_NAME: um nome exclusivo para a programação de escalonamento.CRON_EXPRESSION: a programação no formato cron que especifica o horário de início do evento de escalonamento.DURATION_SECONDS: a duração em segundos em que a programação permanece ativa após o início. Após esse período, a instância é reduzida para o número de nós determinado por outras políticas ou pela configuração original.TIME_ZONE: um fuso horário opcional para a programação. Por exemplo,America/Los_Angeles.MIN_NODE_COUNT: o número mínimo de nós para o qual o escalonador automático escalona a instância do pool de leitura enquanto a programação está ativa.DESCRIPTION: uma descrição de texto opcional para a programação.
Criar uma instância do pool de leitura com políticas baseadas em CPU e programação
Para criar uma instância do pool de leitura com políticas de escalonamento automático baseadas em CPU e programação, execute o comando a seguir:
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"Substitua TARGET_CPU_USAGE pela meta de uso da CPU para a instância do pool de leitura, expressa como um valor decimal entre 0,0 e 1,0.
Para uma descrição dos marcadores usados neste comando, consulte Criar uma instância do pool de leitura com uma política baseada em CPU e Criar uma instância do pool de leitura com políticas baseadas em programação.
Ativar ou atualizar o escalonamento automático em uma instância do pool de leitura
É possível ativar, desativar ou modificar as configurações de escalonamento automático em uma instância do pool de leitura.
Para ativar o escalonamento automático pela primeira vez em uma instância ou atualizar uma política, use o comando gcloud alloydb instances update. Por exemplo, para atualizar a meta de uso da CPU, execute:
gcloud alloydb instances update INSTANCE_ID \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--project=PROJECT_ID \
--autoscaler-target-cpu-usage=NEW_TARGET_CPU_USAGESubstitua NEW_TARGET_CPU_USAGE pela nova meta de uso da CPU que você quer definir para a instância do pool de leitura, expressa como um valor decimal entre 0,0 e 1,0.
Para adicionar uma segunda programação a uma configuração, execute o comando de atualização com um novo nome de programação. Se o nome da programação já existir, o comando vai atualizar a programação. Caso contrário, ele vai criar uma nova programação.
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_COUNTSubstitua NEW_SCHEDULE_NAME pelo nome exclusivo da programação de escalonamento nova ou atualizada. Se o nome fornecido corresponder a uma programação, o comando vai atualizar as configurações dessa programação. Se o nome não existir, o comando vai criar uma nova programação com esse nome.
Como as políticas de escalonamento automático são avaliadas
Quando várias políticas de escalonamento automático estão ativas, o escalonador automático avalia cada política e escolhe aquela que recomenda o maior número de nós.
Por exemplo, considere uma configuração com duas políticas:
- Uma política baseada em CPU com uma meta de 60% de uso.
- Uma política baseada em programação que exige um mínimo de três nós nos dias úteis entre 8h e 17h.
Se for um dia útil ao meio-dia e o uso da CPU estiver em 80%, a política baseada em CPU poderá recomendar o escalonamento para quatro nós, enquanto a política baseada em programação recomenda três. O escalonador automático escalona a instância para quatro nós.
Desative o escalonamento automático.
Para desativar o escalonamento automático, use a flag no-enable-autoscaler. Isso redefine o pool de leitura para a contagem de nós original antes que o escalonamento automático fosse ativado.
gcloud alloydb instances update INSTANCE_ID \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--project=PROJECT_ID \
--no-enable-autoscaler