Gerenciar grupos de parâmetros PostgreSQL
Um grupo de parâmetros é um conjunto de configurações aplicáveis a uma ou mais instâncias PostgreSQL, facilitando ajustes centralizados sem a necessidade de alterar servidores individualmente.
Por exemplo:
O parâmetro shared_buffers define a quantidade de memória utilizada pelo PostgreSQL para cache de dados.
- 🖥️ Console
- >_ CLI
Usando o Console
Criar grupo de parâmetros
- Acesse Database > Grupos de Parâmetros.
- Clique em Criar grupo de parâmetros.
- Selecione o sistema de gerenciamento e a versão (PostgreSQL 16).
- Defina o nome e a descrição.
- Clique em Criar grupo de parâmetros.
Edição e exclusão de grupo de parâmetros
- Para editar: clique em Mais opções > Detalhes para alterar nome e descrição.
- Para excluir: clique em Excluir e confirme digitando o nome do grupo.
A exclusão é permanente e não pode ser desfeita.
Edição dos parâmetros
- Acesse Grupos de Parâmetros e clique em Detalhes do grupo desejado.
- Edite o parâmetro desejado.
- Instâncias associadas devem ser reiniciadas para aplicar as mudanças.
Para redefinir um parâmetro para o valor padrão, use a opção Redefinir.
Usando a CLI
Criar grupo de parâmetros
mgc dbaas parameter-groups create --description="[descrição]" --name="[nome-novo-grupo]" --engine-id="[engine-id]"
Excluir grupo de parâmetros
mgc dbaas parameter-groups delete --parameter-group-id="[parameter-group-id]" --parameter-id="[parameter-id]"
Criando parâmetros em um grupo
mgc dbaas parameter-groups parameters create --parameter-group-id="[parameter-group-id]" --name="[parameter-name]" --value="[parameter-value]"
Editando parâmetros de um grupo
mgc dbaas parameter-groups parameters update --parameter-group-id="[parameter-group-id]" --parameter-id="[parameter-id]" --value="[parameter-value]"
Consultar os parâmetros de um grupo
mgc dbaas parameter-groups parameters list [parameter-group-id]
Edição dos parâmetros
Após conectado ao PostgreSQL, os parâmetros podem ser ajustados utilizando comandos SQL como:
Verificação de parâmetros
SHOW max_connections;
SHOW shared_buffers;
Parâmetros de Configuração
Os parâmetros abaixo representam os parâmetros atualmente disponíveis para configuração no DBaaS PostgreSQL. Cada parâmetro inclui tags de compatibilidade de versão: P15 (PostgreSQL 15), P16 (PostgreSQL 16) e P17 (PostgreSQL 17).
1. Conexões
| Nome do Parâmetro | Descrição e Observações |
|---|---|
max_connections P15 P16 P17 | Tipo: integer Intervalo: 1 - 262.143 Padrão: 100 Descrição: Determina o número máximo de conexões simultâneas com o servidor de banco de dados. Recomendação: Dimensione conforme necessidade da aplicação. Se > 200 conexões, use connection pooling (PgBouncer). Cada conexão consome ~5-10MB de memória. |
idle_in_transaction_session_timeout P15 P16 P17 | Tipo: integer (unidade: ms) Intervalo: 0 - 2.147.483.647 Padrão: 0 Descrição: Encerra sessões que permanecem ociosas dentro de uma transação por mais tempo que o definido. Recomendação: Defina um valor entre 60.000 e 300.000ms para evitar sessões presas segurando locks e recursos. |
2. Memória
| Nome do Parâmetro | Descrição e Observações |
|---|---|
shared_buffers P15 P16 P17 | Tipo: integer (unidade: 8kB) Intervalo: 16 - 2.147.483.647 Padrão: 32.768 (256MB) Descrição: Define a quantidade de memória utilizada pelo PostgreSQL para cache de dados. Esta é a memória usada para cachear dados de tabelas e índices para todas as conexões. Recomendação: Defina como 25% da memória total em servidores dedicados. Ex.: em sistema de 32GB, defina para ~8GB (1.048.576 blocos de 8kB). Valores maiores reduzem I/O de disco. |
work_mem P15 P16 P17 | Tipo: integer (unidade: kB) Intervalo: 64 - 2.147.483.647 Padrão: 4.096 (32MB) Descrição: Especifica a quantidade de memória para operações de ordenação internas e tabelas hash antes de escrever em arquivos temporários no disco. Recomendação: Defina como (RAM_total - shared_buffers) / (max_connections * 2). Ex.: 32GB RAM com 100 conexões: (32768-8192)/(100*2) = 122MB. Ajuste conforme operações de agregação. |
maintenance_work_mem P15 P16 P17 | Tipo: integer (unidade: kB) Intervalo: 1.024 - 2.147.483.647 Padrão: 65.536 (512MB) Descrição: Especifica a quantidade máxima de memória para operações de manutenção como VACUUM, CREATE INDEX e ALTER TABLE. Recomendação: Defina como 5-10% da memória do sistema. Ex.: sistema de 32GB: 1.6-3.2GB. Valores maiores aceleram operações de manutenção. |
effective_cache_size P15 P16 P17 | Tipo: integer (unidade: 8kB) Intervalo: 1 - 2.147.483.647 Padrão: 524.288 (4GB) Descrição: Define o tamanho total assumido de cache em disco disponível para uma única query. Usado pelo planejador para escolher entre index scan e sequential scan. Recomendação: Defina como 50-75% da memória total (shared_buffers + cache do SO). Ex.: sistema de 32GB: 16-24GB. Valores maiores favorecem index scans. |
temp_buffers P15 P16 P17 | Tipo: integer (unidade: 8kB) Intervalo: 100 - 1.073.741.823 Padrão: 1.024 (8MB) Descrição: Define a quantidade máxima de memória temporária usada por sessão para tabelas temporárias. Recomendação: Aumente apenas se houver uso intenso de tabelas temporárias; valores altos em muitas sessões podem elevar bastante o consumo de memória. |
max_stack_depth P15 P16 P17 | Tipo: integer (unidade: kB) Intervalo: 100 - 7.680 Padrão: 2.048 Descrição: Define a profundidade máxima segura da pilha de execução do servidor. Recomendação: Mantenha próximo ao padrão, ajustando somente quando orientado pela plataforma ou por requisitos específicos de funções recursivas. |
3. Write-Ahead Log (WAL)
| Nome do Parâmetro | Descrição e Observações |
|---|---|
max_wal_size P15 P16 P17 | Tipo: integer (unidade: MB) Intervalo: 2 - 2.147.483.647 Padrão: 1.024 (1GB) Descrição: Define o tamanho do WAL que dispara um checkpoint durante checkpoints automáticos. Recomendação: Mínimo 1GB para servidores ocupados, 4-8GB para workloads com alto volume de escrita. Valores maiores reduzem frequência de checkpoints, mas aumentam tempo de recuperação de crash. |
min_wal_size P15 P16 P17 | Tipo: integer (unidade: MB) Intervalo: 2 - 2.147.483.647 Padrão: 80 (80MB) Descrição: Define o tamanho mínimo para reduzir WAL após checkpoints. Arquivos WAL são reciclados até atingir este tamanho. Recomendação: Defina como 20-25% de max_wal_size. Ex.: max_wal_size=4GB, defina para ~800MB. Garante espaço suficiente para picos. |
4. Autovacuum
| Nome do Parâmetro | Descrição e Observações |
|---|---|
autovacuum P15 P16 P17 | Tipo: boolean (on/off) Padrão: on Descrição: Habilita ou desabilita a execução automática de VACUUM e ANALYZE. Recomendação: Sempre habilitar (on) em produção. Crítico para manutenção de tabelas e prevenção de wraparound de transaction ID. Desabilite apenas para cargas iniciais e reabilite depois. |
5. Logging
| Nome do Parâmetro | Descrição e Observações |
|---|---|
log_statement P15 P16 P17 | Tipo: enum (none, ddl, mod, all)Padrão: noneDescrição: Controla quais comandos SQL são registrados no log. Recomendação: Use ddl ou mod para auditoria controlada. Evite all continuamente em produção por gerar alto volume de logs. |
log_min_duration_statement P15 P16 P17 | Tipo: integer (unidade: ms) Intervalo: -1 - 2.147.483.647 Padrão: -1 (desativado) Descrição: Registra em log a duração de todas as statements SQL executadas que excedem o tempo especificado. Recomendação: Defina como 1.000-5.000ms em produção para análise de queries. Use -1 em desenvolvimento. Valores maiores reduzem volume de logs. |
6. Otimizações de Query
| Nome do Parâmetro | Descrição e Observações |
|---|---|
default_statistics_target P15 P16 P17 | Tipo: integer Intervalo: 1 - 10.000 Padrão: 100 Descrição: Define o nível padrão de coleta de estatísticas usado pelo planejador para estimar cardinalidade e selecionar planos de execução. Recomendação: Aumente para 250-500 em workloads com consultas complexas e colunas com distribuição muito desigual. |
random_page_cost P15 P16 P17 | Tipo: float Intervalo: 0.001 - 1.000 Padrão: 4.0 Descrição: Define a estimativa do planejador do custo de uma página de disco acessada não-sequencialmente. Recomendação: 1.1 para SSD, 2.0-3.0 para RAID rápido, 4.0+ para HDD lento. Valores menores favorecem index scans. Ajuste baseado em performance real de I/O. |
seq_page_cost P15 P16 P17 | Tipo: float Intervalo: 0.0 - 1.000 Padrão: 1.0 Descrição: Define a estimativa de custo de leitura sequencial de páginas em disco. Recomendação: Normalmente mantenha em 1.0 e ajuste junto com random_page_cost quando quiser calibrar o planejador para o perfil de armazenamento da instância. |
cpu_tuple_cost P15 P16 P17 | Tipo: float Intervalo: 0.0 - 1.000 Padrão: 0.01 Descrição: Estima o custo de processamento de cada linha pelo planejador. Recomendação: Ajuste somente em cenários avançados de tuning de planner, após medir o impacto nos planos de execução. |
cpu_index_tuple_cost P15 P16 P17 | Tipo: float Intervalo: 0.0 - 1.000 Padrão: 0.005 Descrição: Estima o custo de processamento de cada entrada de índice acessada durante uma consulta. Recomendação: Ajuste em conjunto com cpu_tuple_cost quando houver necessidade de calibrar a preferência do planner entre index scan e seq scan. |
cpu_operator_cost P15 P16 P17 | Tipo: float Intervalo: 0.0 - 1.000 Padrão: 0.0025 Descrição: Estima o custo de execução de operadores e funções pelo planejador. Recomendação: Mantenha o padrão na maioria dos casos; altere somente após benchmarking e análise detalhada de planos. |
effective_io_concurrency P15 P16 P17 | Tipo: integer Intervalo: 0 , 1.000 Padrão: 1 Descrição: Ajuda o planejador a estimar o número de operações I/O concorrentes que o banco pode realizar. Recomendação: SSD: 100-200, RAID: 50-100, HDD: 5-10. 0 desativa prefetching. Valores maiores favorecem bitmap index scans. |
7. Extensão pg_stat_statements
| Nome do Parâmetro | Descrição e Observações |
|---|---|
pg_stat_statements_max P15 P16 P17 | Tipo: integer Intervalo: 100 - 10.000.000 Padrão: 5.000 Descrição: Define o número máximo de statements distintos monitorados pela extensão pg_stat_statements.Recomendação: Aumente em ambientes com grande variedade de consultas, observando o consumo adicional de mem ória compartilhada. |
pg_stat_statements_track P15 P16 P17 | Tipo: enum (top, all, none)Padrão: topDescrição: Define quais statements devem ser rastreados pela extensão. Recomendação: Use top na maioria dos ambientes. Use all apenas quando precisar rastrear statements aninhados com maior profundidade. |
pg_stat_statements_track_utility P15 P16 P17 | Tipo: boolean (on/off) Padrão: on Descrição: Controla se comandos utilitários, como DDL e COPY, também entram nas estatísticas da extensão.Recomendação: Mantenha habilitado para observabilidade mais completa, desabilitando apenas se quiser reduzir ruído nas métricas. |
pg_stat_statements_track_planning P15 P16 P17 | Tipo: boolean (on/off) Padrão: off Descrição: Habilita a coleta de estatísticas de tempo de planejamento das consultas. Recomendação: Ative quando precisar investigar overhead de planning; em uso contínuo, avalie o custo adicional de coleta. |
pg_stat_statements_save P15 P16 P17 | Tipo: boolean (on/off) Padrão: on Descrição: Define se as estatísticas da extensão são persistidas entre reinicializações do servidor. Recomendação: Mantenha habilitado para preservar histórico entre restarts e facilitar análises de tendência. |
Documentação Oficial
Para mais detalhes sobre cada parâmetro: