Pode dimensionar uma instância do AlloyDB para ajustar a capacidade e o desempenho do cluster de modo a satisfazer as exigências de carga de trabalho em constante mudança. O escalamento ajuda a gerir os custos e a facilitar o processamento de picos de tráfego.
Pode dimensionar as instâncias do AlloyDB de várias formas, conforme resumido abaixo.
| Tipo de dimensionamento | Método | Automatização | Instâncias principais | Ler instâncias de pools |
|---|---|---|---|---|
| Vertical | Alterar o tipo de máquina | Manual | Suportado | Suportado |
| Horizontal | Alterar o número de nós | Manuais e automáticas | Não suportado | Suportado |
Antes de começar
- O projeto que está a usar tem de ter sido ativado para aceder ao AlloyDB. Google Cloud
- Tem de ter uma destas funções de IAM no Google Cloud projeto que está a usar:
roles/alloydb.admin(a função IAM predefinida de administrador do AlloyDB)roles/owner(a função básica de IAM de proprietário)roles/editor(a função de IAM básica de editor)
Se não tiver nenhuma destas funções, contacte o administrador da organização para pedir acesso.
Escala manual
Esta secção descreve os métodos manuais para dimensionar as suas instâncias do AlloyDB. Por exemplo, pode dimensionar verticalmente uma instância alterando o respetivo tipo de máquina e dimensionar horizontalmente uma instância de pool de leitura alterando a respetiva contagem de nós.
Dimensione o tipo de máquina de uma instância
Pode dimensionar verticalmente as instâncias do pool principal e de leitura alterando o tipo de máquina da instância, o que modifica a respetiva vCPU e RAM.
Consola
Na Google Cloud consola, aceda à página Clusters.
Clique num cluster na coluna Nome do recurso.
Na página Vista geral, aceda à secção Instâncias no seu cluster e clique em Editar principal ou Editar conjunto de leitura.
Selecione uma das seguintes séries de máquinas:
- C4A: a série de máquinas baseada no Google Axion, disponível na pré-visualização.
- N2: a série de máquinas predefinida baseada em x86.
Selecione um tipo de máquina.
- O C4A suporta 1, 4, 8, 16, 32, 48, 64 e 72 tipos ou formas de máquinas.
O N2 suporta 2, 4, 8, 16, 32, 64, 96 e 128 tipos ou formas de máquinas.
Para mais informações sobre a utilização da série de máquinas baseadas em Axion C4A, incluindo o tipo de máquina com 1 vCPU, consulte o artigo Considerações ao usar a série de máquinas baseadas em Axion C4A.
Clique em Atualizar instância ou Atualizar conjunto de leitura.
gcloud
Para usar a CLI gcloud, pode instalar e inicializar a CLI Google Cloud ou usar a 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 o seguinte:
INSTANCE_ID: o ID da instância que está a atualizar.CPU_COUNT: o número de vCPUs N2 que quer para a instância. N2 é a predefinição. Os valores válidos incluem o seguinte:2: 2 vCPUs, 16 GB de RAM4: 4 vCPUs, 32 GB de RAM8: 8 vCPUs, 64 GB de RAM16: 16 vCPUs, 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: este parâmetro é opcional quando implementa máquinas N2. Para implementar a série de máquinas baseada em Axion C4A (pré-visualização) ou para migrar entre máquinas C4A e N2, escolha este parâmetro com os seguintes valores.Quando usa
MACHINE_TYPEeCPU_COUNTem conjunto, os valores emCPU_COUNTeMACHINE_TYPEtêm de corresponder. Caso contrário, recebe um erro.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 implementar o C4A com 4 vCPU ou mais, use o sufixo
lssdpara ativar a cache ultrarrápida.Para mais informações sobre a utilização da série de máquinas baseadas em Axion C4A, incluindo o tipo de máquina de 1 vCPU, consulte o artigo Considerações ao usar a série de máquinas baseadas em Axion C4A.
Para a série de máquinas N2 baseada 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 onde a instância está colocada.CLUSTER_ID: o ID do cluster onde a instância está colocada.PROJECT_ID: o ID do projeto onde o cluster está colocado.
Se o comando devolver uma mensagem de erro que inclua a expressão invalid cluster state MAINTENANCE, significa que o cluster está a passar por uma manutenção de rotina. Isto impede temporariamente a reconfiguração da instância.
Execute novamente o comando depois de o cluster regressar ao estado READY.
Para verificar o estado do cluster, consulte Ver detalhes do cluster.
Acelere 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 fica inativa durante aproximadamente um minuto.
O tipo de máquina de uma instância muda após 10 a 15 minutos.
Aumente o número de nós de uma instância do conjunto de leitura
O AlloyDB permite-lhe dimensionar o número de nós numa instância de pool de leitura sem qualquer tempo de inatividade ao nível da instância. Quando aumenta a contagem de nós, as ligações de cliente permanecem inalteradas.
Quando diminui a quantidade de nós, todos os clientes ligados a um nó que está a ser encerrado podem voltar a ligar-se aos outros nós através do ponto final da instância.
Consola
Na Google Cloud consola, aceda à página Clusters.
Clique num cluster na coluna Nome do recurso.
Na página Vista geral, aceda à secção Instâncias no seu cluster e clique em Editar conjunto de leitura.
No campo Node count (Número de nós), introduza um número de nós.
Clique em Atualizar conjunto de leitura.
gcloud
Para usar a CLI gcloud, pode instalar e inicializar a CLI Google Cloud ou usar a Cloud Shell.
Use o comando gcloud alloydb instances
update para alterar o número de nós numa instância do conjunto 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 conjunto de leitura. Especifique um número de1a20, inclusive. Tenha em atenção que não pode ter mais de 20 nós em todas as instâncias do conjunto de leitura num cluster.REGION_ID: a região onde a instância está localizada.CLUSTER_ID: o ID do cluster onde a instância está localizada.PROJECT_ID: o ID do projeto onde o cluster está localizado.
Se o comando devolver uma mensagem de erro que inclua a expressão invalid cluster state MAINTENANCE, significa que o cluster está a passar por uma manutenção de rotina. Isto impede temporariamente a reconfiguração da instância.
Execute o comando novamente depois de o cluster regressar ao estado READY. Para verificar o estado do cluster, consulte Ver detalhes do cluster.
Aumente ou diminua automaticamente a escala de uma instância de conjunto de leitura
O dimensionamento automático do conjunto de leitura do AlloyDB permite-lhe alterar o número de nós de leitura de forma automática e adaptativa com base na utilização de recursos em tempo real. Isto ajuda a processar alterações de utilização e a diminuir as despesas.
Pode configurar o dimensionamento automático através das seguintes políticas:
- Com base na utilização da CPU: ajusta o número de nós com base numa utilização da CPU de destino.
- Baseada em agendamento: dimensiona o número de nós para uma contagem mínima durante um período especificado.
Pode usar estas políticas em conjunto. Quando existem várias políticas ativas, o escalador automático seleciona a que recomenda o número mais elevado de nós.
Limitações
O escalador automático do conjunto de leitura tem as seguintes limitações:
- Distribuição de carga para ligações de longa duração: para estabelecer uma distribuição uniforme do tráfego e usar totalmente a capacidade adicionada do dimensionamento automático, recomendamos que crie novas ligações de cliente. O dimensionamento automático não termina as ligações existentes de longa duração quando adiciona novos nós, pelo que o tráfego dessas ligações não é encaminhado para os nós adicionados recentemente.
- Aquecimento da cache para novos nós: quando o escalador automático adiciona novos nós, pode demorar alguns minutos até que estes aqueçam as respetivas caches e atinjam o pico de desempenho das consultas.
- Comportamento com consultas grandes: os ajustes de dimensionamento automático podem ser adiados durante a execução de consultas de leitura muito grandes.
Ative o dimensionamento automático numa nova instância do conjunto de leitura
Pode ativar e configurar a escalabilidade automática quando cria uma instância de conjunto de leitura através de uma política baseada na CPU, uma política baseada em programação ou ambas.
Crie uma instância de banco de dados de leitura com uma política baseada na CPU
Para criar uma instância do conjunto de leitura com uma política de escalabilidade automática baseada numa utilização de CPU alvo, 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 o seguinte:
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 conjunto de leitura. Especifique um número de1a20, inclusive. Tenha em atenção que não pode ter mais de 20 nós em todas as instâncias do conjunto de leitura num cluster.REGION_ID:a região onde a instância está localizada.CLUSTER_ID: o ID do cluster onde a instância está colocada.PROJECT_ID: o ID do projeto onde o cluster está localizado.MAX_NODE_COUNT: o número máximo de nós que o escalador automático pode criar na instância do conjunto de leitura. O número total de nós em todas as instâncias do conjunto de leitura num único cluster não pode exceder 20.TARGET_CPU_USAGE: a utilização da CPU alvo para a instância do conjunto de leitura, expressa como um valor decimal entre 0,0 e 1,0. Por exemplo, 0,7 para 70%.
Crie uma instância do conjunto de leitura com uma política baseada em horários
Para criar uma instância de pool de leitura com uma política de escalabilidade automática baseada em agendamento que defina 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 o seguinte:
MAX_NODE_COUNT: o número máximo de nós que o escalador automático pode criar na instância do conjunto de leitura. O número total de nós em todas as instâncias do conjunto de leitura num único cluster não pode exceder 20.SCHEDULE_NAME: um nome exclusivo para a programação de escalonamento.CRON_EXPRESSION: a agenda no formato cron que especifica a hora de início do evento de escalamento.DURATION_SECONDS: a duração em segundos durante a qual o horário permanece ativo após o início. Após este período, a instância é reduzida ao número de nós determinado por outras políticas ou pela sua configuração original.TIME_ZONE: um fuso horário opcional para o agendamento. Por exemplo,America/Los_Angeles.MIN_NODE_COUNT: o número mínimo de nós para os quais o escalador automático dimensiona a instância do conjunto de leitura enquanto o horário está ativo.DESCRIPTION: uma descrição de texto opcional para o horário.
Crie uma instância de banco de dados de leitura com políticas baseadas em CPU e agendamento
Para criar uma instância de pool de leitura com políticas de escalabilidade automática baseadas em CPU e em horários, 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 de CPU alvo para a instância do conjunto 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 Crie uma instância do conjunto de leitura com uma política baseada na CPU e Crie uma instância do conjunto de leitura com uma política baseada em agendamento.
Ative ou atualize o dimensionamento automático numa instância de conjunto de leitura existente
Pode ativar, desativar ou modificar as definições de escalabilidade automática numa instância de conjunto de leitura existente.
Para ativar o dimensionamento automático pela primeira vez numa instância existente ou para atualizar uma política existente, use o comando gcloud alloydb instances update. Por exemplo, para atualizar a utilização da CPU de destino, 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 pelo novo valor de utilização da CPU alvo que quer definir para a instância do conjunto de leitura, expresso como um valor decimal entre 0,0 e 1,0.
Para adicionar um segundo agendamento a uma configuração existente, execute o comando de atualização com um novo nome de agendamento. Se o nome do horário já existir, o comando atualiza o horário existente. Caso contrário, cria um novo horário.
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 ajuste de escala nova ou atualizada. Se o nome fornecido corresponder a um horário existente, o comando atualiza as definições desse horário. Se o nome não existir, o comando cria uma nova agenda com este nome.
Como são avaliadas as políticas de escalabilidade automática
Quando existem várias políticas de escalamento automático ativas, o escalador automático avalia cada política e escolhe a que recomenda o número mais elevado de nós.
Por exemplo, considere uma configuração com duas políticas:
- Uma política baseada na CPU com um objetivo de utilização de 60%.
- Uma política baseada em horários que requer um mínimo de três nós nos dias úteis entre as 08:00 e as 17:00.
Se for um dia útil ao meio-dia e a utilização da CPU for de 80%, a política baseada na CPU pode recomendar o aumento para quatro nós, enquanto a política baseada na programação recomenda três. O dimensionamento automático dimensiona a instância para quatro nós.
Desative o ajuste de escala automático
Para desativar o dimensionamento automático, use a flag no-enable-autoscaler. Isto repõe o conjunto de leitura para a contagem de nós original antes de a escalabilidade automática ter sido ativada.
gcloud alloydb instances update INSTANCE_ID \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--project=PROJECT_ID \
--no-enable-autoscaler