Capacidade de computação, nós e unidades de processamento

Nesta página, descrevemos a capacidade de computação do Spanner e as duas unidades de medida usadas para quantificá-la: nós e unidades de processamento.

Capacidade de computação

A capacidade de computação define a quantidade de recursos de servidor e armazenamento disponíveis para os bancos de dados em uma instância. Ao criar uma instância, especifique a capacidade dela como unidades de processamento ou nós, com 1.000 unidades de processamento iguais a 1 nó.

A unidade de medida usada não importa, a menos que você esteja criando uma instância com capacidade de computação menor que 1.000 unidades de processamento (1 nó). Nesse caso, use unidades de processamento para especificar a capacidade de computação da instância.

Ao definir ou alterar a capacidade de computação em uma instância, você especifica unidades de processamento em múltiplos de 100 (100, 200, 300 e assim por diante). Quando o número de unidades de processamento atinge 1.000, é possível especificar quantidades maiores como múltiplos de 1.000 unidades de processamento (1.000, 2.000, 3.000 e assim por diante) ou como nós (1, 2, 3 e assim por diante).

As instâncias com menos de 1.000 unidades de processamento são criadas para tamanhos de dados, consultas e cargas de trabalho menores. Elas têm recursos de computação limitados e isso pode resultar em escalonamento e desempenho não lineares para algumas cargas de trabalho, além de apresentar aumentos intermitentes nas latências.

Limites de armazenamento de dados

Conforme detalhado em Cotas e limites, para oferecer alta disponibilidade e baixa latência ao acessar um banco de dados, o Spanner usa a capacidade de computação de uma instância como base para determinar os limites de armazenamento, de acordo com as seguintes diretrizes:

  • Para instâncias com menos de um nó (1.000 unidades de processamento), o Spanner aloca 409,6 GB de dados para cada 100 unidades de processamento no banco de dados.
  • Para instâncias de um nó ou mais, o Spanner aloca 4 TB de dados para cada nó. Uma maior capacidade de armazenamento (10 TB por nó) está disponível em algumas configurações de instâncias regionais e multirregionais do Spanner. Para mais informações, consulte Melhorias de desempenho e armazenamento.

Por exemplo, para criar uma instância para um banco de dados de 300 GB, defina a capacidade de computação como 100 unidades de processamento. Essa quantidade de capacidade de computação mantém a instância abaixo do limite até que o banco de dados cresça para mais de 409,6 GB. Depois que o banco de dados atingir esse tamanho, você precisará adicionar mais 100 unidades de processamento para permitir que ele cresça. Caso contrário, o Spanner pode rejeitar as gravações no banco de dados. Para mais informações, consulte Recomendações para o uso do armazenamento do banco de dados.

O Spanner cobra pelo armazenamento que as instâncias realmente utilizam, e não pela cota total de armazenamento.

Desempenho

Os valores de capacidade de processamento de leitura e gravação de pico que uma determinada quantidade de capacidade de computação podem fornecer dependem da configuração da instância, bem como do design do esquema e das características do conjunto de dados. Veja mais detalhes nas seções Desempenho da configuração regional e Desempenho da configuração multirregional.

Você usa instâncias com menos de 1.000 unidades de processamento para tamanhos de dados, consultas e cargas de trabalho menores. Para cargas de trabalho maiores, os recursos de computação limitados podem resultar em escalonamento e desempenho não lineares, com aumentos intermitentes nas latências.

Capacidade de computação e configurações de instância

Conforme descrito em Configurações regionais e multirregionais, o Spanner distribui uma instância entre zonas de uma ou mais regiões para fornecer alto desempenho e alta disponibilidade. Consequentemente, o Spanner também distribui recursos do servidor fornecidos pela capacidade de computação da instância.

Aqui está um diagrama que ilustra essa distribuição de recursos do servidor.

Duas instâncias criadas em uma configuração de instância regional

Este diagrama descreve duas instâncias com configurações regionais:

  • A Instance-A mostra uma instância de 1.000 unidades de processamento (1 nó) com a distribuição da capacidade de computação que consome recursos do servidor em cada uma das três zonas.
  • A Instance-B mostra uma instância de 2.000 unidades de processamento (2 nós) com a distribuição de capacidade de computação que consome recursos do servidor em cada uma das três zonas.

Observe o seguinte neste diagrama:

  • Para cada instância, o Spanner aloca recursos do servidor em cada zona da configuração regional. Cada recurso de servidor por zona usa a réplica de dados na própria zona. Para mais informações sobre réplicas de dados em configurações de instância, consulte Configurações regionais e multirregionais. Para informações sobre como o Spanner mantém essas réplicas de dados em sincronia, consulte Replicação.

  • Os recursos do servidor para a Instância-A são mostrados em caixas simples, enquanto os recursos para a Instância-B são mostrados em caixas subdivididas em duas partes. Essa diferença mostra que o Spanner aloca recursos de servidor de maneira diferente para instâncias de tamanhos diferentes:

    • Para instâncias de 1.000 unidades de processamento (1 nó) ou menores, o Spanner aloca recursos do servidor em uma única tarefa do servidor por zona.
    • Para instâncias com mais de 1.000 unidades de processamento (1 nó), o Spanner aloca recursos do servidor em várias tarefas do servidor por zona, com uma tarefa para cada 1.000 unidades de processamento. O uso de várias tarefas do servidor por zona melhora o desempenho e permite que o Spanner crie divisões de banco de dados e ofereça um desempenho ainda melhor.

Como aumentar e diminuir a capacidade de computação

Após criar uma instância, é possível aumentar a capacidade de computação dela posteriormente. Na maioria dos casos, também é possível diminuir a capacidade de computação. Existem alguns casos em que não é possível diminuir a capacidade de computação:

  • A remoção da capacidade de computação exigiria que sua instância armazenasse mais de 4 TB de dados por 1.000 unidades de processamento (1 nó).
  • Com base nos padrões de uso históricos, o Spanner criou um grande número de divisões para os dados da instância e, em alguns casos raros, o Spanner não poderia gerenciar as divisões após a remoção da capacidade de computação.

No último caso, tente reduzir a capacidade de computação em quantidades cada vez menores até encontrar a capacidade mínima necessária para o Spanner gerenciar todas as divisões da instância. Se a instância não exigir mais tantas divisões devido a uma alteração nos padrões de uso, o Spanner poderá mesclar algumas divisões e permitir que você tente reduzir a capacidade de computação da instância ainda mais depois de uma ou duas semanas.

Ao remover a capacidade de computação, monitore o uso da CPU e solicite latências no Cloud Monitoring para garantir que a utilização permaneça abaixo de 65% para instâncias regionais e de 45% para cada região em instâncias multirregionais. Pode haver um aumento temporário nas latências de solicitação ao remover a capacidade de computação.

É possível usar o console do Google Cloud, a Google Cloud CLI ou as bibliotecas de cliente para alterar a capacidade de computação.

O Spanner não tem um modo de suspensão. A capacidade de computação do Spanner é um recurso dedicado e, mesmo quando você não está executando uma carga de trabalho, o Spanner executa frequentemente trabalho em segundo plano para otimizar e proteger os dados.

Capacidade de computação versus réplicas

Se você precisar escalonar verticalmente o servidor e os recursos de armazenamento na instância, aumente a capacidade de computação da instância. O aumento da capacidade de computação não aumenta o número de réplicas (que são fixas em uma determinada configuração de instância), mas aumenta os recursos que cada réplica tem na instância. Aumentar a capacidade de computação fornece a cada réplica mais CPU e RAM, o que aumenta a capacidade da réplica, ou seja, mais leituras e gravações por segundo podem ocorrer.

A seguir