Nesta página, descrevemos como o escalonador automático gerenciado funciona e descrevemos os custos e as limitações ao usá-lo. Ele também fornece informações para ajudar você a determinar como configurar o escalonador automático gerenciado.
Como funciona o escalonador automático gerenciado
Quando você ativa o escalonador automático gerenciado, o Spanner ajusta automaticamente o tamanho da instância. O recurso de escalonador automático gerenciado reage a mudanças nas necessidades de armazenamento ou de carga de trabalho da instância conforme a carga aumenta ou diminui. O escalonamento automático gerenciado aumenta, adicionando capacidade de computação à instância, ou diminui, removendo a capacidade de computação da instância.
Ao configurar o escalonador automático gerenciado, é possível usar unidades de processamento para instâncias pequenas ou nós para instâncias grandes. Neste documento, usamos o termo capacidade de computação para nos referirmos a nós ou unidades de processamento.
O escalonador automático gerenciado pelo Spanner determina a capacidade de computação necessária com base no seguinte:
- Meta de utilização de CPU de alta prioridade
- Meta de uso do armazenamento
- Limite mínimo
- Limite máximo
Cada dimensão de escalonamento gera um tamanho de instância recomendado, e o Spanner usa automaticamente o maior. Isso significa, por exemplo, que, se a instância precisar de 10 nós para atingir a meta de utilização do armazenamento, mas 12 para atingir a meta de utilização da CPU, o Spanner vai escalonar a instância para 12 nós.
À medida que a quantidade de capacidade de computação muda, o Spanner otimiza continuamente o armazenamento. Ele reequilibra os dados em todos os servidores para garantir que o tráfego seja distribuído de maneira uniforme e nenhum servidor seja sobrecarregado. Consulte as Limitações para mais informações.
Se o escalonador automático gerenciado aumentar uma instância até o limite máximo, mas a carga de trabalho ainda estiver causando uma utilização de CPU maior do que a meta, as solicitações de carga de trabalho poderão ter uma latência maior ou falhar. Se uma instância for escalonada para o objetivo máximo de capacidade de computação, mas a carga de trabalho precisar de mais armazenamento do que o limite máximo, as solicitações de gravação poderão falhar. Para saber se a meta máxima foi alcançada, acesse os registros de evento do sistema do escalonador automático gerenciado no console do Google Cloud na página Insights do sistema. Para mais informações, consulte Limites de armazenamento.
Quando o Spanner reduz uma instância, ele remove a capacidade de computação em uma taxa mais lenta do que ao escalonar verticalmente, para reduzir o impacto na latência.
Custos
Os custos totais do Spanner podem ser menores ou maiores, dependendo de como você configurou a instância do Spanner antes de ativar o escalonador automático gerenciado e os limites definidos para ele.
Por exemplo, se você configurou manualmente a instância do Spanner para ter capacidade de computação suficiente para processar cargas de trabalho de pico a qualquer momento, os custos com o escalonador automático gerenciado podem ser menores, porque ele reduz a capacidade de computação quando a instância está ociosa.
Se você configurou manualmente a instância do Spanner para ter capacidade de computação suficiente para cargas de trabalho médias e a performance geral se degrada quando o tráfego de carga de trabalho aumenta, seus custos com o escalonador automático gerenciado podem ser maiores porque ele pode aumentar a capacidade de computação quando a instância está ocupada. No entanto, isso oferece aos usuários uma performance mais consistente.
É possível limitar o custo máximo da sua instância do Spanner definindo o limite máximo de nós ou unidades de processamento para o nível que você quer gastar.
Limitações
As limitações a seguir se aplicam quando você ativa ou muda o recurso de escalonamento automático gerenciado em uma instância:
- Não é possível mover uma instância quando o recurso de escalonador gerenciado está ativado. Primeiro, desative o escalonador automático gerenciado e depois mova a instância. Depois de mover a instância, você pode ativar novamente o escalonador automático gerenciado.
- Defina o limite mínimo na instância de escalonamento automático como 1.000 unidades de processamento ou mais, ou 1 nó ou mais.
- Quando você ativa o escalonamento automático em uma instância, a capacidade dela pode ser menor que o valor mínimo que você configura no escalonador automático gerenciado. No entanto, a instância é dimensionada automaticamente para o valor mínimo configurado quando você a inicia. Por exemplo, se a instância tiver um nó, mas você definir o valor mínimo como dois nós, quando iniciar a instância, ela será escalonada automaticamente para dois nós.
Parâmetros do escalonador automático gerenciado
Ao criar ou editar uma instância e ativar o escalonador automático gerenciado, você define os valores mostrados na tabela a seguir.
Parâmetro | Descrição |
---|---|
Meta de utilização de CPU de alta prioridade | Uma porcentagem da capacidade de CPU de alta prioridade da instância. Esse valor precisa estar entre 10% e 90%. Quando a utilização da CPU de uma instância excede a meta definida, o Spanner adiciona imediatamente a capacidade de computação à instância. Quando a utilização da CPU é substancialmente menor que a meta, o Spanner remove a capacidade de computação. Para orientações, consulte Determinar a meta de uso da CPU. |
Meta de uso do armazenamento | A porcentagem de armazenamento em um nó que pode ser usada antes do escalonamento do Spanner. Essa meta garante que você sempre tenha capacidade de computação suficiente para lidar com flutuações na quantidade de dados armazenados. Esse valor precisa estar entre 10% e 99%. Para orientações, consulte Determinar o objetivo de uso do armazenamento. |
Limite mínimo | A menor capacidade de computação para a qual o Spanner reduz a instância. O valor mínimo não pode ser menor que 10% do valor definido para o limite máximo. Por exemplo, se o limite máximo for 40 nós, o limite mínimo precisa ser de pelo menos 4 nós. O requisito de 10% é um limite absoluto. Para orientações, consulte Determinar o limite mínimo. |
Limite máximo | A maior capacidade de computação que o Spanner pode escalonar a instância. Para nós, esse valor precisa ser maior que 1 nó (ou 1.000 unidades de processamento) e igual ou maior que o número mínimo de nós ou unidades de processamento. O valor não pode ser superior a 10 vezes o número escolhido para a quantidade mínima de capacidade de computação. Esse requisito de 10 vezes é um limite absoluto. Para orientações, consulte Determinar o limite máximo. |
Configurar o escalonador automático gerenciado
Esta seção descreve como determinar quais números escolher para seus parâmetros de escalonamento automático gerenciado. Depois de definir os valores iniciais, monitore a instância e ajuste os números, se necessário.
Determinar a meta de uso da CPU
A meta ideal para a instância depende dos requisitos de latência e capacidade da carga de trabalho. Para conferir nossas recomendações de uso máximo da CPU para configurações de instâncias regionais, de duas regiões e multirregionais, consulte Alertas para alta utilização da CPU.
Em geral, se a latência estiver alta demais, reduza a meta de uso da CPU.
Determinar a meta de utilização do armazenamento
Para o escalonamento automático, a meta de utilização do armazenamento é expressa como uma porcentagem por nó. Para instâncias de 1 nó (1.000 unidades de processamento) e maiores, o tamanho do armazenamento é limitado a 10 TB por nó.
Determinar o limite máximo
O valor escolhido como a quantidade máxima de capacidade de computação é igual à capacidade de computação que a instância precisa para processar o tráfego mais intenso, mesmo que você não espere atingir esse volume na maior parte do tempo. O Spanner nunca é escalonado para mais capacidade de computação do que precisa. Você também pode pensar nesse número como o maior valor de capacidade de computação que você está disposto a pagar. Consulte Parâmetros de escalonador para conferir detalhes sobre os valores aceitos.
O limite máximo precisa permitir a meta de uso da CPU e a meta de uso do armazenamento definidas para o escalonamento automático.
Se você estiver mudando uma instância de alocação manual para escalonamento automático gerenciado, encontre a maior capacidade de computação que a instância teve nos últimos um ou dois meses. O limite máximo do escalonador gerenciado precisa ser pelo menos tão alto.
Se você estiver ativando o escalonador automático gerenciado para uma nova instância, analise as métricas de outras instâncias e use-as como guia ao definir o limite máximo.
Se você tiver uma nova carga de trabalho e não tiver certeza de como ela vai crescer, calcule a quantidade de capacidade de computação necessária para atingir a meta de uso do armazenamento integrado e ajuste o número depois.
Você também precisa saber quanta cota resta no seu nó, porque o escalonador automático gerenciado não pode configurar a instância para ter mais capacidade de computação do que a cota. Para mais informações, consulte Limites de nós.
Depois que a instância estiver em execução com o escalonamento automático ativado, monitore a instância para garantir que o valor escolhido para o limite máximo seja pelo menos tão alto quanto o limite recomendado para a meta de CPU e o limite recomendado para a meta de armazenamento.
Determinar o limite mínimo
Você define um limite mínimo para o escalonador automático gerenciado para garantir que a instância do Spanner possa reduzir escala vertical para o tamanho menor e mais econômico. O Spanner impede automaticamente que a contagem de nós caia abaixo do mínimo necessário para manter as metas de uso de CPU e armazenamento.
O menor valor mínimo permitido pelo escalonador automático gerenciado é de 1 nó ou 1.000 unidades de processamento. Quando você ativa o escalonamento automático para uma instância existente que tem menos capacidade do que o valor mínimo configurado para o escalonador automático gerenciado, a instância é dimensionada automaticamente para esse mínimo quando você a inicia.
Depois de iniciar a instância que gerenciou o escalonamento automático, realize um teste inicial para garantir que ela funcione no tamanho mínimo definido. Teste novamente periodicamente para garantir que ele continue funcionando conforme o esperado.
Para mais informações sobre os valores aceitos, consulte Parâmetros do escalonador automático gerenciado neste documento.
Em muitos casos, você quer definir o valor mínimo como maior que um. Escolha um número maior ou aumente o limite mínimo nas seguintes situações:
- Você tem um evento de pico de escala em breve, quando espera que o tráfego aumente temporariamente, e quer garantir que a capacidade de computação seja suficiente.
- Seu aplicativo envia tráfego com picos. Quando você adiciona uma nova capacidade de computação, o Spanner reequilibra automaticamente para usar os novos nós ou unidades de processamento. Como esse processo pode levar vários minutos, é recomendável adotar uma abordagem conservadora e escolher um valor mínimo mais alto. Dessa forma, a instância acomoda perfeitamente os picos.
- Você aumenta a capacidade máxima de computação. O mínimo precisa ser sempre 10%
ou mais da meta de capacidade de computação máxima. Por exemplo, se você
definir o número máximo de nós como
30
, o número mínimo de nós precisa ser pelo menos3
.
Se você aumentar o valor da capacidade mínima de computação em uma instância, o Spanner vai tentar escalonar a instância para o novo mínimo imediatamente. As restrições padrão se aplicam. Quando você fica sem cota, a solicitação para mudar a configuração do autoscaler gerenciado falha e a configuração não é atualizada.
Flags e limitações de parâmetros da Google Cloud CLI
Ao usar a Google Cloud CLI para configurar o autoscaler gerenciado, é necessário definir algumas flags. Há flags opcionais que você usa para indicar se quer usar nós ou unidades de processamento. Para mais informações sobre como criar uma nova instância com o escalonador automático gerenciado ou ativar o escalonamento automático gerenciado em uma instância existente, consulte:
As flags a seguir são necessárias para ativar o escalonador automático gerenciado na sua instância:
autoscaling-high-priority-cpu-percent
autoscaling-storage-percent
Se você optar por usar nós, também precisará usar as duas flags a seguir ao ativar o escalonador automático gerenciado:
autoscaling-min-nodes
autoscaling-max-nodes
Se você optar por usar unidades de processamento, também precisará usar as duas flags a seguir ao ativar o escalonador automático gerenciado:
autoscaling-min-processing-units
autoscaling-max-processing-units
As limitações a seguir se aplicam ao adicionar o escalonador automático gerenciado a uma instância usando a Google Cloud CLI:
- Não é possível usar a flag
--nodes
com as flags--autoscaling-min-nodes
ou--autoscaling-max-nodes
porque o uso de--nodes
define um número específico de nós em vez de um intervalo de escalonamento. Da mesma forma, não é possível usar a flag--processing-units
com as flagsautoscaling-min-processing-units
ouautoscaling-max-processing-units
porque o uso de--processing-units
define um número específico de unidades de processamento em vez de um intervalo de escalonamento. - Não é possível misturar as flags de nós e unidades de processamento. Por
exemplo, não é possível usar
--autoscaling-max-nodes
comautoscaling-min-processing-units
.
Ajustar as configurações
Fique de olho no uso da capacidade de computação e ajuste as configurações, se necessário, principalmente depois de ativar o escalonador automático gerenciado pela primeira vez. Recomendamos usar a página Insights do sistema no console Google Cloud .
Controle de acesso
Para configurar o autoescalador gerenciado, você precisa ser o principal em um papel com permissões de criação e atualização para a instância que você está configurando.
Monitoramento
O Spanner fornece várias métricas para ajudar você a entender como o escalonador automático gerenciado está funcionando, conforme ele aumenta e reduz os requisitos da carga de trabalho. As métricas também podem ajudar a avaliar se as configurações são ideais para atender aos requisitos de carga de trabalho e custo da sua empresa. Por exemplo, se a contagem de nós de uma instância estiver próxima do número máximo de nós, considere aumentar o valor máximo. Para saber mais sobre como monitorar seus recursos do Spanner, consulte Monitorar instâncias com o Cloud Monitoring.
As métricas a seguir são exibidas em gráficos na página Insights do sistema no console do Google Cloud . Também é possível conferir essas métricas usando o Cloud Monitoring.
spanner.googleapis.com/instance/autoscaling/min_node_count
spanner.googleapis.com/instance/autoscaling/max_node_count
spanner.googleapis.com/instance/autoscaling/min_processing_units
spanner.googleapis.com/instance/autoscaling/max_processing_units
spanner.googleapis.com/instance/autoscaling/high_priority_cpu_target_utilization
spanner.googleapis.com/instance/autoscaling/storage_target_utilization
Geração de registros
O Spanner cria um registro de auditoria de eventos do sistema sempre que escalona uma instância.
É possível conferir os registros de evento do sistema do escalonador automático gerenciado no console doGoogle Cloud na página Insights do sistema.
Também é possível acessar os registros usando o Explorador de registros:
No console do Google Cloud , abra o Explorador de registros:
Selecione o projeto Google Cloud adequado.
No campo Consulta, insira:
protoPayload.methodName="AutoscaleInstance"
Você pode adicionar a consulta a seguir para filtrar ainda mais os registros:
resource.type="spanner_instance" resource.labels.instance_id=INSTANCE_ID resource.labels.project_id=PROJECT_ID logName="projects/span-cloud-testing/logs/cloudaudit.googleapis.com%2Fsystem_event" protoPayload.methodName="AutoscaleInstance"
Clique em Executar consulta.
O painel Resultados da consulta exibirá os registros da última hora.
Para saber mais sobre como visualizar registros, consulte Cloud Logging. É possível configurar alertas com base em registros na página Explorador de registros no Google Cloud ou usando a API Cloud Monitoring.
A seguir
- Saiba como criar uma instância.
- Saiba como modificar uma instância para adicionar ou alterar as configurações de escalonamento automático
- Saiba como mudar o uso de uma instância do escalonamento automático para o escalonamento manual.