Este documento fornece recomendações de carga de trabalho e implantação para dimensionar instâncias do AlloyDB para PostgreSQL para processamento de transações on-line (OLTP, na sigla em inglês) e cargas de trabalho de processamento analítico on-line (OLAP, na sigla em inglês).
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
- Autolimpeza adaptativa
- Configurações de desempenho integradas otimizadas
- Atraso de replicação baixo
- Manutenção sem interrupções com inatividade de menos de um segundo para o primário e zero para os nós do pool de leitura durante as operações de escalonamento
O ajuste da instância do AlloyDB para PostgreSQL para desempenho inclui o gerenciamento do seguinte:
- Dimensionar as instâncias primárias e de pool de leitura corretamente
- Como atualizar flags que afetam a performance
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:latência e requisitos de throughput
- 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:aumento ou crescimento do 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 (um nó) ou como uma instância altamente disponível (dois nós em cada zona). Opcionalmente, você também pode 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 desagrupados. As gravações são confirmadas assim que os arquivos de registros de gravação antecipada (WAL) são mantidos no armazenamento regional, enquanto a materialização de blocos é transferida para o armazenamento.
Da mesma forma, com a arquitetura de cache em vários níveis, 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 em vários níveis 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 métrica de dimensionamento principal é TPS. Para estimar o tamanho necessário do AlloyDB para PostgreSQL, siga estas etapas:
- Identifique sua carga de trabalho atual. Se você estiver migrando do PostgreSQL autogerido ou de outros bancos de dados comerciais, talvez já tenha o valor de TPS da sua carga de trabalho atual.
- Analise suas consultas. Identifique as consultas mais importantes da sua carga de trabalho e determine os requisitos de desempenho delas.
- Use uma ferramenta como
HammerDB
oupgbench
. Essas ferramentas ajudam a comparar o AlloyDB para PostgreSQL e determinar se o tamanho da máquina atende aos requisitos de TPS. - Use o guia de comparativo de mercado 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.
- 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 e gravação de aproximadamente 65% de leituras e 35% de gravações. Ao dimensionar uma instância do AlloyDB para PostgreSQL, você precisa 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 uma margem para picos na utilização de recursos por aplicativos clientes.
vCPU/memória | Transações/s recomendadas Intervalo (30% em cache) |
Tamanho de dados de trabalho recomendado (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 carga de trabalho, é possível implantar o AlloyDB para PostgreSQL como uma instância principal ou principal com 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 baixas/médias
- Consultas com muitas leituras e poucas gravações
- Leitura/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 Diretriz geral de tamanho de máquinas.
Principal com instância do pool de leitura
Se você optar por implantar uma instância principal com um pool de leitura, considere o seguinte:
- Se você tiver leituras sensíveis à latência, considere descarregar suas consultas de leitura para instâncias de pool de leitura que oferecem um atraso de replicação 25 vezes menor em comparação com o PostgreSQL padrão. É possível configurar até 20 nós em todas as instâncias do pool de leitura.
- Configure várias instâncias do pool de leitura, se você tiver mais de um banco de dados, por exemplo, CRM ou Finanças na mesma instância. O uso dessa estratégia ajuda a melhorar o armazenamento em cache e a performance da consulta.
- É possível dimensionar as instâncias principais 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 a performance 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 de forma seletiva em instâncias específicas de pool de leitura para melhorar a performance da consulta de leitura. Isso não exige a ativação do mecanismo de colunas 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 é a performance da consulta, especialmente consultas que exigem verificações completas de tabelas ou agregações. O AlloyDB para PostgreSQL inclui um mecanismo de colunas 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 do OLAP com o AlloyDB para PostgreSQL usando a carga de trabalho TPC-H, consulte o Guia de comparação de mercado OLAP do AlloyDB para PostgreSQL.
Tipos de implantação
Com base na carga de trabalho, é possível implantar o AlloyDB para PostgreSQL como uma instância principal ou principal com 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 de colunas para ajudar com consultas OLAP.
- Considere implantar com 16 vCPUs ou uma máquina maior que ofereça mais memória para armazenar dados de coluna.
Principal com pool de leitura
Se você implantar uma instância principal com um pool de leitura, considere o seguinte:
- Se você tiver gravações pesadas e leituras analíticas sensíveis à latência com requisitos de baixa latência, implante a instância principal com a HA ativada e com instâncias de pool de leitura.
- Ative o mecanismo de colunas nas instâncias do pool de leitura em que você executa as consultas analíticas.
- Configure várias instâncias do pool de leitura, se você tiver mais de um banco de dados, por exemplo, CRM ou Finanças na mesma instância. O uso dessa estratégia ajuda no armazenamento em cache e na performance da consulta.
- É possível dimensionar as instâncias principais 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 a performance 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 de forma seletiva em instâncias específicas de pool de leitura para melhorar a performance da consulta de leitura. Isso não exige a ativação do mecanismo de colunas na instância principal.
A seguir
- Saiba mais sobre as práticas recomendadas para melhorar a performance e a disponibilidade.
- Guia de comparação OLTP do AlloyDB para PostgreSQL.
- Guia de comparação de OLAP do AlloyDB para PostgreSQL para PostgreSQL.