É possível escalonar uma instância do AlloyDB para ajustar a capacidade e o desempenho do cluster para atender às mudanças nas demandas de carga de trabalho. O escalonamento ajuda a gerenciar custos e facilita o processamento de picos de tráfego.
Para escalonar verticalmente (modificando a vCPU e a RAM), mude o tipo de máquina de uma instância principal ou de pool de leitura. Para escalonar horizontalmente, mude o número de nós em uma instância de pool de leitura. É possível gerenciar o escalonamento vertical e horizontal usando processos manuais. Também é possível gerenciar o escalonamento horizontal automaticamente ativando o escalonamento automático do pool de leitura.
É possível escalonar instâncias do AlloyDB das seguintes maneiras.
| Tipo de escalonamento | Método | Automação | Instâncias primárias | Instâncias do pool de leitura |
|---|---|---|---|---|
| Logotipo completo | Como mudar o tipo de máquina | Manual | Com suporte | Com suporte |
| Horizontal | Como mudar a contagem de nós | Manual e automática | Sem suporte | 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 o acesso.
Escalonar uma instância manualmente
Nesta seção, descrevemos métodos manuais para escalonar as instâncias do AlloyDB. Por exemplo, é possível escalonar verticalmente uma instância alterando o tipo de máquina dela e escalonar horizontalmente uma instância do pool de leitura alterando a contagem de nós dela.
Escalonar o tipo de máquina de uma instância
É possível escalonar verticalmente as instâncias primárias e de pool de leitura alterando 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 primária ou Editar pool de leitura.
Selecione uma das seguintes 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.
- A C4A é compatível com 1, 2, 4, 8, 16, 32, 48, 64 e 72 vCPUs.
- A N2 é compatível com 2, 4, 8, 16, 32, 64, 96 e 128 vCPUs.
- A C4 é compatível com 4, 8, 16, 24, 32, 48, 96, 144, 192 e 288 vCPUs.
- A Z3 é compatível com 8, 14, 16, 22, 32, 44 e 88 vCPUs.
Para mais informações sobre como usar a série de máquinas C4A baseada em Axion, incluindo o tipo de máquina com 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 CLI gcloud, você pode instalar e inicializar a Google Cloud CLI ou usar o Cloud Shell.
Use o comando gcloud alloydb instances update para alterar 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: opcional. Selecione em uma lista de tipos de máquina compatíveis, 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ê vai 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 está passando por
uma 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 do tipo de máquina
Para atualizar o tipo de máquina mais rapidamente, 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 sofre aproximadamente um minuto de inatividade.
O tipo de máquina de uma instância muda após 10 a 15 minutos.
Terraform
Para mudar o tipo de máquina de uma instância, atualize o bloco machine_config no recurso google_alloydb_instance.
resource "google_alloydb_instance" "default" {
cluster = google_alloydb_cluster.default.name
instance_id = "alloydb-instance"
instance_type = "PRIMARY" # or "READ_POOL"
machine_config {
cpu_count = 4
}
}
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 não são afetadas.
Quando você diminui a contagem de nós, todos os clientes conectados a um nó que está sendo encerrado 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 usar o Cloud Shell.
Use o comando gcloud alloydb instances update para alterar 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 de1a20, inclusive. Não é possível ter mais de 20 nós em todas as instâncias de 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
uma 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.
Terraform
Para mudar o número de nós em uma instância de pool de leitura, atualize o campo node_count no bloco read_pool_config do recurso google_alloydb_instance.
resource "google_alloydb_instance" "default" {
cluster = google_alloydb_cluster.default.name
instance_id = "alloydb-read-pool-instance"
instance_type = "READ_POOL"
read_pool_config {
node_count = 3
}
}
Configurar o escalonamento automático do pool de leitura
O escalonamento automático do pool de leitura do AlloyDB permite mudar de forma automática e adaptável o número de nós de leitura com base no uso de recursos em tempo real. Isso ajuda a lidar com mudanças no uso e reduzir despesas.
É possível configurar o escalonamento automático usando as seguintes políticas:
- Baseado na utilização da CPU: escalona o número de nós com base em uma utilização de CPU de destino.
- Com base na 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 de tráfego e usar totalmente a capacidade adicionada do escalonamento automático, recomendamos criar novas conexões de cliente. O escalonador automático não fecha 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 de 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 alcancem o desempenho máximo de consulta.
Ativar o escalonamento automático do pool de leitura 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 de 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 beta 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-cool-down-period-seconds=COOLDOWN_PERIOD \
--autoscaler-target-cpu-usage=TARGET_CPU_USAGE \
{--cpu-count=CPU_COUNT | --machine-type=MACHINE_TYPE}Substitua:
INSTANCE_ID: o ID da instância do pool de leitura.NODE_COUNT: o número mínimo de nós que o escalonador automático pode criar 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 de 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 de pool de leitura em um único cluster não pode exceder 20.COOLDOWN_PERIOD: o tempo em segundos que o AlloyDB aguarda antes de considerar o uso de recursos da instância do pool de leitura no algoritmo de escalonamento automático. O valor padrão é de300segundos.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%.CPU_COUNT: o número de vCPUs N2 que você quer para a instância. É preciso especificar--cpu-countou--machine-type.MACHINE_TYPE: selecione em uma lista de tipos de máquina compatíveis, comon2-highmem-4,c4-highmem-4-lssdouc4a-highmem-4-lssd. Para mais informações, consulte Escolher um tipo de máquina do AlloyDB.
Criar uma instância de 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 beta 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-cool-down-period-seconds=COOLDOWN_PERIOD \
--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" \
{--cpu-count=CPU_COUNT | --machine-type=MACHINE_TYPE}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 de pool de leitura em um único cluster não pode exceder 20.COOLDOWN_PERIOD: tempo em segundos que o AlloyDB aguarda antes de considerar o uso de recursos da instância do pool de leitura no algoritmo de escalonamento automático. O valor padrão é de300segundos.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 reduz escala vertical 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 os quais 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.CPU_COUNT: o número de vCPUs N2 que você quer para a instância. É preciso especificar--cpu-countou--machine-type.MACHINE_TYPE: selecione em uma lista de tipos de máquina compatíveis, comon2-highmem-4,c4-highmem-4-lssdouc4a-highmem-4-lssd. Para mais informações, consulte Escolher um tipo de máquina do AlloyDB.
Criar uma instância de 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 beta 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-cool-down-period-seconds=COOLDOWN_PERIOD \
--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" \
{--cpu-count=CPU_COUNT | --machine-type=MACHINE_TYPE}Para uma descrição dos marcadores de posição usados nesse comando, consulte 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 atual
É possível ativar, desativar ou modificar as configurações de escalonamento automático em uma instância de pool de leitura.
Para ativar o escalonamento automático pela primeira vez em uma instância atual ou atualizar uma política, use o comando gcloud beta alloydb instances update. Por exemplo, para atualizar a meta de uso da CPU, execute:
gcloud beta alloydb instances update INSTANCE_ID \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--project=PROJECT_ID \
--enable-autoscaler \
--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 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 atual. Caso contrário, ela cria uma nova programação.
gcloud beta alloydb instances update INSTANCE_ID \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--project=PROJECT_ID \
--enable-autoscaler \
--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 atual, o comando vai atualizar as configurações dela. 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 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 em CPU com uma meta de 60% de utilização.
- Uma política baseada em programação que exige pelo menos três nós em dias úteis, entre 8h e 17h.
Se for um dia útil ao meio-dia e a utilização da CPU estiver em 80%, a política baseada em CPU poderá recomendar o escalonamento vertical 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.
Escalonamento automático no
Além de escalonar automaticamente a instância do pool de leitura,
o AlloyDB também escalona automaticamente a instância quando você
não precisa de tantos nós de leitura para dar suporte ao fluxo de trabalho. Quando ocorre o escalonamento automático, o AlloyDB reduz o escalonamento horizontal da contagem de nós para o valor definido no campo --read-pool-node-count.
Para determinar quando a instância do pool de leitura precisa ser reduzida, o AlloyDB aguarda até que a programação de escalonamento automático fique inativa ou que a utilização da CPU seja menor que a meta de utilização por 10 minutos.
Para mais informações sobre o escalonamento automático, consulte Entender as decisões do escalonador automático.
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 de ativar o escalonamento automático.
gcloud beta alloydb instances update INSTANCE_ID \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--project=PROJECT_ID \
--no-enable-autoscalerVer a contagem de nós com escalonamento automático
É possível ver o número de nós que o escalonador automático escalonou em uma instância.
Console
No Google Cloud console, acesse a página Clusters.
Clique em um cluster na coluna Nome do Recurso.
No menu de navegação, clique em Insights do sistema.
Selecione uma instância na lista suspensa Instância.
Confira o número de nós em Contagem de nós ativos.
gcloud
Para usar a CLI gcloud, você pode instalar e inicializar a Google Cloud CLI ou usar o Cloud Shell.
Use o comando gcloud alloydb instances describe
para ver a lista de nós na instância.
gcloud alloydb instances describe INSTANCE_ID \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--project=PROJECT_ID \
--view=FULL \
--format="yaml(nodes)"Substitua:
INSTANCE_ID: o ID da instância que você está atualizando.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.