Escalonamento automático
Esta página explica como o escalonamento automático funciona. Antes de ler esta página, familiarize-se com 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, recursos de locais específicos 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
Recomendamos ativar 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 sozinho pode não funcionar bem para os tipos de carga de trabalho a seguir, porque, embora o Bigtable adicione nós rapidamente quando o tráfego aumenta, 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 mais 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 nó é adicionado a um cluster pequeno, como um cluster de um nó, pode ocorrer 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 o tamanho de um cluster diminuir de dois para um nó, pode ocorrer alguma latência.
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. Para mais informações, consulte Planejar a 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 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
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 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:
Acesse o Explorador de registros:
Acesse o Explorador de registros
Selecione o projeto do Google Cloud 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.