Esta página descreve como funciona o escalador automático gerido e descreve os custos e as limitações quando usa o escalador automático gerido do Spanner. Também fornece informações para ajudar a determinar como configurar o escalador automático gerido.
Como funciona o redimensionador automático gerido
Quando ativa o escalador automático gerido, o Spanner ajusta automaticamente o tamanho da sua instância. A funcionalidade de escalamento automático gerido reage às alterações na carga de trabalho ou nas necessidades de armazenamento da sua instância à medida que a carga aumenta ou diminui. O dimensionamento automático gerido aumenta a escala, adicionando capacidade de computação à instância, ou diminui a escala, removendo capacidade de computação da instância.
Quando configura o escalador automático gerido, pode 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 nos referirmos a nós ou unidades de processamento.
O escalador automático gerido do Spanner determina a capacidade de computação necessária com base no seguinte:
- Alvo de utilização da CPU de alta prioridade
- Objetivo de utilização do armazenamento
- Limite mínimo
- Limite máximo
Cada dimensão de escalabilidade gera um tamanho de instância recomendado e o Spanner usa automaticamente o mais elevado. Isto significa, por exemplo, que se a sua instância precisar de 10 nós para atingir o objetivo de utilização de armazenamento, mas de 12 nós para atingir o objetivo de utilização da CPU, o Spanner dimensiona a instância para 12 nós.
À medida que a quantidade de capacidade de computação muda, o Spanner otimiza continuamente o armazenamento. Reequilibra os dados em todos os servidores para garantir que o tráfego é distribuído uniformemente e que nenhum servidor individual fica sobrecarregado. Consulte a secção Limitações para mais informações.
Se o escalador automático gerido dimensionar uma instância até ao respetivo limite máximo, mas a carga de trabalho continuar a causar uma utilização da CPU superior à meta, os pedidos de carga de trabalho podem ter uma latência mais elevada ou falhar. Se uma instância for dimensionada até ao respetivo objetivo de capacidade de computação máxima, mas a carga de trabalho precisar de mais armazenamento do que o limite máximo de armazenamento, os pedidos de escrita podem falhar. Para saber se o objetivo máximo foi alcançado, pode ver os registos de eventos do sistema do redimensionador automático gerido na Google Cloud consola na página Estatísticas do sistema. Para mais informações, consulte os limites de armazenamento.
Quando o Spanner reduz verticalmente uma instância, remove a capacidade de computação a uma taxa mais lenta do que quando a aumenta verticalmente, para reduzir qualquer impacto na latência.
Pode optar por ajustar automaticamente as réplicas só de leitura de forma assimétrica. Para mais informações, consulte o artigo Dimensionamento automático assimétrico só de leitura.
Custos
Os custos totais do Spanner podem ser inferiores ou superiores consoante a forma como configurou a instância do Spanner antes de ativar o escalador automático gerido e os limites que definiu para o escalador automático gerido.
Por exemplo, se configurava manualmente a sua instância do Spanner para ter capacidade de computação suficiente para processar cargas de trabalho de pico em qualquer altura, os seus custos com o escalamento automático gerido podem ser inferiores porque reduz a capacidade de computação quando a instância está inativa.
Se configurava manualmente a 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, os seus custos com o escalador automático gerido podem ser mais elevados porque o escalador automático gerido pode aumentar a capacidade de computação quando a instância está ocupada. No entanto, isto oferece aos seus utilizadores um desempenho mais consistente.
Pode limitar o custo máximo da sua instância do Spanner definindo o limite máximo de nós ou unidades de processamento para o nível que quer gastar.
Limitações
As seguintes limitações aplicam-se quando ativa ou altera a funcionalidade de escalabilidade automática gerida numa instância:
- Não pode mover uma instância quando a funcionalidade de dimensionamento automático gerido está ativada. Primeiro, tem de desativar o escalador automático gerido e, em seguida, mover a instância. Depois de mover a instância, pode reativar o escalador automático gerido.
- Tem de definir o limite mínimo na instância de escalamento automático para 1000 unidades de processamento ou mais, ou 1 nó ou mais.
- Quando ativa o dimensionamento automático numa instância existente, a capacidade da instância existente pode ser inferior ao valor do limite mínimo que configura no dimensionamento automático gerido. No entanto, a instância é automaticamente dimensionada até ao valor mínimo configurado quando a inicia. Por exemplo, se a sua instância tiver um nó, mas definir o valor mínimo para dois nós, quando iniciar a instância, esta é automaticamente dimensionada até 2 nós.
- O escalador automático gerido dimensiona a CPU para cargas de trabalho de prioridade elevada de modo a seguir a recomendação de CPU de prioridade elevada do Spanner em caso de perda de uma zona ou uma região. Não tem em consideração a utilização total da CPU. Quando a utilização da CPU é superior a 100%, pode potencialmente causar a degradação do desempenho. Se a sua carga de trabalho for sensível à latência ou ao desempenho, considere personalizar a ferramenta de escalabilidade automática de código aberto para fazer o escalonamento com base na CPU total.
Parâmetros do escalador automático geridos
Quando cria ou edita uma instância e opta por ativar o escalador automático gerido, define os valores apresentados na tabela seguinte.
Parâmetro | Descrição |
---|---|
Alvo de utilização da CPU de alta prioridade | Uma percentagem da capacidade da CPU de alta prioridade da instância. Este valor tem de estar entre 10% e 90%. Quando a utilização da CPU de uma instância excede o alvo que definiu, o Spanner adiciona imediatamente capacidade de computação à instância. Quando a utilização da CPU é substancialmente inferior ao alvo, o Spanner remove a capacidade de computação. Para orientações, consulte Determine o objetivo de utilização da CPU. |
Objetivo de utilização do armazenamento | A percentagem de armazenamento num nó que pode usar antes de o Spanner ser dimensionado. Este objetivo garante que tem sempre capacidade de computação suficiente para processar as flutuações na quantidade de dados que armazena. Este valor tem de estar entre 10 e 99%. Para orientações, consulte o artigo Determine o objetivo de utilização do armazenamento. |
Limite mínimo | A quantidade mais baixa de capacidade de computação para a qual o Spanner reduz a escala da instância. O valor mínimo não pode ser inferior a 10% do valor que definiu para o limite máximo. Por exemplo, se o limite máximo for de 40 nós, o limite mínimo tem de ser, pelo menos, de 4 nós. O requisito de 10% é um limite rígido. Para obter orientações, consulte o artigo Determine o limite mínimo. |
Limite máximo | A quantidade mais elevada de capacidade de computação para a qual o Spanner dimensiona a instância. Para os nós, este valor tem de ser superior a 1 nó (ou 1000 unidades de processamento) e igual ou superior ao número mínimo de nós ou unidades de processamento. O valor não pode ser superior a 10 vezes o número que escolher para a quantidade mínima de capacidade de computação. Este requisito de 10 vezes é um limite rígido. Para receber orientações, consulte a secção Determine o limite máximo. |
Configure o escalador automático gerido
Esta secção descreve como determinar que números escolher para os parâmetros do escalador automático gerido. Depois de definir os valores iniciais, monitorize a sua instância e ajuste os números, se necessário.
Determine o objetivo de utilização da CPU de alta prioridade
O destino ideal para a sua instância depende dos requisitos de latência e débito da sua carga de trabalho. Para ver as nossas recomendações para a utilização máxima da CPU para configurações de instâncias regionais, de duas regiões e de várias regiões, consulte Alertas de utilização elevada da CPU.
O escalador automático gerido considera as cargas de trabalho de prioridade elevada ao dimensionar a utilização da CPU. Não considera a utilização total da CPU. Quando a utilização da CPU é superior a 100%, o desempenho pode degradar-se. Se a sua carga de trabalho for sensível à latência ou ao desempenho, considere personalizar a ferramenta de escalabilidade automática de código aberto para escalar com base na CPU total.
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
Para o dimensionamento automático, o alvo de utilização do armazenamento é expresso como uma percentagem por nó. Para instâncias com 1 nó (1000 unidades de processamento) ou mais, o tamanho de armazenamento está limitado a 10 TiB por nó.
Determine o limite máximo
O valor que escolher como a quantidade máxima de capacidade de computação é igual à quantidade de capacidade de computação de que a instância precisa para processar o tráfego mais intenso, mesmo que não espere atingir esse volume na maioria das vezes. O Spanner nunca é dimensionado para uma capacidade de computação superior à necessária. Também pode considerar este número como a quantidade mais elevada de capacidade de computação que está disposto a pagar. Consulte os parâmetros do dimensionamento automático para ver detalhes sobre os valores aceites.
O limite máximo tem de permitir o objetivo de utilização da CPU e o objetivo de utilização do armazenamento que definir para o dimensionamento automático.
Se estiver a alterar uma instância da alocação manual para o dimensionamento automático gerido, encontre a quantidade mais elevada de capacidade de computação que a instância teve nos últimos um ou dois meses. O limite máximo do escalador automático gerido deve ser, pelo menos, esse valor.
Se estiver a ativar o escalador automático gerido para uma nova instância, consulte as métricas de outras instâncias e use-as como orientação quando definir o limite máximo.
Se tiver uma nova carga de trabalho e não tiver a certeza de como vai crescer, pode estimar a quantidade de capacidade de computação de que precisa para atingir o objetivo de utilização de armazenamento incorporado e, em seguida, ajustar o número mais tarde.
Também tem de saber quanta quota resta no seu nó, porque o escalador automático gerido não pode configurar a sua instância para ter mais capacidade de computação do que a sua quota. Para mais informações, consulte o artigo Limites de nós.
Depois de a instância estar em funcionamento com o dimensionamento automático ativado, monitorize a instância e certifique-se de que o valor escolhido para o limite máximo é, pelo menos, tão elevado quanto o limite recomendado para o alvo de CPU e o limite recomendado para o alvo de armazenamento.
Determine o limite mínimo
Define um limite mínimo para o escalador automático gerido para garantir que a sua instância do Spanner pode ser reduzida para o tamanho mais pequeno e mais rentável. O Spanner impede automaticamente que o número de nós fique abaixo do mínimo necessário para manter os objetivos de utilização da CPU e do armazenamento.
O valor mínimo mais pequeno permitido pelo escalador automático gerido é de 1 nó ou 1000 unidades de processamento. Quando ativa o dimensionamento automático para uma instância existente com uma capacidade inferior ao valor mínimo configurado para o dimensionamento automático gerido, a instância é automaticamente dimensionada para este mínimo quando a inicia.
Depois de iniciar a instância com o escalamento automático gerido, deve fazer um teste inicial para garantir que funciona no tamanho mínimo definido. Deve testar novamente periodicamente para garantir que continua a funcionar conforme esperado.
Para mais informações sobre os valores aceites, consulte os parâmetros do escalador automático gerido neste documento.
Em muitos casos, é recomendável definir o valor mínimo para mais de um. Escolha um número mais elevado ou aumente o limite mínimo para as seguintes situações:
- Tem um evento de pico de escala próximo, no qual espera que o tráfego aumente temporariamente, e quer certificar-se de que tem capacidade de computação suficiente.
- A sua aplicação envia tráfego com picos. Quando adiciona nova capacidade de computação, o Spanner volta a equilibrar automaticamente para usar os novos nós ou unidades de processamento. Uma vez que este processo pode demorar vários minutos, recomendamos que adote uma abordagem conservadora e escolha um mínimo mais elevado. Desta forma, a sua instância acomoda perfeitamente os picos.
- Aumentar a capacidade de computação máxima. O valor mínimo tem de ser sempre dez por cento ou mais do valor alvo de capacidade de computação máximo. Por exemplo, se definir o número máximo de nós como
30
, tem de definir o número mínimo de nós como, pelo menos,3
.
Se aumentar o valor da capacidade de computação mínima numa instância, o Spanner tenta imediatamente dimensionar a instância para o novo mínimo. Aplicam-se as restrições padrão. Quando excede a quota, o seu pedido de alteração da configuração do escalador automático gerido falha e a configuração não é atualizada.
Depois de configurar o escalador automático gerido pela primeira vez e, posteriormente, de forma periódica, teste a instância para garantir que funciona no tamanho mínimo.
Flags de parâmetros e limitações da CLI do Google Cloud
Quando usa a Google Cloud CLI para configurar o escalador automático gerido, existem algumas flags obrigatórias que tem de definir. Existem flags opcionais que usa para indicar se quer usar nós ou unidades de processamento. Para mais informações sobre como criar uma nova instância com o escalador automático gerido ou ativar o escalamento automático gerido numa instância existente, consulte o seguinte:
As seguintes flags são necessárias quando ativa o escalador automático gerido na sua instância:
autoscaling-high-priority-cpu-percent
autoscaling-storage-percent
Se optar por usar nós, também tem de usar as seguintes flags quando ativa o escalador automático gerido:
autoscaling-min-nodes
autoscaling-max-nodes
Se optar por usar unidades de processamento, também tem de usar as seguintes flags quando ativa o escalador automático gerido:
autoscaling-min-processing-units
autoscaling-max-processing-units
As seguintes limitações aplicam-se quando adiciona o escalador automático gerido a uma instância existente através da Google Cloud CLI:
- Não pode usar a flag
--nodes
com as flags--autoscaling-min-nodes
ou--autoscaling-max-nodes
porque a utilização de--nodes
define um número específico de nós em vez de um intervalo de escalabilidade. Da mesma forma, não pode usar a flag--processing-units
com as flagsautoscaling-min-processing-units
ouautoscaling-max-processing-units
porque a utilização de--processing-units
define um número específico de unidades de processamento em vez de um intervalo de escalabilidade. - Não pode misturar as flags para nós e unidades de processamento. Por
exemplo, não pode usar
--autoscaling-max-nodes
comautoscaling-min-processing-units
.
Otimize as definições
Monitorize a utilização da capacidade de computação e ajuste as definições, se necessário, especialmente depois de ativar o escalador automático gerido pela primeira vez. Recomendamos que use a página Estatísticas do sistema na Google Cloud consola.
Escala automática assimétrica só de leitura
Depois de ativar o escalador automático gerido, também pode ativar e dimensionar automaticamente as réplicas de leitura independentemente de outras réplicas. A criação de uma escala automática assimétrica só de leitura permite-lhe controlar os limites de capacidade de computação e os objetivos de utilização da CPU das suas regiões só de leitura com base na respetiva utilização. Isto otimiza os padrões de tráfego de leitura local e melhora a eficiência de custos. Os seguintes parâmetros de configuração do ajuste de escala automático são configuráveis para cada região de réplica só de leitura:
- Limite mínimo de capacidade de computação
- Limite máximo da capacidade de computação
- Alvo de utilização da CPU de alta prioridade
Pode ativar o dimensionamento automático assimétrico e configurar estes parâmetros criando uma nova instância ou atualizando uma instância existente.
Para cada réplica, aplicam-se as seguintes regras quando ativa o ajuste automático assimétrico numa instância existente:
- Se a capacidade de computação atual da réplica estiver entre o mínimo e o máximo do ajuste automático definidos para a região, a capacidade de computação da réplica não se altera.
- Se a capacidade de computação atual da réplica estiver abaixo do mínimo da escala automática definido para a região, a capacidade de computação é ajustada para corresponder ao mínimo da escala automática.
- Se a capacidade de computação atual da réplica estiver acima do máximo da criação de uma escala automática definido para a região, a capacidade de computação é ajustada para corresponder ao máximo da criação de uma escala automática.
Controlo de acesso
Para configurar o escalador automático gerido, tem de ser um principal numa função que tenha autorizações de criação e atualização para a instância que está a configurar.
Monitorização
O Spanner fornece várias métricas para ajudar a compreender o desempenho do escalador automático gerido à 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 cumprir os requisitos de custo e carga de trabalho da sua empresa. Por exemplo, se observar que a quantidade de nós de uma instância 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 Spanner, consulte o artigo Monitorize instâncias com o Cloud Monitoring.
As seguintes métricas são apresentadas em gráficos na página Estatísticas do sistema na Google Cloud consola. Também pode ver estas métricas através do 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
Registo
O Spanner cria um registo de auditoria de eventos do sistema sempre que dimensiona uma instância. Cada registo de eventos tem texto de descrição e metadados relacionados com o evento de ajuste automático de escala.
Veja registos na página Estatísticas do sistema
Pode ver os registos de eventos do sistema de escalamento automático gerido na Google Cloud consola na página Estatísticas do sistema.
Na Google Cloud consola, abra o Spanner:
Selecione a instância com o ajuste de escala automático ativado.
No menu de navegação, clique em Estatísticas do sistema.
Na página Estatísticas do sistema, navegue para a métrica Capacidade de computação.
Clique em Ver registos para abrir o painel de registos.
O painel Registos de capacidade de computação apresenta os registos da última hora.
Se o dimensionamento automático assimétrico só de leitura estiver ativado para a sua instância, o resumo do registo fornece uma descrição e a localização das alterações à capacidade de computação de cada réplica. Por exemplo,
Increased from 1 to 2 nodes in us-central1 to maintain high priority CPU utilization at 80%
. Se não estiver a usar o dimensionamento automático assimétrico, as informações de localização não são fornecidas no resumo do registo. Por exemplo,Increased from 9 to 10 nodes to maintain high priority CPU utilization at 65%
.
Veja registos através do Explorador de registos
Também pode ver os registos através do Explorador de registos:
Na Google Cloud consola, abra o Explorador de registos:
Selecione o Google Cloud projeto adequado.
No campo Consulta, introduza o seguinte:
protoPayload.methodName="AutoscaleInstance"
Pode adicionar a seguinte consulta para filtrar ainda mais os registos:
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"
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. Pode configurar alertas baseados em registos na página Explorador de registos no Google Cloud ou através da API Cloud Monitoring.
O que se segue?
- Saiba como criar uma instância com o escalador automático gerido ativado
- Saiba como modificar uma instância para adicionar o dimensionamento automático ou alterar as definições do dimensionamento automático
- Saiba como alterar uma instância da utilização da escala automática para a escala manual