Dimensionar uma instância

É 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

  1. No Google Cloud console, acesse a página Clusters.

    Acessar Clusters

  2. Clique em um cluster na coluna Nome do Recurso.

  3. 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.

  4. 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.
  5. 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.

  6. 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_ID

Substitua:

  • 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 RAM
    • 4: 4 vCPUs, 32 GB RAM
    • 8: 8 vCPUs, 64 GB RAM
    • 16: 16 vCPUs, 128 GB RAM
    • 32: 32 vCPUs, 256 GB RAM
    • 64: 64 vCPUs, 512 GB RAM
    • 96: 96 vCPUs, 768 GB RAM
    • 128: 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_TYPE e CPU_COUNT juntos, os valores em CPU_COUNT e MACHINE_TYPE precisam 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-1
    • c4a-highmem-4-lssd
    • c4a-highmem-8-lssd
    • c4a-highmem-16-lssd
    • c4a-highmem-32-lssd
    • c4a-highmem-48-lssd
    • c4a-highmem-64-lssd
    • c4a-highmem-72-lssd

    Para implantar C4A com 4 vCPUs ou mais, use o sufixo lssd para 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-2
    • N2-highmem-4
    • N2-highmem-8
    • N2-highmem-16
    • N2-highmem-32
    • N2-highmem-64
    • N2-highmem-96
    • N2-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_APPLY
  • A 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

  1. No Google Cloud console, acesse a página Clusters.

    Acessar Clusters

  2. Clique em um cluster na coluna Nome do Recurso.

  3. Na página Visão geral, acesse a seção Instâncias no cluster e clique em Editar pool de leitura.

  4. No campo Contagem de nós, insira um número.

  5. 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_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 entre 1 e 20, 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_USAGE

Substitua:

  • 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 entre 1 e 20, 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_USAGE

Substitua 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_COUNT

Substitua 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