banner

PostgreSQL: Performance Tuning com PgBadger

escrito por Daniel Leite

4 minutos de leitura

null

Aprenda como usar o PgBadger para otimizar a performance do PostgreSQL, analisando logs e identificando gargalos de forma rápida e visual.

Manter um ambiente de banco de dados PostgreSQL com alta performance é uma tarefa contínua e proativa no dia a dia de um DBRE, evitando a necessidade de reagir a problemas, mas sim antecipá-los. Nesse contexto, a análise de logs se torna uma ferramenta indispensável. O desafio é que, muitas vezes, esses logs são extensos e difíceis de interpretar manualmente e é aí que entra o PgBadger para apoiar nessa tarefa.

O desafio de encontrar os principais consumidores de recurso

Um dos maiores desafios no tuning de um banco de dados é identificar quais queries, usuários ou aplicações estão consumindo mais recursos, como CPU, memória e I/O, em ambientes de alta demanda, onde milhares de consultas podem ser executadas a cada segundo. A análise dos logs do banco de dados é uma fonte rica de informações, mas a extração manual desses dados torna-se inviável na maioria dos casos.

O que é o PgBadger e qual a sua função?

O PgBadger é um analisador de logs de PostgreSQL de código aberto. Sua principal função é pegar os logs gerados pelo banco de dados e transformá-los em relatórios HTML consolidando as informações, facilitando a visualização como mostra a imagem de exemplo abaixo. Esses relatórios fornecem uma visão clara e detalhada do comportamento do seu banco de dados, permitindo que o DBA identifique rapidamente gargalos de performance.

IMG1.png

Com o PgBadger, você pode:

  • Visualizar as queries mais lentas: Identifique facilmente as consultas que estão demorando mais para serem executadas.
  • Analisar o comportamento do servidor: Entenda a carga do servidor, o número de conexões, as transações por segundo e outros indicadores de performance.
  • Rastrear as consultas por usuário/aplicação: Descubra quem está executando o quê, ajudando a identificar padrões de uso e potenciais problemas.
  • Gerar gráficos e tabelas: Visualize a distribuição de tempo de execução, o hit ratio do cache e outras métricas importantes de forma intuitiva.

Para que o PgBadger possa gerar relatórios úteis, o PostgreSQL precisa ser configurado para gerar logs detalhados. Você precisará ajustar alguns parâmetros no arquivo de configuração como o formato do log e tempo mínimo para que uma query seja logada.

O relatório HTML gerado pelo PgBadger é o grande diferencial. Ele é uma página única e completa que apresenta diversas seções:

  • Visão Geral (Overview): Um resumo das estatísticas principais, como a taxa de transações, o número de conexões e a distribuição de tempo de execução por tipo de consulta.
  • Consultas Lentas (Slowest Queries): Uma tabela ordenada com as consultas que levaram mais tempo para serem executadas, incluindo o tempo total e a frequência.
  • Tempo de Execução por Tipo (Execution Time by Type): Gráficos de pizza e barras mostrando a proporção de tempo gasto em SELECT, INSERT, UPDATE, DELETE e outras operações.
  • Consultas por Usuário/Banco de Dados: Tabelas que detalham o comportamento de cada usuário e banco de dados, mostrando quais são os principais consumidores de recursos.
  • Sessões por Hora/Dia: Gráficos que mostram a carga do servidor ao longo do tempo, ajudando a identificar picos de uso.

Com o PgBadger, a análise proativa dos logs de banco de dados se torna uma tarefa mais simples e visual, permitindo aos DBAs tomarem decisões direcionadas para otimizar a performance do PostgreSQL e garantir a saúde do ambiente.

Compartilhe esse post: