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.
About author
Você pode gostar também
Descubra como o Skaffold pode otimizar seu trabalho com Kubernetes
Olá pessoal! A ideia para este post surgiu quando me deparei com o problema, que todos que trabalham ou vão trabalhar com Kubernetes enfrentam: a necessidade de a cada simples
Seja um DBA Completo: Domine SQL e os Principais Bancos de Dados do Mercado
DBA moderno precisa ser completo e conhecer a linguagem SQL e suas particularidades para os principais banco de dados do mercado. Em março/2016 a 4Linux lançou o curso Administração
Guia definitivo: Como gerenciar sua infraestrutura com Terraform
Em meio ao caos que o Corona Vírus tem causado em todo o globo, chegamos ao último post da nossa série de postagens sobre Terraform. Caso tenha perdido os 5