Recomendações de dimensionamento e implantação

Este documento fornece recomendações de carga de trabalho e implantação para dimensionar instâncias do AlloyDB para PostgreSQL em cargas de trabalho de processamento de transações on-line (OLTP) e processamento analítico on-line (OLAP).

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
  • Autovacuum adaptável
  • Configurações de performance integradas otimizadas
  • Baixo atraso de replicação
  • Manutenção sem interrupções com inatividade de menos de um segundo para o primário e inatividade zero para os nós do pool de leitura durante as operações de escalonamento

Ajustar a instância do AlloyDB para PostgreSQL para melhorar a performance inclui gerenciar o seguinte:

  • Dimensionar corretamente as instâncias primárias e do pool de leitura
  • Atualizar flags que afetam a performance

Considerações sobre dimensionamento

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

  • Tipo de carga de trabalho:OLTP, OLAP ou HTAP
  • Requisitos de performance:requisitos de latência e capacidade
  • Tamanho esperado dos dados:o tamanho dos dados que você planeja armazenar no AlloyDB para PostgreSQL e o tamanho do conjunto de dados ativo.
  • Escala da sua 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 altamente disponível (dois nós em cada zona). Se quiser, adicione 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 registros de gravação antecipada (WAL) são persistidos no armazenamento regional, enquanto a materialização de blocos é descarregada para o armazenamento.

Da mesma forma, com a arquitetura de cache de 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, usar 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 da sua carga de trabalho atual.
  2. Analise suas consultas. Identifique as consultas mais importantes na sua carga de trabalho e determine os requisitos de desempenho delas.
  3. Use uma ferramenta como HammerDB ou pgbench. Essas ferramentas ajudam a fazer o comparativo de mercado do AlloyDB para PostgreSQL e determinar se o tamanho da máquina atende aos seus requisitos de TPS.
  4. Use o guia de comparativo de mercado de OLTP do AlloyDB para PostgreSQL. Este guia fornece dados de desempenho 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 tem uma proporção de leitura/gravação de aproximadamente 65% de leituras e 35% de gravações. Ao dimensionar uma instância do AlloyDB para PostgreSQL, procure ter uma utilização constante da CPU de cerca de 60 a 70% para evitar a sobrecarga de programação do sistema operacional. Isso permite uma margem para picos no uso de recursos por aplicativos cliente.

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

Tipos de implantação

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

Somente as principais

Escolha a implantação somente primária para as seguintes cargas de trabalho:

  • Gravação intensa com leituras de baixa a média
  • Consultas com muitas leituras e poucas gravações
  • OLTP típico de leitura/gravação (60 a 70% de leituras, 30 a 40% de gravações).

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

Principal com instância do 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 descarregar suas 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 Finanças na mesma instância. Usar essa estratégia ajuda no armazenamento em cache e no desempenho da consulta.
  • É possível dimensionar as instâncias principais e do 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 de colunas seletivamente 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 você a adicionar índices que podem melhorar o desempenho da consulta.

Cargas de trabalho de OLAP

Para cargas de trabalho de OLAP, a principal métrica de dimensionamento é o desempenho da consulta, especialmente as que exigem verificações completas de tabelas ou agregações. O AlloyDB para PostgreSQL inclui um mecanismo colunar integrado que ajuda a acelerar as consultas analíticas. A ativação do 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 a performance de OLAP com o AlloyDB para PostgreSQL usando a carga de trabalho TPC-H, consulte o Guia de comparativos 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 como uma instância principal ou principal com uma instância de pool de leitura.

Somente as principais

Se você implantar uma instância somente primária, considere o seguinte:

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

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 principal com a alta disponibilidade ativada e com instâncias de pool de leitura.
  • Ative o mecanismo colunar nas instâncias do pool de leitura em que você executa suas 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 Finanças na mesma instância. Usar essa estratégia ajuda no armazenamento em cache e no desempenho da consulta.
  • É possível dimensionar as instâncias principais e do 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 de colunas seletivamente 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