Escalonamento automático

Nesta página, explicamos como o escalonamento automático funciona e ajudamos você a determinar se o escalonamento automático é o ideal para seu caso de uso. Antes de ler esta página, conheça a Visão geral do Bigtable e as Instâncias, clusters e nós.

No Bigtable , as instâncias são contêineres de clusters, que são recursos específicos do local que processam solicitações. Cada cluster tem um ou mais nós, que são recursos computacionais usados para gerenciar dados. Ao criar um cluster em uma instância, você escolhe entre a alocação manual de nós ou o escalonamento automático.

Com a alocação manual de nós, o número de nós no cluster permanece constante até você alterá-lo. Quando o escalonamento automático está ativado, o Bigtable monitora continuamente o cluster e ajusta automaticamente o número de nós nele, quando necessário. O escalonamento automático funciona em clusters HDD e SSD, em todas as regiões do Bigtable.

É possível configurar o escalonamento automático no Console do Google Cloud usando gcloud ou a biblioteca de cliente do Cloud Bigtable para Java.

Quando usar o escalonamento automático

Veja os benefícios do escalonamento automático:

  • Custos: o escalonamento automático pode ajudar a otimizar custos porque o Bigtable reduz o número de nós no cluster sempre que possível. Isso ajuda a evitar o provisionamento excessivo.
  • Desempenho: com o escalonamento automático, o Bigtable adiciona nós a um cluster automaticamente quando a carga de trabalho é alterada ou quando há um aumento nos requisitos de armazenamento de dados. Isso ajuda a manter os objetivos de desempenho da carga de trabalho, garantindo que o cluster tenha nós suficientes para atender aos requisitos das metas de uso e armazenamento da CPU.
  • Automação: o escalonamento automático reduz a complexidade do gerenciamento. Você não precisa monitorar e escalonar manualmente o tamanho do cluster ou criar um aplicativo para realizar essas tarefas, porque o serviço do Bigtable faz o processamento por você.

O escalonamento automático costuma ser a melhor opção para as seguintes situações:

  • Padrões de tráfego diurno estável, como os de serviços de compras on-line
  • Aplicativos novos com expectativa de crescimento orgânico
  • Cargas de trabalho novas no Bigtable

O escalonamento automático pode não funcionar bem para os tipos de carga de trabalho a seguir, mesmo que o Bigtable adicione nós rapidamente quando o tráfego aumenta, mas pode levar tempo para equilibrar os nós adicionais.

  • Trânsito intenso
  • Cargas de trabalho repentinas em lote

Se os picos de uso forem previsíveis ou programados regularmente, talvez seja possível usar o escalonamento automático e ajustar as configurações antes dos bursts planejados. Consulte Atraso ao reequilibrar os nós para detalhes.

Como o escalonamento automático funciona

Escalonamento automático é o processo de escalonar automaticamente ou alterar o tamanho de um cluster, adicionando ou removendo nós. Quando você ativa o escalonamento automático, o Bigtable ajusta o tamanho do cluster automaticamente. Quando a carga de trabalho ou o armazenamento do cluster precisa mudar, o Bigtable adiciona nós ao cluster para aumentar ou remove nós do cluster. de dados para diminuir.

O escalonamento automático do Bigtable determina o número de nós necessários com base nas dimensões a seguir:

  • Meta de utilização da CPU
  • Meta de uso do armazenamento
  • Número mínimo de nós
  • Número máximo de nós

Cada dimensão de escalonamento gera uma contagem de nós recomendada, e o Bigtable usa automaticamente a mais alta. Isso significa, por exemplo, que, se o cluster precisar de 10 nós para atingir a meta de utilização do armazenamento, mas de 12 para atingir a meta de utilização da CPU, o Bigtable escalonará o cluster para 12 nós.

À medida que o número de nós muda, o Bigtable otimiza continuamente o armazenamento, reequilibrando os dados entre os nós para garantir que o tráfego seja distribuído de maneira uniforme e nenhum nó seja sobrecarregado.

Depois que um cluster é escalonado verticalmente, o Bigtable reequilibra automaticamente os nós no cluster para otimizar o desempenho. Todas as solicitações continuarão chegando ao cluster enquanto o escalonamento e o rebalanceamento estiverem em andamento. Consulte Limitações de escalonamento para mais informações.

Se um cluster tiver sido escalonado verticalmente para o número máximo de nós e a meta de uso da CPU for excedida, as solicitações poderão ter alta latência ou falhar. Se um cluster tiver sido escalonado verticalmente para o número máximo de nós e o limite de uso do armazenamento for excedido, as solicitações de gravação falharão. Consulte Armazenamento por nó para mais detalhes sobre os limites de armazenamento.

Quando um cluster é reduzido, os nós são removidos em uma taxa mais lenta do que ao escalonar verticalmente, para evitar qualquer impacto na latência. Consulte as limitações de escalonamento para mais detalhes.

Parâmetros de escalonamento automático

Ao criar ou editar um cluster e escolher o escalonamento automático, você define os valores de destino de utilização da CPU, nós mínimos e máximo. Configure a meta de utilização do armazenamento ou a mantenha no padrão, que é 50% (2,5 TB para SSD e 8 TB para HDD).

Parâmetro Descrição
Meta de utilização da CPU

Uma porcentagem da capacidade de CPU do cluster. Pode ser de 10% a 80%. Quando o uso de CPU de um cluster excede a meta que você definiu, o Bigtable imediatamente adiciona nós ao cluster. Quando a utilização da CPU é substancialmente inferior à meta, o Bigtable remove os nós. Para orientações, veja Determinar a meta de utilização da CPU.

Número mínimo de nós

O menor número de nós para que o Bigtable reduzirá o cluster. Esse valor precisa ser maior que zero e não pode ser menor que 10% do valor definido para o número máximo de nós. Por exemplo, caso o número máximo de nós for 40, o número mínimo de nós precisa ser pelo menos 4. O requisito de 10% é um limite absoluto. Para orientações, veja Determinar o número mínimo de nós.

Número máximo de nós

O maior número de nós que você quer permitir que o cluster escalone verticalmente. Esse valor precisa ser maior que zero e igual ou maior que o número mínimo de nós. O valor não pode ser superior a 10 vezes o número mínimo de nós escolhido. Esse requisito de 10x é um limite absoluto. Para orientações, veja Determinar o número máximo de nós.

Meta de uso do armazenamento

O número máximo de terabytes por nó que podem ser armazenados antes do escalonamento vertical do Bigtable. Essa meta garante que você sempre tenha nós suficientes para lidar com flutuações na quantidade de dados armazenados. Para orientações, consulte Determinar o objetivo de uso do armazenamento.

Configure o escalonamento automático

Nesta seção, descrevemos como escolher os parâmetros de escalonamento automático. Depois de definir os valores iniciais, monitore o cluster e ajuste os números conforme necessário.

Determinar a meta de uso da CPU

Baseie a meta de uso da CPU na sua carga de trabalho específica. A meta ideal para o cluster depende dos requisitos de latência e capacidade da carga de trabalho. Consulte Uso de CPU para ver recomendações e consulte Compensação entre alta capacidade e baixa latência para entender os motivos por trás das recomendações.

Em geral, se a latência estiver alta demais, reduza a meta de uso da CPU.

Determinar a meta de utilização do armazenamento

Se o aplicativo for sensível à latência, mantenha o uso de armazenamento abaixo de 60%. Se o aplicativo não for sensível à latência, será possível escolher uma meta de utilização de armazenamento de 70% ou mais. Para mais detalhes, consulte Planejar sua capacidade do Bigtable.

Para o escalonamento automático, a utilização do armazenamento é expressa como o número de bytes de armazenamento por nó em vez de uma porcentagem. A meta de utilização do armazenamento é especificada por nó, mas é aplicada a todo o cluster. Os limites de capacidade dos nós são de 5 TB por nó para armazenamento SSD e 16 TB por nó para armazenamento em HDD.

A tabela a seguir mostra os valores desejados para porcentagens de meta de utilização do armazenamento típicas. O console do Google Cloud aceita o valor em TB por nó, e as bibliotecas de cliente da CLI gcloud, da API e do Cloud Bigtable aceitam um valor inteiro em GiB por nó.

Porcentagem SSD HDD
80% 4 TB ou 4.096 GiB 12,8 TB ou 13.107 GiB
70% 3,5 TB ou 3.584 GiB 11,2 TB ou 11.468 GiB
60% 3 TB ou 3.072 GiB 9,6 TB ou 9.830 GiB
50% 2,5 TB ou 2.560 GiB 8 TB ou 8.192 GiB

Determinar o número máximo de nós

O valor escolhido como número máximo de nós precisa ser o número de nós que o cluster precisa para lidar com o tráfego mais intenso da carga de trabalho, mesmo que esse volume não seja atingido na maior parte do tempo. O Bigtable nunca é escalonado para mais nós do que o necessário. Pense também nesse número como o maior número de nós que você quer pagar. Consulte Parâmetros de escalonamento automático para ver detalhes sobre valores aceitos.

O número máximo precisa permitir a meta de uso da CPU que você definiu e a meta de uso de armazenamento definida pelo Bigtable.

Se você estiver alterando um cluster de alocação manual para escalonamento automático, encontre o maior número de nós que o cluster teve no último mês. O valor máximo do escalonamento automático precisa ser esse número ou maior.

Se você estiver ativando o escalonamento automático para um novo cluster em uma instância atual, use as métricas de outros clusters da instância como base.

Se você tiver uma nova carga de trabalho e não tiver certeza de como ela crescerá, calcule o número de nós necessários para atingir a meta de uso do armazenamento integrado e ajuste depois.

Para chegar a esse número, estime a quantidade de dados que você planeja armazenar no cluster e divida esse número pela meta de uso para o tipo de armazenamento.

Por exemplo, se você armazena 10 TB em um cluster SSD, divida 10 TB por 2,5 TB, que é a meta padrão de uso do armazenamento nos clusters SSD que usam escalonamento automático. O resultado é quatro, o que significa que quatro é o número de nós que podem processar essa quantidade de dados, então o número máximo deve ser maior que isso.

Usando a mesma fórmula, os exemplos a seguir mostram o número de nós necessários para alguns exemplos de valores do armazenamento:

Armazenamento SSD por cluster Menor número máximo de nós
25 TB 10
35 TB 14
50 TB 20

Depois que o cluster estiver em execução com o escalonamento automático ativado, monitore o cluster para garantir que o valor escolhido para o número máximo de nós seja pelo menos tão alto quanto o recommended number of nodes for CPU target e o recommended number of nodes for storage target.

Determinar o número mínimo de nós

Defina o mínimo como um para garantir que o Bigtable possa reduzir para o tamanho menor e mais econômico, se possível. O cluster nunca fica pequeno demais, porque o Bigtable automaticamente impede que a contagem de nós fique abaixo do mínimo necessário para manter as metas de uso de CPU e armazenamento. Consulte Parâmetros de escalonamento automático para ver detalhes sobre valores aceitos.

No entanto, em muitos casos, convém definir esse valor como maior que um. Escolha um número maior ou aumente o número mínimo de nós nas seguintes situações:

  • Você tem um evento futuro, como a Cyber Monday, e espera que o tráfego aumente temporariamente, então quer garantir que a capacidade seja suficiente.
  • Seu aplicativo envia tráfego com picos. Quando novos nós são adicionados, o Bigtable reequilibra os novos nós automaticamente. Como esse processo pode levar vários minutos, geralmente é melhor adotar uma abordagem conservadora e escolher um valor mínimo mais alto para que o cluster possa acomodar os picos facilmente.
  • Você aumenta o número máximo de nós. O mínimo precisa ser sempre 10% ou menos do número máximo de nós. Por exemplo, se você definir o máximo como 30, o mínimo precisa ser definido como 3.

Se você aumentar o valor do número mínimo de nós de um cluster, o Bigtable vai imediatamente tentar escalonar o cluster para o novo mínimo. As restrições padrão se aplicam. No entanto, se uma zona estiver sem nós, os nós adicionais não vão ser provisionados para atender ao mínimo configurado. O Bigtable continua tentando adicionar nós e cria uma entrada de registro de auditoria para cada tentativa com falha até que escalone o cluster para o novo número mínimo de nós. O Bigtable não altera o valor configurado nessa situação. Como resultado, talvez a contagem de nós do cluster seja menor que o mínimo até que o escalonamento seja concluído.

Ajustar as configurações

Fique de olho no uso de nós e ajuste as configurações conforme necessário, principalmente após ativar o escalonamento automático pela primeira vez.

Considerar a replicação

Em uma instância que usa replicação, as configurações e atividades de escalonamento automático de cada cluster são completamente independentes das configurações de outros clusters da instância. Configure o modo de escalonamento de cada cluster da instância.

Em geral, para instâncias replicadas, é necessário ativar o escalonamento automático para todos os clusters na instância. A configuração do escalonamento automático costuma ser igual para todos os clusters da instância, mas pode ser diferente dependendo do caso de uso, carga de trabalho e desempenho de cada cluster.

Como os clusters de uma instância replicada têm um trabalho extra para gerenciar a replicação, escolha um número máximo maior para nós do que para uma instância de cluster único. Para saber mais, consulte Replicação e desempenho.

Controle de acesso

Para configurar o escalonamento automático, você precisa ser o principal em um papel com as permissões create e update para o cluster e a instância que você está configurando.

Monitoramento

O Bigtable fornece várias métricas para ajudar você a entender como o escalonamento automático do Bigtable funciona, 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 um cluster 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 Bigtable, consulte Como monitorar uma instância.

As métricas a seguir são exibidas em gráficos na página de visão geral do cluster no Console do Google Cloud. Também é possível visualizar essas métricas usando o Cloud Monitoring.

  • bigtable.googleapis.com/cluster/autoscaling/min_node_count
  • bigtable.googleapis.com/cluster/autoscaling/max_node_count
  • bigtable.googleapis.com/cluster/autoscaling/recommended_node_count_for_cpu
  • bigtable.googleapis.com/cluster/autoscaling/recommended_node_count_for_storage

Geração de registros

O Bigtable emite um registro de auditoria de eventos do sistema sempre que escalona um cluster. A entrada de registro é semelhante a esta:

Grew from 9 to 10 nodes to maintain CPU utilization at 60%.

É possível ver os registros de evento de escalonamento automático na página de visão geral do cluster do Bigtable no Console do Google Cloud. Também é possível visualizá-los usando o Explorador de registros:

  1. Acesse o Explorador de registros:

    Acesse o Explorador de registros

    Selecione o projeto do Google Cloud apropriado.

  2. No campo Consulta, insira:

    resource.type="audited_resource" resource.labels.service="bigtableadmin.googleapis.com"
    resource.labels.method="AutoscaleCluster"
    
  3. 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.

A seguir