make all

cd /usr/src/universe && make all

Monitorando o PostgreSQL com ptop

Escrito por Guedes em Abril 2, 2008

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

Enviado em postgresql | Tagged: , , , , , | 2 Comentários »

Como obter ajuda sobre PostgreSQL?

Escrito por Guedes em Março 29, 2008

Como obter ajuda sobre PostgreSQL?Um dos fatores fundamentais que movimenta o universo do software livre é justamente a grande quantidade de usuários que estão prontos (e qualificados) para ajudá-lo desde as dúvidas mais simples, até as mais “cabeludas”. Pois bem, nesses mesmo barco, onde todos estamos remando, existe um “pacto”, não chega a ser uma ordem ou lei, mas sim um pré-requisito básico, que todo aquele que quer entrar nesse universo deveria se certificar de checar, um ação simples: antes de perguntar, pesquise!

Sim, é muito comum ver perguntas recorrentes na lista pgbr-geral em que muitos de seus questionadores não se deram o luxo de, no mínimo, dar uma googlada. Conclusão? Muitas vezes eles acabam saindo frustrados com uma resposta default: “Veja o histórico da lista.”

Já outros possuem espírito aventureiro, questionam-se noite e dia, procuram, encontram, testam, erram, procuram, encontram, testam, acertam … e nesse ciclo rumo ao conhecimento, algumas perguntas surgem, duvidas pelas quais alguns de nos passamos também, cujas respostas não encontramos em uma ferramenta de busca, mas sim nas entrelinhas do conhecimento alheio. E nesse caso, onde buscar então? É ruim perguntar na lista? Não! É perfeito! As respostas mais básicas estão la no histórico da lista… algumas complexas também… e você percebe a diferença entre elas pelo número de threads que um tópico mais complexo pode gerar. Veja como exemplo quantos tópicos sobre Codificação de caracteres já surgiram esse mês.

Em resumo, antes de perguntar leia o site oficial do PostgreSQL, ou o site brasileiro, veja o histórico de nossas listas, procure no Planeta PostgreSQL pesquise no Google. Ainda assim você tem dúvidas cujas respostas dependem da opinião e experiência de outros colegas? Perfeito, pergunte na lista ou procure-nos no IRC. Sim, no IRC… lembra? Lá a resposta pode ser mais rápida, ou a discussão poderá ser mais dinâmica.

Se você possui um cliente de IRC, basta acessar o servidor irc.freenode.net e entrar nos canais #postgresql e #postgresql-br. Ou se preferir, você pode utilizar o Pidgin para conectar, o que não é difícil, basta seguir este filme que mostra passa a passo como fazer:

Como obter ajuda sobre PostgreSQL?Como conectar no canal #postgresql-br da FreeNode via PidGin? [2MB ogg]

Como obter ajuda sobre PostgreSQL?Como conectar no canal #postgresql-br da FreeNode via PidGin? [7MB avi]

Bom, é isso “:D

Enviado em postgresql | Tagged: , , , , | 1 Comentário »

FreeBSD 7.0 saindo do forno…

Escrito por Guedes em Fevereiro 29, 2008

Saiu a versão 7.0 com suporte até 29 de Fevereiro de 2009, ela chega a ser 15% mais performática que as versões de kernel gnu/linux 2.6.22 e 2.6.24. O FreeBSD na versão 7.0 teve um ganho de performance significativo com picos em torno de 350% a mais em relação a versão 6.x nos benchmarks executados, e estabilidade em situações de stress-loading.

Veja as notas de lançamento aqui e a errata aqui.

Para baixar as imagens de instalação do repositório oficial acesse: ftp://ftp.FreeBSD.org/pub/FreeBSD/ ou utilize um mirror brasileiro:

ftp://ftp.br.FreeBSD.org/pub/FreeBSD/

ftp://ftp2.br.FreeBSD.org/pub/FreeBSD/

ftp://ftp3.br.FreeBSD.org/pub/FreeBSD/

Bom divertimento! “:D

Enviado em freebsd | Tagged: , | Nenhum comentário »