Escalonamento automático
Nesta página, explicamos como funciona o escalonamento automático. Antes de ler esta página, você precisa conhecer a Visão geral do Bigtable e as Instâncias, clusters e nós.
No Bigtable, as instâncias são contêineres para clusters, que são recursos específicos de 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 Cloud de Confiance usando gcloud ou
a biblioteca de cliente do Cloud Bigtable para Java.
Quando usar o escalonamento automático
Recomendamos que você ative o escalonamento automático na maioria dos casos. Os benefícios do escalonamento automático incluem:
- 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 por si só 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, use o escalonamento automático e ajuste as configurações antes dos bursts planejados. Consulte Atraso ao reequilibrar os nós para detalhes.
Camada na memória e escalonamento automático
Os clusters em instâncias da edição Enterprise Plus podem usar a camada na memória. A camada na memória do Bigtable usa o escalonamento vertical totalmente gerenciado para capacidade de processamento, o que permite que os clusters respondam quase instantaneamente a picos no tráfego de leitura de pontos. O escalonamento vertical ajusta cada nó automaticamente para acomodar as demandas de carga de trabalho e se integra ao escalonamento automático do Bigtable. Para mais informações sobre os limites de escalonamento vertical e a capacidade de processamento do nível na memória, consulte Noções básicas sobre desempenho.
Quando a capacidade do nível na memória atinge o limite, o Bigtable escalona automaticamente o cluster de maneira horizontal de acordo com a configuração de escalonamento automático.
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 as necessidades de armazenamento do cluster flutuam, o Bigtable escalona verticalmente, adicionando nós ao cluster, ou reduz escala vertical, removendo nós do cluster.
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 nó é adicionado a um cluster pequeno, como um cluster de um nó, pode haver um aumento temporário na latência à medida que o cluster é reequilibrado. Isso ocorre porque o nó adicional dobra proporcionalmente o tamanho do cluster. Da mesma forma, se um cluster diminuir de tamanho de dois nós para um nó, poderá ocorrer alguma latência.
Quando um cluster é reduzido escala vertical, os nós são removidos em uma taxa mais lenta do que quando são escalonados 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 mais informações, consulte 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. Se o escalonamento de nós em 2X estiver ativado (o padrão para o Enterprise Plus), esse número precisará ser par. 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 seja 40, o número mínimo de nós precisa ser pelo menos 4. O requisito de 10% é um limite absoluto. Para mais informações, consulte 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. Se o escalonamento de nós em 2X estiver ativado (o padrão para o Enterprise Plus), esse número precisará ser par. 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. O requisito de 10x é um limite absoluto. Para mais informações, consulte 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 em clusters SSD ou HDD 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 mais informações, consulte Determinar o objetivo de uso do armazenamento. Essa meta não inclui o nível de acesso infrequente. |
| Uso combinado de SSD e acesso infrequente |
O número máximo de terabytes por nó que podem ser armazenados em clusters SSD e de acesso infrequente 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 mais informações, consulte a seção Armazenamento em níveis e escalonamento automático deste documento. |
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. Para mais informações, consulte Planejar sua capacidade do Bigtable.
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 informações, consulte Planejar a capacidade do Bigtable.
Para o escalonamento automático, a utilização do armazenamento é expressa como o número de bytes de armazenamento compactado por nó no disco, 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 Cloud de Confiance 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 |
Armazenamento em níveis e escalonamento automático
O armazenamento em níveis (pré-lançamento) não afeta o escalonamento automático de SSD descrito na seção Determinar a meta de utilização do armazenamento deste documento. Quando você ativa o acesso infrequente como parte do armazenamento em níveis, o escalonamento automático também garante que o SSD combinado e o armazenamento de acesso infrequente não excedam o limite de armazenamento por nó, dependendo da edição. Quando o limite é atingido, o Bigtable faz o escalonamento vertical automaticamente.
- Edição Enterprise: o limite é de 32 TB por nó.
- Edição Enterprise Plus: o limite é de 32 TB por nó ou 64 TB por nó.
Por exemplo, em um cluster SSD, se você definir uma meta de utilização de armazenamento de 2,5 TB (50%) por nó, e o uso de acesso infrequente for alto o suficiente para ultrapassar o limite de uso do armazenamento em níveis, o Bigtable vai adicionar nós. Isso acontece mesmo que o uso do SSD permaneça dentro da meta de 50%.
A tabela a seguir ajuda a entender como o escalonamento automático recomenda uma contagem de nós com base no uso do SSD e do acesso infrequente:
| Cenário | Meta de uso do armazenamento | Porcentagem de utilização | Uso de SSD | Uso de acesso pouco frequente | Armazenamento combinado de SSD e acesso infrequente | Contagem de nós recomendada |
|---|---|---|---|---|---|---|
| O uso de SSD está dentro do intervalo desejado, e não há uso de acesso infrequente. | 5 TB | 100% | Menos de 5 TB | 0 TB | Menos de 5 TB | 1 |
| O uso de SSD excede o limite de armazenamento por nó. | 5 TB | 100% | 6 TB | 0 TB | 6 TB | 2 |
| O uso de SSD e de acesso infrequente estão dentro do limite de armazenamento em níveis. | 5 TB | 100% | 5 TB | 27 TB | 32 TB | 1 |
| O uso do armazenamento em níveis excede o limite do armazenamento em níveis. | 5 TB | 100% | 5 TB | 28 TB | 33 TB | 2 |
| O uso de SSD quase excede a meta de uso de SSD, e não há uso de acesso infrequente. | 3 TB | 60% | 3 TB | 0 TB | 3 TB | 1 |
| O uso de SSD quase excede a meta de uso de SSD, e o uso em níveis quase excede o limite de armazenamento em níveis. | 3 TB | 60% | 3 TB | 29 TB | 32 TB | 1 |
| O uso do SSD excede a meta de armazenamento do SSD, e não há uso de acesso infrequente. | 2,5 TB | 50% | 4 TB | 0 TB | 4 TB | 2 |
| O uso escalonado excede o limite de armazenamento escalonado. | 2,5 TB | 50% | 2 TB | 31 TB | 33 TB | 2 |
Para mais informações sobre o armazenamento em níveis, consulte Visão geral do armazenamento em níveis.
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. Para detalhes sobre os valores aceitos, consulte Parâmetros de escalonamento automático.
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.
Se você ativou o armazenamento em níveis, considere o limite de armazenamento de 32 TB por nó (Enterprise) ou 64 TB (Enterprise Plus). Mesmo que o uso de SSD seja baixo, um grande volume de dados no nível de acesso infrequente pode acionar o escalonamento de nós.
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
É possível definir o mínimo como 1 para garantir que o Bigtable possa reduzir escala vertical para o menor tamanho 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 de pico de escalonamento em breve, quando espera que o tráfego aumente temporariamente, e quer garantir que tenha capacidade 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
Depois de ativar o escalonamento automático, é importante monitorar o comportamento dele e ajustar as configurações conforme necessário. Use as métricas de monitoramento para observar o seguinte:
- Contagens de nós recomendadas:preste muita atenção às métricas
recommended_node_count_for_cpuerecommended_node_count_for_storage. Essas métricas indicam o número ideal de nós com base nas suas metas de utilização de CPU e armazenamento, respectivamente. - Contagem de nós provisionados:compare as contagens de nós recomendadas com o número real de nós provisionados. Se o cluster estiver usando consistentemente mais nós do que o recomendado, considere reduzir o número mínimo de nós para diminuir os custos.
- Número máximo de nós:verifique se o número máximo de nós é alto o suficiente para permitir que o cluster seja escalonar verticalmente para atender à demanda. Se você notar que o cluster está atingindo com frequência a contagem máxima de nós, aumente-a para fornecer mais capacidade.
Também é possível ajustar a meta de utilização da CPU para melhorar o desempenho. Se você observar problemas de latência, talvez seja necessário reduzir a meta de utilização da CPU para garantir que o cluster seja escalonado verticalmente de maneira mais agressiva quando a demanda aumentar. Por outro lado, se o cluster estiver consistentemente superprovisionado e a latência for aceitável, considere aumentar a meta de CPU.
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 um principal em um papel que tenha as
permissões create e update
para o cluster e a instância que 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 Cloud de Confiance . Também é possível visualizar essas métricas usando o Cloud Monitoring.
bigtable.googleapis.com/cluster/autoscaling/min_node_countbigtable.googleapis.com/cluster/autoscaling/max_node_countbigtable.googleapis.com/cluster/autoscaling/recommended_node_count_for_cpubigtable.googleapis.com/cluster/autoscaling/recommended_node_count_for_storage- Somente Enterprise Plus:
bigtable.googleapis.com/memory_layer/request_unit_usage
Logging
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 logs de eventos de escalonamento automático na página de visão geral do cluster do Bigtable no console do Cloud de Confiance . Também é possível visualizá-los usando o Explorador de registros:
Acesse a Análise de registros:
Acessar a Análise de registros.
Selecione o projeto do Cloud de Confiance apropriado.
No campo Consulta, insira:
resource.type="audited_resource" resource.labels.service="bigtableadmin.googleapis.com" resource.labels.method="AutoscaleCluster"Clique em Run query.
O painel Resultados da consulta exibirá os registros da última hora.
Para saber mais sobre como visualizar registros, consulte Cloud Logging.