Recomendações de dimensionamento e implantação

Para otimizar a capacidade, a latência e a alta disponibilidade das cargas de trabalho do AlloyDB para PostgreSQL, é possível dimensionar e implantar as instâncias primárias e de pool de leitura para cargas de trabalho de processamento de transações on-line (OLTP), processamento analítico on-line (OLAP) e processamento transacional e analítico híbrido (HTAP).

Visão geral

Para ajudar você a melhorar o desempenho do banco de dados, o AlloyDB para PostgreSQL oferece os seguintes recursos integrados:

  • Gerenciamento automático de memória
  • Vácuo automático adaptativo
  • Configurações de desempenho integradas e otimizadas
  • Baixo atraso de replicação
  • Manutenção sem interrupções com inatividade de menos de um segundo para o nó primário e zero inatividade para os nós do pool de leitura durante as operações de escalonamento

Para ajustar o desempenho da instância do AlloyDB para PostgreSQL, é preciso gerenciar o seguinte:

  • Dimensionar corretamente as instâncias primárias e de pool de leitura
  • Atualizar flags que afetam o desempenho

Considerações sobre dimensionamento

Antes de dimensionar a instância do AlloyDB para PostgreSQL, determine o seguinte:

  • Tipo de carga de trabalho:OLTP, OLAP ou HTAP
  • Requisitos de desempenho:requisitos de latência e capacidade de processamento
  • Tamanho de dados esperado:o tamanho dos dados que você planeja armazenar no AlloyDB para PostgreSQL e o tamanho do conjunto de dados ativo.
  • Escala da carga de trabalho:um aumento ou crescimento no tamanho dos dados ao longo do tempo.

Cargas de trabalho de OLTP

É possível implantar o banco de dados do AlloyDB para PostgreSQL como uma instância zonal (nó único) ou como uma instância de alta disponibilidade (dois nós em cada zona). Também é possível adicionar instâncias de pool de leitura e um cluster secundário em outra região para cargas de trabalho distribuídas geograficamente ou para recuperação de desastres (DR).

O AlloyDB para PostgreSQL é implantado usando uma arquitetura distribuída em escala de nuvem com computação e armazenamento desagregados. As gravações são confirmadas assim que os arquivos de registro prévio de escrita (WAL, na sigla em inglês) são persistidos no Regional Storage, enquanto a materialização do bloco é descarregada para o armazenamento.

Da mesma forma, com a arquitetura de cache em várias camadas, os dados são colocados automaticamente entre o cache de buffer, o cache ultrarrápido e o mecanismo de armazenamento inteligente. Devido a essa arquitetura de cache de várias camadas usada no AlloyDB para PostgreSQL, as operações de entrada e saída por segundo (IOPs) não são relevantes no contexto do AlloyDB para PostgreSQL para comparação com outros sistemas de banco de dados.

No entanto, o uso de transações por segundo (TPS)/transações por minuto (TPM) pode fornecer uma comparação significativa para entender a quantidade de dados que podem ser processados pelo AlloyDB para PostgreSQL.

A principal métrica de dimensionamento é o TPS. Para estimar o tamanho necessário do AlloyDB para PostgreSQL, siga estas etapas:

  1. Identifique sua carga de trabalho atual. Se você estiver migrando do PostgreSQL autogerenciado ou de outros bancos de dados comerciais, talvez já tenha o valor de TPS para sua carga de trabalho atual.
  2. Analise suas consultas. Identifique as consultas mais críticas na sua carga de trabalho e determine os requisitos de desempenho delas.
  3. Use uma ferramenta como HammerDB ou pgbench. Essas ferramentas ajudam a comparar o AlloyDB para PostgreSQL e determinar se o tamanho da máquina atende aos requisitos de TPS.
  4. Use o guia de comparativo de mercado do AlloyDB para PostgreSQL OLTP. Este guia fornece dados de performance para várias configurações do AlloyDB para PostgreSQL, para encontrar uma configuração que atenda aos seus requisitos de TPS.
  5. Escolha um tamanho adequado do AlloyDB para PostgreSQL. Considere o tamanho atual dos dados e as expectativas de crescimento futuro.

Diretrizes de tamanho da máquina

A tabela de exemplo a seguir mostra recomendações para dados com comparativo de mercado TPC-C que têm uma proporção de leitura e gravação de aproximadamente 65% de leituras e 35% de gravações. Ao dimensionar uma instância do AlloyDB para PostgreSQL, é preciso ter uma utilização de CPU em estado estável de cerca de 60% a 70% para evitar a sobrecarga de programação do sistema operacional. Isso permite alguma margem para picos na utilização de recursos por aplicativos cliente.

Use as recomendações de dimensionamento na tabela a seguir como diretrizes gerais. Para saber o max_connections máximo recomendado para cada tamanho de máquina, consulte Máximo de conexões simultâneas.

vCPU/Memória Intervalo recomendado de transações/segundo
(30% em cache)
Tamanho de dados de trabalho
recomendado (até 128 TB no total)
2 / 16GB Até 1.000 Até 100 GB
4 / 32GB Até 2.500 Até 250 GB
8/ 64GB Até 4.000 Até 500 GB
16 / 128GB Até 8.000 Até 1 TB
32 / 256GB Até 14.000 Até 3 TB
64 / 512GB Até 20.000 Até 8 TB
96 / 768GB Até 25.000 Até 16 TB
128 / 864GB Maior que 20.000 Até 32 TB

Tipos de implantação

Com base na sua carga de trabalho, é possível implantar o AlloyDB para PostgreSQL apenas como uma instância primária ou primária com instância de pool de leitura.

Somente principal

Escolha a implantação somente principal para as seguintes cargas de trabalho:

  • Muitas gravações com leituras baixas a médias
  • Consultas com muitas leituras e poucas gravações
  • Leitura e gravação OLTP típica (60% a 70% de leituras, 30% a 40% de gravações).

Para mais informações sobre tipos de máquinas, consulte Diretrizes gerais de tamanho de máquina.

Instância principal com pool de leitura

Se você optar por implantar uma instância principal com pool de leitura, considere o seguinte:

  • Se você tiver leituras sensíveis à latência, considere transferir as consultas de leitura para instâncias do pool de leitura. É possível configurar até 20 nós em todas as instâncias do pool de leitura. Para mais informações, consulte Criar uma instância de pool de leitura.
  • Configure várias instâncias de pool de leitura se você tiver mais de um banco de dados, por exemplo, CRM ou Finance na mesma instância. O uso dessa estratégia ajuda no armazenamento em cache e no desempenho de consultas.
  • É possível dimensionar as instâncias primárias e de pool de leitura de maneira diferente com base nos seus requisitos. Para mais informações sobre as práticas recomendadas para instâncias de pool de leitura, consulte Práticas recomendadas para melhorar o desempenho e a disponibilidade do AlloyDB.
  • Adicione mais de um nó por instância do pool de leitura para alta disponibilidade.
  • Ative o mecanismo colunar de forma seletiva em instâncias específicas do pool de leitura para melhorar o desempenho das consultas de leitura. Isso não exige a ativação do mecanismo colunar na instância principal.
Considere usar recursos integrados, como o consultor de índice, para ajudar a adicionar índices que podem melhorar o desempenho da consulta.

Cargas de trabalho OLAP

Para cargas de trabalho OLAP, a principal métrica de dimensionamento é o desempenho da consulta, especialmente consultas que exigem verificações ou agregações completas de tabelas. O AlloyDB para PostgreSQL inclui um mecanismo colunar integrado que ajuda a acelerar as consultas analíticas. Ativar o mecanismo colunar por padrão consome 30% da memória e usa automaticamente dados de cache ultrarrápidos.

Para mais informações sobre como medir o desempenho de OLAP com o AlloyDB para PostgreSQL usando a carga de trabalho TPC-H, consulte o Guia de comparativo de mercado de OLAP do AlloyDB para PostgreSQL.

Tipos de implantação

Com base na sua carga de trabalho, é possível implantar o AlloyDB para PostgreSQL apenas como uma instância primária ou primária com instância de pool de leitura.

Somente principal

Se você implantar uma instância somente principal, considere o seguinte:

  • Use essa implantação para transações com consultas analíticas (HTAP).
  • Ative o mecanismo colunar para ajudar com as consultas OLAP.
  • Considere implantar com uma máquina de 16 vCPUs ou maior que forneça mais memória para armazenar dados colunares.

Principal com pool de leitura

Se você implantar uma instância principal com pool de leitura, considere o seguinte:

  • Se você tiver gravações pesadas e leituras analíticas sensíveis à latência com requisitos de baixo atraso, implante a instância primária com a alta disponibilidade ativada e com instâncias de pool de leitura.
  • Ative o mecanismo colunar em instâncias de pool de leitura em que você executa as consultas analíticas.
  • Configure várias instâncias de pool de leitura se você tiver mais de um banco de dados, por exemplo, CRM ou Finance na mesma instância. O uso dessa estratégia ajuda no armazenamento em cache e no desempenho de consultas.
  • É possível dimensionar as instâncias primárias e de pool de leitura de maneira diferente com base nos seus requisitos. Para mais informações sobre as práticas recomendadas para instâncias de pool de leitura, consulte Práticas recomendadas para melhorar o desempenho e a disponibilidade do AlloyDB.
  • Adicione mais de um nó por instância do pool de leitura para alta disponibilidade.
  • Ative o mecanismo colunar de forma seletiva em instâncias específicas do pool de leitura para melhorar o desempenho das consultas de leitura. Isso não exige a ativação do mecanismo colunar na instância principal.

A seguir