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

Nesta página, descrevemos a capacidade de computação do Cloud 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 que estão 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, é necessário usar unidades de processamento para especificar a capacidade de computação da instância.

Ao definir a capacidade de computação, ao criar uma instância pela primeira vez ou posteriormente, ao aumentar ou diminuir sua capacidade, você especifica quantidades de até 1.000 unidades de processamento em múltiplos de 100 unidades de processamento (100, 200, 300 e assim por diante) e você especificar quantidades maiores em 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 consultas, cargas de trabalho e tamanhos de dados menores. Eles têm recursos de computação limitados e, portanto, podem resultar em escalonamento e desempenho não lineares para algumas cargas de trabalho e podem enfrentar um aumento intermitente nas latências.

Limites de armazenamento de dados

Conforme detalhado em Cotas e limites, para fornecer alta disponibilidade e baixa latência para acessar um banco de dados, o Cloud Spanner define limites de armazenamento com base na capacidade de computação de uma instância:

  • Para instâncias menores que 1 nó (1.000 unidades de processamento), o Cloud Spanner recebe 409,6 GB de dados para cada 100 unidades de processamento no banco de dados.
  • Para instâncias de um nó e mais, o Cloud Spanner aloca 4 TB de dados para cada nó.

Por exemplo, para criar uma instância de um banco de dados de 300 GB, é possível definir a capacidade computacional como 100 unidades de processamento. Essa quantidade de capacidade de computação manterá a instância abaixo do limite até que o banco de dados aumente para mais de 409,6 GB. Depois que o banco de dados atingir esse tamanho, você precisará adicionar mais 100 unidades de processamento para que o banco de dados possa crescer. Caso contrário, as gravações no banco de dados podem ser rejeitadas. Para mais informações, consulte Recomendações para a utilização do armazenamento do banco de dados.

O Cloud Spanner cobra pelo armazenamento que as instâncias realmente usam, não pela cota total.

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.

As instâncias com menos de 1.000 unidades de processamento são destinadas a consultas, cargas de trabalho e tamanhos de dados menores. Os recursos de computação limitados podem resultar em escalonamento e desempenho não lineares para cargas de trabalho maiores, com aumento intermitente nas latências.

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

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

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:

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

Observe o seguinte neste diagrama:

  • Para cada instância, os recursos do servidor são alocados em cada zona da configuração regional. Cada recurso de servidor por zona usa a réplica de dados na zona. Para informações sobre réplicas de dados nas configurações de instâncias, consulte Configurações regionais e multirregionais. Para informações sobre como o Cloud Spanner mantém essas réplicas de dados sincronizadas, 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 ilustra que o Cloud Spanner aloca recursos de servidor de maneira diferente para instâncias de tamanhos diferentes:

    • Para instâncias com 1.000 unidades de processamento (1 nó) e menores, o Cloud Spanner aloca recursos de servidor em uma única tarefa do servidor por zona.
    • Para instâncias com mais de 1.000 unidades de processamento (1 nó), o Cloud Spanner aloca recursos de servidor em várias tarefas de servidor por zona, com uma tarefa para cada 1.000 unidades de processamento. O uso de várias tarefas de servidor por zona oferece um desempenho melhor e permite que o Cloud Spanner crie divisões de banco de dados e forneç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. Há alguns casos em que não é possível diminuir a capacidade de computação:

  • A remoção da capacidade de computação exige que a instância armazene mais de 4 TB de dados a cada 1.000 unidades de processamento (1 nó).
  • Com base nos padrões históricos de uso, o Cloud Spanner criou um grande número de divisões nos dados da instância, e, em alguns raros casos, o Cloud Spanner não consegue gerenciar as divisões depois da remoção dos nós.

No último caso, é possível tentar reduzir a capacidade de computação progressivamente em valores menores até encontrar a capacidade mínima que o Cloud Spanner precisa para 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 Cloud Spanner poderá mesclar algumas divisões e permitir que você tente reduzir ainda mais a capacidade de computação da instância depois de uma ou duas semanas. de dados.

Ao remover nós, monitore a utilização da CPU e as latências de solicitação em Monitoramento do Cloud para garantir que a utilização da CPU permaneça abaixo de 65% para instâncias regionais e 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.

Use o Console, a CLI do Google Cloud ou as bibliotecas de cliente para alterar a capacidade de computação.

O Cloud Spanner não tem um modo de suspensão. A capacidade de computação do Cloud Spanner é um recurso dedicado e, mesmo quando você não está executando uma carga de trabalho, o Cloud Spanner frequentemente executa um trabalho em segundo plano para otimizar e proteger seus 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. Observe que 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 oferece a cada réplica mais CPU e RAM, o que aumenta a capacidade de processamento da réplica (ou seja, mais leituras e gravações por segundo podem ocorrer).

A seguir