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

Esta página descreve a capacidade de computação do Spanner e as duas unidades de medida usadas para a quantificar: nós e unidades de processamento.

Capacidade de computação

Quando cria uma instância, escolhe uma configuração da instância e uma quantidade de capacidade de computação para a instância. A capacidade de computação da sua instância tem as seguintes características:

  • Determina a quantidade de recursos de servidor e armazenamento disponíveis para as bases de dados na sua instância, incluindo a carga do disco. A carga do disco aplica-se apenas a cargas de trabalho que acedem a dados armazenados no armazenamento HDD. Para mais informações, consulte o artigo Vista geral do armazenamento em camadas.
  • É medido em unidades de processamento (UPs) ou nós, sendo que 1000 UPs equivalem a 1 nó.

    • Um nó ou 1000 PUs é uma unidade lógica de capacidade de computação e não representa um único servidor físico. Os recursos de computação para cada nó são distribuídos por várias máquinas físicas subjacentes ou servidores. O número de servidores por nó depende da configuração da instância. Por exemplo, uma instância regional usa, pelo menos, três servidores por nó, enquanto uma instância multirregional usa, pelo menos, cinco. Para mais informações, consulte o artigo Calcule a capacidade e as configurações de instâncias.
    • Quando define ou altera a capacidade de computação numa instância, tem de especificar PUs em múltiplos de 100 (por exemplo, 100, 200, 300). Quando o número de UPs atinge 1000, pode especificar quantidades maiores como múltiplos de 1000 UPs (por exemplo, 1000, 2000, 3000) ou como nós (por exemplo, 1, 2, 3).

O Spanner disponibiliza a capacidade de computação especificada (replicada) na sua totalidade em cada zona que aloja uma réplica dos seus dados. Por exemplo, se aprovisionar 1000 UPs para uma instância regional, que normalmente tem réplicas em três zonas, cada uma dessas três zonas tem as 1000 UPs completas de capacidade de computação disponíveis para publicar a respetiva réplica. O Spanner não divide nem distribui as UPs totais entre as zonas. A unidade de medida que usa não é importante, a menos que esteja a criar uma instância cuja capacidade de computação seja inferior a 1000 PUs (1 nó). Neste caso, tem de usar PUs para especificar a capacidade de computação da instância.

As instâncias com menos de 1000 UPs são criadas para tamanhos de dados, consultas e cargas de trabalho mais pequenos. Têm recursos de computação limitados, o que pode resultar numa escalabilidade não linear e em problemas de desempenho para algumas cargas de trabalho. Estas instâncias também podem sofrer aumentos intermitentes nas latências.

Disponibilidade do Spanner

O Spanner foi concebido para alta disponibilidade. Uma vez que a capacidade de computação de cada instância está distribuída por vários servidores em diferentes zonas, o Spanner é resiliente à falha de qualquer servidor. A perda de um servidor individual não constitui uma falha do nó. O Spanner gere automaticamente os respetivos recursos subjacentes para oferecer disponibilidade contínua à sua instância.

Limites de armazenamento de dados

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

  • Para instâncias inferiores a 1 nó (1000 UPs), o Spanner atribui 1024,0 GiB de dados por cada 100 UPs na base de dados.
  • Para instâncias de 1 nó ou mais, o Spanner atribui 10 TiB de dados a cada nó.

Por exemplo, para criar uma instância para uma base de dados de 300 GB, pode definir a respetiva capacidade de computação para 100 PUs. Esta quantidade de capacidade de computação mantém a instância abaixo do limite até que a base de dados cresça para mais de 1024,0 GiB. Depois de a base de dados atingir este tamanho, tem de adicionar mais 100 PUs para permitir o crescimento da base de dados. Caso contrário, o Spanner pode rejeitar gravações na base de dados. Para mais informações, consulte as recomendações para a utilização do armazenamento da base de dados.

O Spanner fatura o armazenamento que as instâncias realmente usam e não a respetiva atribuição de armazenamento total.

Desempenho

Os valores máximos de débito de leitura e gravação que uma determinada quantidade de capacidade de computação pode fornecer dependem da configuração da instância, bem como da estrutura do esquema e das caraterísticas do conjunto de dados. Para mais informações, consulte a Vista geral de desempenho.

Usa instâncias com menos de 1000 PUs para tamanhos de dados, consultas e cargas de trabalho mais pequenos. Para cargas de trabalho maiores, os recursos de computação limitados podem resultar num desempenho e escalabilidade não lineares, com aumentos intermitentes nas latências.

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

Conforme descrito nas configurações regionais, de duas regiões e multirregionais, o Spanner distribui uma instância por zonas de uma ou mais regiões para oferecer um elevado desempenho e alta disponibilidade. Consequentemente, o Spanner também distribui os recursos do servidor fornecidos pela capacidade de computação da instância.

Segue-se um diagrama que ilustra esta distribuição de recursos do servidor.

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

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

  • Instance-A mostra uma instância de 1000 UPs (1 nó) com a respetiva distribuição da capacidade de computação a consumir recursos do servidor em cada uma das três zonas.
  • Instance-B mostra uma instância de 2000 UPs (2 nós) com a respetiva distribuição da capacidade de computação a consumir recursos do servidor em cada uma das três zonas.

Tenha em atenção o seguinte neste diagrama:

  • Para cada instância, o Spanner atribui recursos do servidor em cada zona da configuração regional. Cada recurso de servidor por zona usa a réplica de dados na respetiva zona. Para obter informações sobre réplicas de dados em configurações de instâncias, consulte o artigo Configurações regionais, de duas regiões e de várias regiões. Para informações sobre como o Spanner mantém estas réplicas de dados sincronizadas, consulte o artigo Replicação.

  • Os recursos do servidor para a instância A são apresentados em caixas únicas, enquanto os recursos para a instância B são apresentados em caixas subdivididas em duas partes. Esta diferença ilustra que o Spanner atribui recursos do servidor de forma diferente para instâncias de tamanhos diferentes:

    • Para instâncias de 1000 UPs (1 nó) e inferiores, o Spanner atribui recursos do servidor numa única tarefa do servidor por zona.
    • Para instâncias com mais de 1000 UPs (1 nó), o Spanner atribui recursos do servidor em várias tarefas do servidor por zona, com uma tarefa para cada 1000 UPs. A utilização de várias tarefas de servidor por zona oferece um melhor desempenho e permite que o Spanner crie divisões da base de dados e ofereça um desempenho ainda melhor.

Altere a capacidade de computação

Depois de criar uma instância, pode aumentar a respetiva capacidade de computação mais tarde. Na maioria dos casos, os pedidos são concluídos em poucos minutos. Em raras ocasiões, uma expansão pode demorar até uma hora a ser concluída.

Pode reduzir a capacidade de computação de uma instância do Spanner, exceto nos seguintes cenários:

  • Não pode armazenar mais de 10 TiB de dados por nó (1000 unidades de processamento).

  • Existem um grande número de divisões para os dados da sua instância. Neste cenário, o Spanner pode não conseguir gerir as divisões depois de reduzir a capacidade de computação. Pode tentar reduzir a capacidade de computação em quantidades progressivamente menores até encontrar a capacidade mínima de que o Spanner precisa para gerir todas as divisões da instância.

    O Spanner pode criar um grande número de divisões para se adaptar aos seus padrões de utilização. Se os seus padrões de utilização mudarem, após uma ou duas semanas, o Spanner pode unir algumas divisões e pode tentar reduzir a capacidade de computação da instância.

Quando remover capacidade de computação, monitorize a utilização da CPU e as latências de pedidos no Cloud Monitoring para garantir que a utilização da CPU permanece abaixo de 65% para instâncias regionais e 45% para cada região em instâncias multirregionais. Pode ocorrer um aumento temporário nas latências de pedidos durante a remoção da 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 não está a executar uma carga de trabalho, o Spanner realiza frequentemente trabalho em segundo plano para otimizar e proteger os seus dados.

Pode usar a Google Cloud consola, a CLI do Google Cloud ou as bibliotecas do cliente do Spanner para alterar a capacidade de computação. Para mais informações, consulte o artigo Altere a capacidade de computação.

Capacidade de computação versus réplicas

Se precisar de aumentar os recursos de servidor e armazenamento na sua instância, aumente a capacidade de computação da instância. Tenha em atenção que o aumento da capacidade de computação não aumenta o número de réplicas (que são fixas para uma determinada configuração de instância), mas sim os recursos que cada réplica tem na instância. O aumento da capacidade de computação dá a cada réplica mais CPU e RAM, o que aumenta o débito da réplica (ou seja, podem ocorrer mais leituras e escritas por segundo).

O que se segue?