Escala automática

Esta página explica como funciona o dimensionamento automático. Antes de ler esta página, deve conhecer a vista geral do Bigtable e as instâncias, os clusters e os nós.

No Bigtable, as instâncias são contentores para clusters, que são recursos específicos da localização que processam pedidos. Cada cluster tem um ou mais nós, que são recursos de computação usados para gerir os seus dados. Quando cria um cluster numa instância, escolhe a atribuição manual de nós ou o dimensionamento automático.

Com a atribuição manual de nós, o número de nós no cluster permanece constante até que o altere. Quando o redimensionamento automático está ativado, o Bigtable monitoriza continuamente o cluster e ajusta automaticamente o número de nós no cluster quando necessário. O redimensionamento automático funciona em clusters de HDD e SSD em todas as regiões do Bigtable.

Pode configurar o dimensionamento automático na Google Cloud consola, através do gcloud ou da biblioteca de cliente do Cloud Bigtable para Java.

Quando usar o dimensionamento automático

Recomendamos que ative o ajuste de escala automático na maioria dos casos. As vantagens do dimensionamento automático incluem o seguinte:

  • Custos: o dimensionamento automático pode ajudar a otimizar os custos porque o Bigtable reduz o número de nós no seu cluster sempre que possível. Isto pode ajudar a evitar o aprovisionamento excessivo.
  • Desempenho: o dimensionamento automático permite que o Bigtable adicione automaticamente nós a um cluster quando uma carga de trabalho muda ou existe um aumento nos requisitos de armazenamento de dados. Isto ajuda a manter os objetivos de desempenho da carga de trabalho, garantindo que o cluster tem nós suficientes para satisfazer os requisitos de utilização da CPU e de armazenamento alvo.
  • Automatização: o dimensionamento automático reduz a complexidade da gestão. Não precisa de monitorizar e dimensionar manualmente o tamanho do cluster nem escrever uma aplicação para realizar estas tarefas, porque o serviço Bigtable trata delas por si.

O dimensionamento automático por si só pode não funcionar bem para os seguintes tipos de carga de trabalho, porque, embora o Bigtable adicione rapidamente nós quando o tráfego aumenta, pode demorar algum tempo a equilibrar os nós adicionais.

  • Tráfego intermitente
  • Cargas de trabalho em lote súbitas

Se os picos de utilização forem previsíveis ou agendados regularmente, pode usar o dimensionamento automático e ajustar as definições antes dos aumentos planeados. Consulte o artigo Atraso durante o reequilíbrio dos nós para ver detalhes.

Como funciona o dimensionamento automático

A escalabilidade automática é o processo de escalar ou alterar automaticamente o tamanho de um cluster adicionando ou removendo nós. Quando ativa o dimensionamento automático, o Bigtable ajusta automaticamente o tamanho do cluster. Quando a carga de trabalho ou as necessidades de armazenamento do cluster flutuam, o Bigtable aumenta a escala, adicionando nós ao cluster, ou diminui a escala, removendo nós do cluster.

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

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

Cada dimensão de escalabilidade gera uma quantidade de nós recomendada e o Bigtable usa automaticamente a mais elevada. Isto significa, por exemplo, que se o cluster precisar de 10 nós para atingir o objetivo de utilização de armazenamento, mas 12 para atingir o objetivo de utilização da CPU, o Bigtable dimensiona o cluster para 12 nós.

À medida que o número de nós muda, o Bigtable otimiza continuamente o armazenamento, reequilibrando os dados nos nós, para garantir que o tráfego é distribuído uniformemente e que nenhum nó fica sobrecarregado.

Depois de um cluster ser aumentado, o Bigtable reequilibra automaticamente os nós no cluster para um desempenho ideal. Todos os pedidos continuam a chegar ao cluster enquanto o ajuste de escala e o reequilíbrio estão em curso. Consulte as limitações de escalabilidade para mais informações.

Se um cluster tiver sido dimensionado até ao número máximo de nós e o objetivo de utilização da CPU for excedido, os pedidos podem ter uma latência elevada ou falhar. Se um cluster tiver sido dimensionado até ao número máximo de nós e o limite de utilização do armazenamento for excedido, os pedidos de gravação falham. Consulte o artigo Armazenamento por nó para ver mais detalhes sobre os limites de armazenamento.

Quando um nó é adicionado a um cluster pequeno, como um cluster de um nó, pode observar um aumento temporário na latência à medida que o cluster volta a equilibrar-se. Isto deve-se ao facto de o nó adicional duplicar proporcionalmente o tamanho do cluster. Da mesma forma, se um cluster diminuir de dois nós para um nó, pode ocorrer alguma latência.

Quando um cluster é reduzido, os nós são removidos a um ritmo mais lento do que quando é aumentado, para evitar qualquer impacto na latência. Consulte as limitações de escalabilidade para ver mais detalhes.

Parâmetros de escala automática

Quando cria ou edita um cluster e escolhe o dimensionamento automático, define os valores para o objetivo de utilização da CPU, o número mínimo de nós e o número máximo de nós. Pode configurar o objetivo de utilização do armazenamento ou deixá-lo na predefinição, que é de 50% (2,5 TB para SSD e 8 TB para HDD).

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

Uma percentagem da capacidade da CPU do cluster. Pode ser de 10% a 80%. Quando a utilização da CPU de um cluster excede o objetivo que definiu, o Bigtable adiciona imediatamente nós ao cluster. Quando a utilização da CPU é substancialmente inferior ao objetivo, o Bigtable remove nós. Para orientações, consulte o artigo Determine o objetivo de utilização da CPU.

Número mínimo de nós

O número mais baixo de nós para o qual o Bigtable reduz a escala do cluster. Se a escalabilidade de nós 2x estiver ativada, este valor tem de ser um número par. Este valor tem de ser superior a zero e não pode ser inferior a 10% do valor que definiu para o número máximo de nós. Por exemplo, se o número máximo de nós for 40, o número mínimo de nós tem de ser, pelo menos, 4. O requisito de 10% é um limite rígido. Para orientações, consulte o artigo Determine o número mínimo de nós.

Número máximo de nós

O número mais elevado de nós para o qual quer permitir o escalamento do cluster. Se a escalabilidade de nós 2x estiver ativada, este valor tem de ser um número par. Este valor tem de ser superior a zero e igual ou superior ao número mínimo de nós. O valor não pode ser superior a 10 vezes o número que escolher para o número mínimo de nós. O requisito de 10 vezes é um limite rígido. Para orientações, consulte o artigo Determine o número máximo de nós.

Objetivo de utilização do armazenamento

O número máximo de terabytes por nó que pode armazenar antes de o Bigtable ser dimensionado. Este objetivo garante que tem sempre nós suficientes para processar as flutuações na quantidade de dados que armazena. Para orientações, consulte o artigo Determine o objetivo de utilização do armazenamento.

Configure a escala automática

Esta secção descreve como escolher os parâmetros de dimensionamento automático. Depois de definir os valores iniciais, monitorize o cluster e ajuste os números, se necessário.

Determine o objetivo de utilização da CPU

Baseie o objetivo de utilização da CPU na sua carga de trabalho única. O objetivo ideal para o seu cluster depende dos requisitos de latência e débito da sua carga de trabalho. Para mais informações, consulte o artigo Planeie a capacidade do Bigtable.

Em geral, se observar uma latência inaceitavelmente elevada, deve diminuir o objetivo de utilização da CPU.

Determine o objetivo de utilização do armazenamento

Se a sua aplicação for sensível à latência, mantenha a utilização do armazenamento abaixo de 60%. Se a sua aplicação não for sensível à latência, pode escolher um objetivo de utilização do armazenamento de 70% ou mais. Para mais informações, consulte o artigo Planeie a capacidade do Bigtable.

Para o dimensionamento automático, a utilização do armazenamento é expressa como o número de bytes de armazenamento por nó, em vez de como uma percentagem. O objetivo de utilização do armazenamento é especificado por nó, mas é aplicado a todo o cluster. Os limites de capacidade para os nós são de 5 TB por nó para armazenamento SSD e de 16 TB por nó para armazenamento HDD.

A tabela seguinte mostra os valores de destino para percentagens de destino típicas de utilização do armazenamento. A Google Cloud consola aceita o valor em TB por nó, e a CLI gcloud, a API e as bibliotecas cliente do Cloud Bigtable aceitam um valor inteiro em GiB por nó.

Percentagem SSD HDD
80% 4 TB ou 4096 GiB 12,8 TB ou 13 107 GiB
70% 3,5 TB ou 3584 GiB 11,2 TB ou 11 468 GiB
60% 3 TB ou 3072 GiB 9,6 TB ou 9830 GiB
50% 2,5 TB ou 2560 GiB 8 TB ou 8192 GiB

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

O valor que escolher como o número máximo de nós deve ser o número de nós que o cluster precisa para processar o tráfego mais intenso da sua carga de trabalho, mesmo que não espere atingir esse volume na maioria das vezes. O Bigtable nunca é dimensionado para mais nós do que o necessário. Também pode pensar neste número como o número mais elevado de nós que está disposto a pagar. Consulte os parâmetros de dimensionamento automático para ver detalhes sobre os valores aceites.

O número máximo tem de permitir o alvo de utilização da CPU definido por si e o alvo de utilização do armazenamento definido pelo Bigtable.

Se estiver a alterar um cluster da atribuição manual para o dimensionamento automático, procure o número mais elevado de nós que o cluster teve no último mês. O máximo de dimensionamento automático deve ser, pelo menos, esse número.

Se estiver a ativar o dimensionamento automático para um novo cluster numa instância existente, use as métricas de outros clusters na instância como referência.

Se tiver uma nova carga de trabalho e não tiver a certeza de como vai crescer, pode estimar o número de nós de que precisa para atingir o objetivo de utilização de armazenamento incorporado e, em seguida, ajustar o número mais tarde.

Para chegar a este número, estime a quantidade de dados que planeia armazenar no cluster e, em seguida, divida esse número pelo objetivo de utilização do armazenamento para o tipo de armazenamento que usa.

Por exemplo, se armazenar 10 TB num cluster de SSD, pode dividir 10 TB por 2,5 TB, que é o objetivo de utilização de armazenamento definido por predefinição para clusters de SSD que usam o dimensionamento automático. O resultado é 4, o que significa que 4 é o número de nós que podem processar essa quantidade de dados e o máximo deve ser um número superior a esse.

Usando a mesma fórmula, os exemplos seguintes mostram o número de nós que pode precisar para alguns exemplos de quantidades de armazenamento:

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

Depois de o cluster estar em funcionamento com o dimensionamento automático ativado, monitorize o cluster e certifique-se de que o valor escolhido para o número máximo de nós é, pelo menos, tão elevado quanto o recommended number of nodes for CPU target e o recommended number of nodes for storage target.

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

Pode definir o mínimo como 1 para garantir que o Bigtable pode ser reduzido para o tamanho mais pequeno e rentável, se possível. O cluster nunca fica demasiado pequeno porque o Bigtable impede automaticamente que a contagem de nós fique abaixo do mínimo necessário para manter os objetivos de utilização da CPU e do armazenamento. Consulte os parâmetros de dimensionamento automático para ver detalhes sobre os valores aceites.

No entanto, em muitos casos, vai querer definir este valor para mais de um. Escolha um número mais elevado ou aumente o número mínimo de nós para as seguintes situações:

  • Tem um evento em breve, como a Cyber Monday, em que espera que o tráfego aumente temporariamente e quer certificar-se de que tem capacidade suficiente.
  • A sua aplicação envia tráfego com picos. Quando são adicionados novos nós, o Bigtable volta a equilibrar automaticamente nos novos nós. Como este processo pode demorar vários minutos, é frequentemente melhor adotar uma abordagem conservadora e escolher um mínimo mais elevado para que o cluster possa acomodar os picos sem problemas.
  • Aumentar o número máximo de nós. O mínimo tem de ser sempre dez por cento ou menos do número máximo de nós. Por exemplo, se definir o máximo como 30, tem de definir o mínimo como, pelo menos, 3.

Se aumentar o valor do número mínimo de nós de um cluster, o Bigtable tenta imediatamente dimensionar o cluster para o novo mínimo. As restrições padrão aplicam-se. No entanto, se uma zona estiver sem nós, não são aprovisionados nós adicionais para cumprir o mínimo configurado. O Bigtable continua a tentar adicionar nós e cria uma entrada de registo de auditoria para cada tentativa falhada até dimensionar com êxito o cluster para o novo número mínimo de nós. O Bigtable não altera o valor configurado nesta situação. Como resultado, pode observar que o número de nós do cluster é inferior ao mínimo até que o dimensionamento esteja concluído.

Otimize as definições

Monitorize a utilização dos nós e ajuste as definições, se necessário, especialmente depois de ativar o dimensionamento automático pela primeira vez.

Conta para replicação

Numa instância que usa a replicação, as definições de escalabilidade automática e a atividade de cada cluster são completamente independentes das dos outros clusters na instância. Tem de configurar o modo de escalabilidade para cada cluster numa instância.

Em geral, para instâncias replicadas, deve ativar o dimensionamento automático para todos os clusters na instância. A configuração do redimensionamento automático é frequentemente a mesma para todos os clusters na instância, mas pode ser diferente consoante o exemplo de utilização, a carga de trabalho e os requisitos de desempenho de cada cluster.

Uma vez que os clusters numa instância replicada fazem algum trabalho adicional para gerir a replicação, deve escolher um número máximo de nós superior ao que escolheria para uma instância de cluster único. Para saber mais, consulte o artigo Replicação e desempenho.

Controlo de acesso

Para configurar o dimensionamento automático, tem de ser um principal numa função que tenha as autorizações create e update para o cluster e a instância que está a configurar.

Monitorização

O Bigtable fornece várias métricas para ajudar a compreender como o ajuste de escala automático do Bigtable está a funcionar à medida que aumenta e diminui a escala para satisfazer os requisitos da carga de trabalho. As métricas também podem ajudar a avaliar se as suas definições são ideais para satisfazer os requisitos de custo e carga de trabalho da sua empresa. Por exemplo, se observar que a contagem de nós de um cluster está frequentemente perto do número máximo de nós, pode considerar aumentar o máximo. Para saber mais sobre a monitorização dos recursos do Bigtable, consulte o artigo Monitorizar uma instância.

As seguintes métricas são apresentadas em gráficos na página de vista geral do cluster na consola. Google Cloud Também pode ver estas métricas através do 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

Registo

O Bigtable emite um registo de auditoria de eventos do sistema sempre que dimensiona um cluster. A entrada do registo é semelhante à seguinte:

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

Pode ver os registos de eventos do sistema de escalabilidade automática na página de vista geral do cluster do Bigtable na Google Cloud consola. Também pode vê-los através do Explorador de registos:

  1. Navegue para o Explorador de registos:

    Aceda ao Explorador de registos

    Selecione o Google Cloud projeto adequado.

  2. No campo Consulta, introduza o seguinte:

    resource.type="audited_resource" resource.labels.service="bigtableadmin.googleapis.com"
    resource.labels.method="AutoscaleCluster"
    
  3. Clique em Executar consulta.

    O painel Resultados da consulta apresenta os registos da última hora.

Para saber mais sobre como ver registos, consulte o artigo Registos na nuvem.

O que se segue?