Maximize o desempenho do seu banco de dados com a ferramenta pg_activity

Maximize o desempenho do seu banco de dados com a ferramenta pg_activity

O monitoramento eficaz de um banco de dados é crucial para manter um desempenho otimizado e garantir a disponibilidade contínua de suas aplicações. Neste post, vamos explorar como a ferramenta pg_activity pode facilitar o monitoramento detalhado das atividades em tempo real do PostgreSQL, para você não ficar mais perdido com o que está acontecendo no seu banco de dados.

O pg_activity é uma ferramenta de linha de comando que fornece insights valiosos sobre as atividades em um servidor PostgreSQL. Ao executar consultas em tempo real no banco de dados, ele apresenta uma visão abrangente das sessões ativas, consultas em execução, bloqueios, consumo de recursos e outras informações relevantes.

Instalação do pg_activity

A partir de pacotes de distribuição:

A maneira mais simples de instalar o pg_activity é através do gerenciador de pacotes da sua distribuição Linux, caso ele esteja disponível. Por exemplo, em distribuições baseadas em Debian (como Debian, Ubuntu, Mint…):

sudo apt install pg-activity

Ou em distribuições baseadas no Red Hat:

sudo yum install pg_activity

Observação: pacotes de distribuição podem não estar atualizados com as versões mais recentes do pg_activity.

A partir do PyPI:

O pg_activity pode ser instalado usando o pip no Python 3.7 ou posterior, juntamente com o psycopg:

python3 -m pip install “pg_activity[psycopg]”

A partir do código-fonte, usando o git:

Primeiro, clone o repositório:

git clone https://github.com/dalibo/pg_activity.git

Então, crie um ambiente dedicado e instale o pg_activity com o driver de banco de dados psycopg:

cd pg_activity

python3 -m venv .venv

. .venv/bin/activate

(.venv) $ pip install “.[psycopg]”

(.venv) $ pg_activity

Para sair deste ambiente e destruí-lo:

deactivate

rm -r .venv

Usando o pg_activity

Após a instalação, você pode usar o pg_activity para monitorar e analisar as atividades em seu servidor PostgreSQL, a ferramenta irá abrir um painel com informações completas sobre seu banco de dados e tudo que está sendo executado no momento.

Inicie o pg_activity no terminal executando o seguinte comando:

pg_activity

Entendendo as colunas

O pg_activity exibe várias colunas que fornecem informações úteis sobre as atividades do banco de dados. Aqui estão mais detalhes sobre elas:

  • PID: Identificador do processo que está executando o comando.
  • Database: Banco de dados em que a sessão está conectada.
  • App: Nome da aplicação cliente.
  • User: Nome do usuário da sessão conectada.
  • Client: Endereço IP ou nome do host do cliente.
  • Time: Tempo decorrido da consulta em execução.
  • Waiting: Consulta em espera ou não (Y ou N).
  • State: Estado da sessão (ativo, inativo, bloqueado etc.).
  • Query: Consulta em execução.

Além de todas essas informações nas colunas, o painel ainda possui um cabeçalho onde mostra informações gerais sobre sua instância, como, por exemplo, informações sobre sessões, transações por segundo ou o estado dos seus processos conectados no seu banco de dados. Informações que facilitam um diagnostico rápido em caso de gargalo ou problemas com o banco de dados.

Atalhos e comandos:

O pg_activity oferece atalhos e comandos interativos para facilitar a navegação e a interação durante a execução do comando. Alguns atalhos úteis incluem:

  • Setas para Cima/Para Baixo: Navegar pelas sessões/comandos em execução.
  • Espaço: Pausar a atualização dos comandos.
  • V: Alterar modo de visualização dos comandos.
  • – e +: Alterar tempo de atualização dos comandos.
  • K: Finalizar sessão selecionada (Y para confirmar e N para cancelar).
  • Ctrl+C ou Q: Sair do pg_activity.

Análise de Bloqueios:

Uma das funcionalidades valiosas do pg_activity é a capacidade de identificar e visualizar bloqueios que estão ocorrendo no seu banco de dados. Pelo painel podemos ver quais são as consultas que estão sendo bloqueadas, consultas bloqueando e informações completas sobre elas.

Você tem três opções de visualização de painel, a primeira é pela tecla F1/1 que mostra informações sobre suas sessões em andamento, a segunda é alterada pela tecla F2/2 que mostra informações sobre consultas que estão sendo bloqueadas e estão em espera, e a terceira opção é alterada pela tecla F3/3 onde mostra informações sobre consultas que estão bloqueando outras consultas.

Com essas informações, você pode precisar finalizar manualmente uma sessão que esteja bloqueando outras sessões, usando a tecla K para finalizar a sessão selecionada e confirmando com a tecla Y, você finaliza a sessão desejada.

Conclusão

Lembre-se de que o pg_activity é uma ferramenta poderosa para análise em tempo real e resolução de problemas, e é essencial para ambiente com PostgreSQL, para obter uma visão detalhada do seu banco de dados e não perder qual o ofensor que pode estar te prejudicando ou causando gargalos. Com pg_activity você pode obter insights detalhados sobre as atividades em seu servidor PostgreSQL e tomar medidas proativas para otimizar o desempenho e resolver problemas. Mantenha-se atento às atividades em seu banco de dados e garanta um ambiente de banco de dados saudável e eficiente.

 

 

 

 

                     

Anterior Guia completo: Implantação de MongoDB resiliente no Google Kubernetes Engine
Próxima Monitoramento de Dados: Como Utilizar o PostgreSQL e o PgPool com Zabbix

About author

Guilherme Staskoviak
Guilherme Staskoviak 5 posts

DBA Consultor & Instrutor PostgreSQL, amante de tecnologia e música.

View all posts by this author →

Você pode gostar também

Infraestrutura TI

Guia prático: Crie e configure máquinas virtuais com shell script

Entenda como criar diversas máquinas virtuais e configurar seus serviços com shell script. Instalação das dependências Inicialmente é preciso fazer a instalação do VirtualBox, que sera o responsável por criar

Infraestrutura TI

Crie sua primeira aplicação em Python: Guia passo a passo

Neste post estaremos aprendendo a criar uma aplicação simples utiliando a linguagem de programação “Python”.   Primeiramente, obviamente, será necessário ter o python instalado em nossas máquinas, podemos adquirí-lo de

Segurança

Entenda o risco das injeções de dados e como prevenir em desenvolvimento de software

Neste artigo, vamos entender o motivo pelo qual as injeções de dados (SQL Injections) estão no Top 10 da OWASP e o porquê dessa classe de vulnerabilidades precisar de atenção