É possível escalonar uma instância do AlloyDB para ajustar a capacidade e o desempenho do cluster e atender às demandas de carga de trabalho em constante mudança. O escalonamento ajuda a gerenciar custos e facilita o processamento de picos de tráfego.
É possível escalonar instâncias do AlloyDB de várias maneiras, conforme resumido abaixo.
| Tipo de escalonamento | Método | Automação | Instâncias principais | Instâncias do pool de leitura |
|---|---|---|---|---|
| Logotipo completo | Como mudar o tipo de máquina | Manual | Sim | Sim |
| Horizontal | Como mudar a contagem de nós | Manual e automática | Sem suporte | Sim |
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 o acesso.
Escalonamento manual
Nesta seção, descrevemos métodos manuais para escalonar suas 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 de pool de leitura mudando a contagem de nós.
Ajustar o tipo de máquina de uma instância
É possível escalonar verticalmente as instâncias primárias e de pool de leitura mudando o tipo de máquina da instância, o que modifica a vCPU e a RAM dela.
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 instância principal ou Editar pool de leitura.
Selecione uma das seguintes séries de máquinas:
- C4A: a série de máquinas baseadas no Google Axion, disponível em pré-lançamento.
- N2: a série de máquinas padrão baseada em x86.
Selecione um tipo de máquina.
- O C4A é compatível com 1, 4, 8, 16, 32, 48, 64 e 72 tipos ou formatos de máquina.
O N2 oferece suporte a 2, 4, 8, 16, 32, 64, 96 e 128 tipos ou formatos de máquina.
Para mais informações sobre como usar a série de máquinas C4A baseada em Axion, incluindo o tipo de máquina de 1 vCPU, consulte Considerações ao usar a série de máquinas C4A baseada em Axion.
Clique em Atualizar instância ou Atualizar pool de leitura.
gcloud
Para usar a gcloud CLI, você pode instalar e inicializar a CLI do Google Cloud ou usar o Cloud Shell.
Use o comando gcloud alloydb instances
update
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. 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: esse parâmetro é opcional ao implantar máquinas N2. Para implantar a série de máquinas C4A baseada em Axion (prévia) ou migrar entre máquinas C4A e N2, escolha esse parâmetro com os seguintes valores.Quando você usa
MACHINE_TYPEeCPU_COUNTjuntos, os valores emCPU_COUNTeMACHINE_TYPEprecisam corresponder. Caso contrário, um erro será gerado.Para a série de máquinas C4A baseada em Axion, escolha o tipo de máquina com os seguintes valores:
c4a-highmem-1c4a-highmem-4-lssdc4a-highmem-8-lssdc4a-highmem-16-lssdc4a-highmem-32-lssdc4a-highmem-48-lssdc4a-highmem-64-lssdc4a-highmem-72-lssd
Para implantar C4A com 4 vCPUs ou mais, use o sufixo
lssdpara ativar o cache ultrarrápido.Para mais informações sobre como usar a série de máquinas C4A baseada em Axion, incluindo o tipo de máquina de 1 vCPU, consulte Considerações ao usar a série de máquinas C4A baseada em Axion.
Para a série de máquinas N2 baseadas em x86, use os seguintes valores:
N2-highmem-2N2-highmem-4N2-highmem-8N2-highmem-16N2-highmem-32N2-highmem-64N2-highmem-96N2-highmem-128
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 está passando por
manutenção de rotina. Isso impede temporariamente a reconfiguração da instância.
Execute o comando novamente depois que o cluster retornar ao estado READY.
Para verificar o status do cluster, consulte Ver detalhes do
cluster.
Acelerar as atualizações de tipo de máquina
Para atualizar o tipo de máquina mais rápido, use a opção FORCE_APPLY com o 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_APPLYA instância fica inativa por aproximadamente um minuto.
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 de pool de leitura sem tempo de inatividade no nível da instância. Quando você aumenta a contagem de nós, as conexões de cliente não são afetadas.
Quando você diminui a contagem de nós, todos os clientes conectados a um nó que está sendo desativado 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 um número.
Clique em Atualizar pool de leitura.
gcloud
Para usar a gcloud CLI, você pode instalar e inicializar a CLI do Google Cloud ou usar o Cloud Shell.
Use o comando gcloud alloydb instances
update para mudar o
número de nós em uma instância de pool de leitura.
gcloud alloydb instances update INSTANCE_ID \
--read-pool-node-count=NODE_COUNT \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--project=PROJECT_IDINSTANCE_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 entre1e20, 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 está passando por
manutenção de rotina. Isso impede temporariamente a reconfiguração da instância.
Execute o comando novamente depois que o cluster retornar ao estado READY. Para
verificar o status do cluster, consulte Ver detalhes do
cluster.
Escalonar automaticamente uma instância do pool de leitura
Com o escalonamento automático do pool de leitura do AlloyDB, é possível mudar de forma automática e adaptativa o número de nós de leitura com base no uso de recursos em tempo real. Isso ajuda você a lidar com mudanças no uso e diminuir as despesas.
É possível configurar o escalonamento automático usando as seguintes políticas:
- Baseado no uso da CPU: escalona o número de nós com base em um uso da CPU desejado.
- Com base em programação: dimensiona 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 de 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 do 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 é encaminhado para os nós recém-adicionados.
- Pré-aquecimento do cache para novos nós: quando o escalonador automático adiciona novos nós, pode levar alguns minutos para que eles pré-aqueçam os caches e alcancem o pico de desempenho da consulta.
- Com consultas grandes, os ajustes de escalonamento automático podem ser adiados durante a execução de consultas de leitura muito grandes.
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 de 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 de pool de leitura com uma política de escalonamento automático baseada em uma meta de utilização da CPU, execute o seguinte 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_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 entre1e20, 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 sua instância de 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 de 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 seguinte 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"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 que o escalonador automático dimensione a instância do pool de leitura enquanto a programação estiver ativa.DESCRIPTION: uma descrição textual 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 de pool de leitura com políticas de escalonamento automático baseadas em CPU e em programação, execute o seguinte 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"Substitua TARGET_CPU_USAGE pela utilização da CPU desejada para sua instância de pool de leitura, expressa como um valor decimal entre 0,0 e 1,0.
Para uma descrição dos marcadores de posição usados neste comando, consulte as políticas Criar uma instância de pool de leitura com uma política baseada em CPU e Criar uma instância de pool de leitura com uma política baseada em programação.
Ativar ou atualizar o escalonamento automático em uma instância de pool de leitura
É possível ativar, desativar ou modificar as configurações de escalonamento automático em uma instância de pool de leitura atual.
Para ativar o escalonamento automático pela primeira vez em uma instância atual ou atualizar uma política existente, 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 utilização de CPU de destino que você quer definir para sua instância de pool de leitura, expressa como um valor decimal entre 0,0 e 1,0.
Para adicionar uma segunda programação a uma configuração atual, 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 atual. Caso contrário, ela cria 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 existente, o comando vai atualizar as configurações dela. Se o nome não existir, o comando vai criar um novo cronograma 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 uma delas e escolhe a que recomenda o maior número de nós.
Por exemplo, considere uma configuração com duas políticas:
- Uma política baseada na CPU com uma meta de 60% de utilização.
- 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 da semana ao meio-dia e a utilização da CPU estiver em 80%, a política baseada em CPU poderá recomendar o escalonamento vertical para até quatro nós, enquanto a política baseada em programação recomenda três. O escalonador automático dimensiona 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 da ativação do escalonamento automático.
gcloud alloydb instances update INSTANCE_ID \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--project=PROJECT_ID \
--no-enable-autoscaler