Escalonador automático gerenciado

Nesta página, descrevemos como o escalonador automático gerenciado funciona e os custos e limitações para 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 para você. Esse recurso 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 escalona verticalmente, 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 se referir a nós ou unidades de processamento.

O escalonador automático gerenciado do Spanner determina quanta 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 atender à meta de utilização do armazenamento, mas de 12 nós para atingir a meta de utilização da CPU, o Spanner escalona 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 de maneira uniforme e que nenhum servidor individual esteja sobrecarregado. Consulte Limitações para mais informaçõ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 da carga de trabalho poderão ter uma latência maior ou falhar. Se uma instância for escalonada até a meta da 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 alcançada, consulte os registros de eventos do sistema do escalonador automático gerenciado na página Insights do sistema no console do Google Cloud. Para mais informações, consulte os 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 uma instância, 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 os limites definidos para ele.

Por exemplo, se você costumava configurar manualmente a instância do Spanner para ter capacidade de computação suficiente para lidar com os picos de cargas de trabalho 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á inativa.

Se você costumava configurar manualmente sua instância do Spanner para ter capacidade de computação suficiente para cargas de trabalho médias e o desempenho geral se degrada quando o tráfego da carga de trabalho aumenta, seus custos com o escalonador automático gerenciado podem ser mais altos. Isso acontece porque ele aumenta a capacidade de computação quando a instância está ocupada. No entanto, isso proporciona aos usuários um desempenho mais consistente.

Para limitar o custo máximo da instância do Spanner, defina 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 1 nó ou mais.
  • Quando você ativa o escalonamento automático em uma instância, a capacidade dela pode ser menor que o valor do limite mínimo configurado no escalonador automático gerenciado. No entanto, a instância é escalonada automaticamente até 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 iniciá-la, ela será escalonada automaticamente para dois nós.

Parâmetros do escalonador automático gerenciado

Ao criar ou editar uma instância e optar por 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 da CPU de alta prioridade da instância. Esse valor precisa estar entre 10 e 90%. Quando o uso da CPU de uma instância excede a meta que você definiu, 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 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 que o Spanner seja escalonado verticalmente. 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 que o Spanner reduz o escalonamento vertical da instância. O valor mínimo não pode ser inferior a 10% do valor que você definiu para o limite máximo. Por exemplo, se o limite máximo for de 40 nós, o limite mínimo precisará 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 capacidade de computação que o Spanner escalona 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

Nesta seção, descrevemos como determinar quais números escolher para os parâmetros do escalonador automático gerenciado. Depois de definir os valores iniciais, monitore sua instância e ajuste os números, se necessário.

Determinar a meta de uso da CPU

A meta ideal para sua instância depende dos requisitos de latência e capacidade de processamento da carga de trabalho. Para ver nossas recomendações de uso máximo da CPU para configurações de instâncias regionais, birregionais e multirregionais, consulte Alertas de 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

No 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) e maiores, 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 lidar com o tráfego mais pesado, mesmo que não espere atingir esse volume na maioria das vezes. O Spanner nunca é escalonado verticalmente para uma capacidade de computação maior do que o necessário. Você também pode pensar nesse número como a maior capacidade de computação que gostaria de 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 que você definiu 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 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 um 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, estime a capacidade de computação necessária para atender à meta de utilização do armazenamento integrado e ajuste o número mais tarde.

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

Quando a instância estiver funcionando com o escalonamento automático ativado, monitore-a e verifique se o valor escolhido para o limite máximo é pelo menos igual ao limite recomendado para a meta de CPU e o limite recomendado para a meta de armazenamento.

Determinar o limite mínimo

Defina um limite mínimo para o escalonador automático gerenciado para garantir que a instância do Spanner possa ser reduzir escala vertical ao menor tamanho e com melhor custo-benefício. 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 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 atual que tem menos capacidade do que o valor mínimo configurado para o escalonador automático gerenciado, a instância escalona automaticamente até esse mínimo quando você a inicia.

Depois de iniciar a instância com escalonamento automático gerenciado, execute 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 mais de um. Escolha um número mais alto ou aumente o limite mínimo nas seguintes situações:

  • Você tem um evento de escala de pico próximo quando espera que o tráfego aumente temporariamente e quer ter capacidade de computação suficiente.
  • Seu aplicativo envia tráfego com picos. Quando você adiciona uma nova capacidade de computação, o Spanner se reequilibra automaticamente para usar os novos nós ou as unidades de processamento. Como esse processo pode levar vários minutos, considere adotar uma abordagem conservadora e escolher um mínimo mais alto. Dessa forma, sua instância se acomodará perfeitamente aos picos.
  • 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, deverá 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 escalonar a instância para o novo mínimo. As restrições padrão são aplicadas. Quando você está sem 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, você precisa definir algumas flags obrigatórias. 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 ativar o escalonamento automático gerenciado em uma instância atual, consulte:

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

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

Se você optar por usar nós, também precisará utilizar 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 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 escalonamento.
  • 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

Acompanhe o 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á sendo configurada.

Monitoramento

O Spanner fornece várias métricas para ajudar você a entender o desempenho do escalonador automático gerenciado à medida que ele escalona verticalmente para atender aos requisitos da carga de trabalho. As métricas também ajudam 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 você observar que a contagem de nós de uma instância geralmente está próxima do número máximo de nós, considere aumentar o 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 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 sempre que escalona uma instância.

É possível visualizar os registros 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 os 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