Monitorando o PostgreSQL com ptop
Em 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:
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’
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.
Obtendo as estatísticas das tabelas em uso: pressione ‘R’ (maiúsculo)
Obtendo as estatísticas dos índices em uso: pressione ‘X’ (maiúsculo)
Visualizando os locks de um determinado processo: pressione ‘L’ (maiúsculo) e digite o número do processo (PID) que deseja visualizar
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
Beleza Guedes!
Esta está na minha coleção.
Daqui há alguns dias estarei escrevendo um sobre as diversas ferramentas existentes para nosso PostgreSQL.
Certo dia, melhor, em dois dias eu saí varrendo os links da seção de news do site oficial do PG a procura de ferramentas.
O que baixei foi pouco mais de 1GB. claro que algumas destas podem ainda estar incipientes, outras eu talvez não consiga fazer funcionar. Não testei nenhuma ainda.
Antes de publicar o artigo eu passarei agumas impressões para trocarmos idéias.
[...] por Marcos B. Dutra (mbdutra5830Θhotmail·com) - referência [...]
[...] Este blog mudou! Acesso este post na íntegra aqui http://guedesoft.net/blog/2008/04/02/monitorando-o-postgresql-com-ptop/ [...]