Escalonador automático gerenciado

Nesta página, descrevemos como o escalonador automático gerenciado funciona e os custos e limitações ao usá-lo. Ela também fornece informações para ajudar 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 sua instância. O recurso escalonador automático gerenciado reage a alterações nas necessidades de carga de trabalho ou armazenamento da instância conforme a carga aumenta ou diminui. O escalonamento automático gerenciado aumenta a escala, adicionando capacidade de computação à instância, ou redimensiona, removendo a capacidade de computação dela.

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 significar nós ou unidades de processamento.

O escalonador automático gerenciado do 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 a mais alta. Isso significa, por exemplo, que, se a instância precisar de 10 nós para atender à meta de utilização do armazenamento, mas 12 nós para atender à meta de utilização da CPU, o Spanner dimensionará a instância para 12 nós.

À medida que a quantidade de capacidade de computação muda, o Spanner otimiza o armazenamento continuamente. Ele reequilibra os dados em todos os servidores para garantir que o tráfego seja distribuído uniformemente e que nenhum servidor individual fique sobrecarregado. Consulte mais informações em Limitações.

Se o escalonador automático gerenciado escalonar 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 até a meta de capacidade máxima 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 descobrir se a meta máxima foi atingida, consulte os registros de eventos 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 a uma taxa mais lenta do que no escalonamento vertical, para reduzir qualquer 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 dos limites definidos para ele.

Por exemplo, se você costumava configurar manualmente sua instância do Spanner para ter capacidade de computação suficiente para lidar com cargas de trabalho de pico a qualquer momento, seus 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ê costumava configurar manualmente sua instância do Spanner para ter capacidade de computação suficiente para cargas de trabalho médias e reduzir o desempenho geral quando o tráfego de carga de trabalho aumenta, seus custos com o escalonador automático gerenciado podem ser maiores porque o escalonador automático gerenciado pode aumentar a capacidade de computação quando a instância estiver ocupada. No entanto, isso proporciona aos usuários um desempenho mais consistente.

É possível limitar o custo máximo da 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 altera o recurso de escalonamento automático gerenciado em uma instância:

  • Não é possível mover uma instância quando o recurso de escalonador automático gerenciado está ativado. Primeiro é necessário desativar o escalonador automático gerenciado e, em seguida, mover a instância. Depois de mover a instância, reative 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 um nó ou mais.
  • Quando você ativa o escalonamento automático em uma instância atual, a capacidade dela pode ser menor que o valor limite mínimo configurado no escalonador automático gerenciado. No entanto, a instância é escalonada 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, ao iniciar a instância, ela será escalonada automaticamente para até 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 é significativamente menor que a meta, o Spanner remove a capacidade de computação. Para mais orientações, consulte Determinar a meta de utilização da CPU.
Meta de uso do armazenamento A porcentagem de armazenamento em um nó que pode ser usada antes do escalonamento vertical 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 mais orientações, consulte Determinar a meta de utilização do armazenamento.
Limite mínimo A menor quantidade de capacidade de computação para a qual o Spanner reduz o escalonamento da instância. O valor mínimo não pode ser inferior a 10% do valor definido para o limite máximo. Por exemplo, se o limite máximo é de 40 nós, o limite mínimo precisa ser de pelo menos quatro nós. O requisito de 10% é um limite absoluto. Para orientações, consulte Determinar o limite mínimo.
Limite máximo A maior quantidade de capacidade de computação usada pelo Spanner para 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 mais de 10 vezes o número escolhido para a quantidade mínima de capacidade de computação. Esse requisito de 10 vezes é um limite rígido. Para mais 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 os parâmetros do escalonador 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

O destino ideal para sua instância depende dos requisitos de latência e capacidade da sua carga de trabalho. Consulte Alertas de alta utilização da CPU para conferir nossas recomendações de uso máximo da CPU para instâncias regionais únicas e multirregionais.

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 escalonamento automático, a meta de utilização do armazenamento é expressa como uma porcentagem por nó. Para instâncias com 1 nó (1.000 unidades de processamento) ou mais, o tamanho do armazenamento é limitado a 4 TB por nó.

Determinar o limite máximo

O valor escolhido como a quantidade máxima de capacidade de computação é igual à quantidade de capacidade de computação que a instância precisa para processar o tráfego mais pesado, mesmo que você não espere atingir esse volume na maioria das vezes. O Spanner nunca aumenta a capacidade de computação do que o necessário. Pense também nesse número como a maior quantidade de capacidade de computação que você está disposto a pagar. Consulte Parâmetros do escalonador automático para detalhes sobre os valores aceitos.

O limite máximo precisa permitir a meta de utilização da CPU e a meta de utilização do armazenamento definida para o escalonamento automático.

  • Se você estiver alterando 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 automático gerenciado precisa ser pelo menos esse valor.

  • Se você estiver ativando o escalonador automático gerenciado para uma nova instância, veja 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, é possível estimar a quantidade de capacidade de computação necessária para atingir a meta de utilização do armazenamento integrado e ajustar o número mais tarde.

Também é preciso saber a quantidade de cota restante no nó, porque o escalonador automático gerenciado não pode configurar sua instância para ter mais capacidade de computação do que sua cota. Para mais informações, consulte Limites de nós.

Depois que a instância estiver funcionando com o escalonamento automático ativado, monitore a instância e verifique se o valor escolhido para o limite máximo é pelo menos tão alto quanto o limite recomendado para a CPU e o limite para o armazenamento.

Determinar o limite mínimo

Você define um limite mínimo para o escalonador automático gerenciado para garantir que sua instância do Spanner possa reduzir escala vertical para o menor tamanho mais econômico. O Spanner impede automaticamente que a contagem de nós fique abaixo do mínimo necessário para manter as metas de utilização de armazenamento e CPU.

O menor valor mínimo permitido pelo escalonador automático gerenciado é 1 nó ou 1.000 unidades de processamento. Quando você ativa o escalonamento automático para uma instância atual que tem menos capacidade do que o valor mínimo configurado para o escalonador automático gerenciado, a instância é automaticamente escalonada até esse mínimo quando você a inicia.

Depois de iniciar a instância que tem o escalonamento automático gerenciado, 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, convém definir o valor mínimo como mais de 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 ter certeza de que tem capacidade de computação suficiente.
  • Seu aplicativo envia tráfego com picos. Quando você adiciona uma nova capacidade de computação, o Spanner é reequilibrado 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 mínimo mais alto. Dessa forma, a instância acomodará os picos de modo contínuo.
  • Você aumenta a capacidade máxima de computação. O mínimo precisa ser sempre 10% ou menos da meta da capacidade máxima de computação. Por exemplo, se você definir o número máximo de nós como 30, precisará definir o número mínimo de nós como pelo menos 3.

Se você aumentar o valor da capacidade mínima de computação em uma instância, o Spanner tentará imediatamente escaloná-la para o novo mínimo. As restrições padrão são aplicadas. Quando você está fora da cota, sua solicitação para alterar a configuração do escalonador automático gerenciado falha e a configuração não é atualizada.

Sinalizações e limitações de parâmetros da Google Cloud CLI

Ao usar a Google Cloud CLI para configurar o escalonador automático gerenciado, algumas sinalizações obrigatórias precisam ser definidas. Há sinalizações opcionais para indicar se você 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 como ativar esse recurso em uma instância atual, consulte os seguintes artigos:

As seguintes sinalizações são necessárias ao ativar o escalonador automático gerenciado na instância:

  • autoscaling-high-priority-cpu-percent
  • autoscaling-storage-percent

Se você optar por usar nós, será preciso usar também as duas sinalizações 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á utilizar as duas sinalizações 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 atual usando a Google Cloud CLI:

  • Não é possível usar a sinalização --nodes com as sinalizações --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 sinalização --processing-units com as sinalizações autoscaling-min-processing-units ou autoscaling-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 dimensionamento.
  • Não é possível misturar as sinalizações de nós e unidades de processamento. Por exemplo, não é possível usar --autoscaling-max-nodes com autoscaling-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, especialmente depois de ativar o escalonador automático gerenciado pela primeira vez. Recomendamos usar a página Insights do sistema no console do Google Cloud.

Controle de acesso

Para configurar o escalonador automático gerenciado, você precisa ser o principal em um papel com permissões de criação e atualização para a instância que está configurando.

Monitoramento

O Spanner fornece várias métricas para ajudar você a entender o funcionamento do escalonador automático gerenciado à medida que ele escalona verticalmente para atender aos requisitos de 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 empresa. Por exemplo, se você observar que a contagem de nós de uma instância geralmente está próxima do número máximo, considere aumentar o máximo. Para saber mais sobre como monitorar os recursos do Spanner, consulte Monitorar instâncias com o Cloud Monitoring.

As métricas a seguir são mostradas em gráficos na página Insights do sistema no console do Google Cloud. Também é possível visualizar 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 cada vez que escalona uma instância.

É possível ver os logs de eventos do sistema do escalonador automático gerenciado no console do Google Cloud na página Insights do sistema.

Também é possível ver registros usando a Análise de registros:

  1. No console do Google Cloud, abra a Análise de registros:

    Acesse o Explorador de registros

  2. Selecione o projeto do Google Cloud apropriado.

  3. No campo Consulta, insira:

     protoPayload.methodName="AutoscaleInstance"
    

    É possível adicionar a seguinte consulta 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"
  4. 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 Análise de registros no Google Cloud ou usando a API Cloud Monitoring.

A seguir