Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

A identificação de problemas de desempenho no PostgreSQL envolve a análise de diversos aspectos. Antes de qualquer alteração, confira 8 itens importantes para avaliar relativos à performance.

Informações
titleInformações complementares

Avaliar a performance do PostgreSQL requer uma abordagem holística, combinando monitoramento, análise de logs, e compreensão das consultas e operações do banco de dados. Sempre é benéfico iniciar com um diagnóstico completo antes de fazer quaisquer otimizações. A lista aqui definida busca auxiliar na atividade de análise e troubleshoot.

Links de referência

TDN: Instalação do PostgreSQL em Linux: 03. Ajustes para performanceUsando a view pg_stat_activity 

PostgreSQL: View pg_stat_statementsView pg_locksAutovacuumPlanner/OptimizerWrite-Ahead Logging (WAL)(GitHub) pgBadger

Atividade do Banco de Dados

  •  Consultas lentas: Use o pg_stat_statements para identificar as consultas que mais consomem tempo.
  •  Bloqueios: Verifique o pg_locks e pg_stat_activity para identificar bloqueios que podem estar causando contenção.  

Configuração do PostgreSQL

  •  Tamanho da memória: shared_buffers, work_mem, maintenance_work_mem e outros parâmetros relacionados à memória devem ser configurados adequadamente conforme os recursos do sistema.
  •  Configuração do WAL: Parâmetros como wal_buffers, wal_writer_delay e commit_delay podem influenciar a performance de gravação.
  •  Para este cenário, recomendamos o artigo sobre performance.

Hardware e Sistema Operacional

  •  Disco: I/O é frequentemente um gargalo. Monitore a latência e a taxa de transferência do disco. SSDs podem oferecer melhorias significativas.
  •  CPU: Monitore a utilização da CPU. Se estiver constantemente alta, pode haver consultas ineficientes ou a necessidade de mais recursos.
  •  RAM: Verifique se há uso excessivo de swap. O PostgreSQL desempenha melhor quando a maioria de seus dados e índices cabem na memória.

Autovacuum

  •  Autovacuum é crucial para recuperar espaço e atualizar estatísticas. Se for muito lento ou executado com muita frequência, pode impactar o desempenho. Parâmetros como autovacuum_vacuum_scale_factor e autovacuum_analyze_scale_factor devem ser ajustados conforme necessário.

Estatísticas do Planner/Optimizer

  •  As estatísticas desatualizadas podem fazer o planner/optimizer escolher planos de consulta subótimos. Garanta que o autovacuum esteja funcionando corretamente e considere aumentar o default_statistics_target para tabelas complexas.

Extensões e Módulos Externos

  •  Algumas extensões ou módulos externos podem causar overhead. Avalie o impacto de cada extensão ativada.

Logs

  •  Ative os logs de duração de consulta no postgresql.conf para identificar consultas lentas. Ferramentas como o pgBadger podem ajudar na análise dos logs.

Rede

  •  Latência ou problemas de largura de banda podem afetar aplicações que fazem intensas operações de I/O no banco.


Nota
titleSobre o diagnóstico

Avaliar a performance do PostgreSQL requer uma abordagem holística, combinando monitoramento, análise de logs, e compreensão das consultas e operações do banco de dados. Sempre é benéfico iniciar com um diagnóstico completo antes de fazer quaisquer otimizações.