makeall

cd /usr/src/universe && make all

Monitorando o PostgreSQL com ptop

Monitorando o PostgreSQL com ptopEm um ambiente corporativo com aplicações de missão crítica, qualquer instante de instabilidade pode causar um grande prejuízo para seu cliente, e conseqüentemente para sua empresa. Neste universo, onde todas as camadas de infra-estrutura que dão suporte ao funcionamento de suas aplicações precisam estar altamente-disponíveis, faz-se necessário tomar medidas preventivas a fim de identificar, pro-ativamente, qualquer incidente que pode acarretar em um grande problema. Neste cenário, o papel do DBA é muito importante, pois ele pode identificar, já na camada de Banco de Dados, possíveis candidatos a problemas futuros. No entanto, ele precisa de ferramentas de apoio para tal tarefa, a fim de tornar seu trabalho produtivo e pró-ativo e não reativo, como em muitas empresas. Sendo assim, gostaria de falar hoje sobre o nosso amigo ptop, que é uma espécie de ‘top’ para o PostgreSQL. Inspirado no top dos sistemas UNIX-like, ele permite:
  • Visualizar a instrução SQL sendo executada por um processo;
  • Visualizar o plano de execução de um SELECT rodando no momento;
  • Visualizar os locks de um determinado processo;
  • Visualizar as estatísticas das tabelas de usuário;
  • Visualizar as estatísticas dos índices de usuário;
Obtendo e Instalando A última versão estável do ptop é a 3.6.1 mas já existem versões beta disponíveis que podem ser baixadas e testadas. No nosso caso utilizaremos a última versão estável, fazendo o download e salvando em um diretório temporário, como por exemplo: /tmp. Vamos supor que você deseja monitorar via ptop um ambiente de desenvolvimento com as seguintes características: Nome do bando de dados: desenvolvimento Porta: 5432 Usuário: monitor Senha: m0n1t0r (Para esse exemplo foi criado um usuário monitor no PostgreSQL, sem qualquer privilégio a mais, apenas de conexão ao banco) Salve o arquivo baixado no servidor que deseja monitorar e siga os passos:
# Descompacte o arquivo ...
tar zxvf ptop-3.6.1.tar.gz

# Acesse o diretorio criado
cd ptop-3.6.1/

# Leia os arquivos README e INSTALL
# (sim eles não têm esses nomes à toa... ":D )
less README
less INSTALL

# Configure e compile o codigo
./configure && make

# Após compilar um arquivo executável sera criado
ls -la ptop
-rwxr-xr-x 1 guedes guedes 140282 2008-04-01 20:48 ptop

# Execute-o com a opção --help
./ptop --help
./ptop: invalid option -- -
Top version 3.6.1
Usage: ptop [-ISTWbcinqu] [-x x] [-s x] [-o field] [-z username]
              [-p PORT] [-U USER] [-d DBNAME] [-h HOSTNAME] [number]
Visão geral do ptop Para executar o ptop use: ./ptop -U monitor -d desenvolvimento -h localhost -W Será solicitada a senha do usuário ’monitor’, informe-a corretamente. A tela que surge é semelhante a esta: Monitorando o PostgreSQL com ptop Com o ptop sendo executado, é possível ver uma série de informações úteis sobre o servidor e os processos do PostgreSQL. A semelhança do mesmo com o utilitário top do UNIX é visível e não é mera coincidência… Principais comandos do ptop e suas telas Obtendo ajuda no ptop: pressione ‘?’ ou ‘h’ Monitorando o PostgreSQL com ptop Obtendo o plano de execução de um processo: pressione ‘E’ (maiúsculo) e digite o número de um determinado processo (PID) para visualizar o plano de execução do mesmo. Monitorando o PostgreSQL com ptop Obtendo as estatísticas das tabelas em uso: pressione ‘R’ (maiúsculo) Monitorando o PostgreSQL com ptop Obtendo as estatísticas dos índices em uso: pressione ‘X’ (maiúsculo) Monitorando o PostgreSQL com ptop Visualizando os locks de um determinado processo: pressione ‘L’ (maiúsculo) e digite o número do processo (PID) que deseja visualizar Monitorando o PostgreSQL com ptop DESAFIO 1: tente alterar a ordem de classificação dos processos (por cpu, tempo de execução ou utilização de recursos, por exemplo). DESAFIO 2: tente alterar o número de processos a serem mostrados. Bom, é isso! “:D