Pedro Pereira

Linux, Cisco, *BSD's, um pouco de Windows e o que mais eu achar interessante :)

NMon – Monitorando o sistema eficientemente


WP Greet Box icon
Olá! Se você gostou do blog, assine o feed RSS para não perder as próximas atualizações!

Monitorar o uso dos recursos de um servidor é, se não a mais, uma das tarefas mais importantes que um administrador de sistemas deve executar diariamente. Com os dados desta análise é possível fazer estudos para a expansão dos recursos do servidor (com uma análise consistente e bem feita fica muito mais fácil convencer o seu gerente a investir mais na infraestrutura :) ).

Existem várias ferramentas com essa finalidade disponíveis gratuitamente para Linux, porém a maioria não é integrada e/ou não oferece muitos detalhes ou flexibilidade sobre o quê e como analisar. Nesse aspecto o NMon supera muitas destas ferramentas pois:

  • oferece a possibilidade de monitorar vários aspectos do sistema (como rede, uso de memória, processos que mais utilizam o CPU, escrita e leitura em discos rígidos, etc) a partir de uma única ferramenta;
  • permite que você exporte os dados recolhidos para serem analisados por uma planilha (que, infelizmente, só é compatível com o Microsoft Excel) ou que você utilize a ferramenta nmon2rrd que gera uma página HTML e vários gráficos utilizando o RRDTool. Assim você pode acessar os relatórios gerados pelo NMon através de um navegador.

Neste texto vou explicar a utilização do NMon e do NMon2RRD.

Instalação do NMon

O NMon não está disponível nos repositórios oficiais do CentOS porém, instalando o RPMForge como explicado neste artigo, você pode instalá-lo assim:

# yum -y install nmon

O nmon será instalado no /usr/bin/nmon.

Como utilizar

O NMon é bem simples de se utilizar. O único problema é guardar as teclas de atalho para que ele passe a exibir os dados dos recursos.

Basicamente, se você simplesmente executar o comando você vai estar na tela de monitoração:

# nmon


Nesta tela você irá adicionar os painéis com as informações que você deseja analisar. Para isso, você deve pressionar a tecla correspondente ao recurso. Segue uma tabela abaixo para consulta:

c -> Mostra dados de todos os processadores do sistema
m -> Mostra a utilização da memória
d -> Mostra a utilização dos discos rígidos da máquina
r -> Mostra dados como versão do kernel, modelo do processador, arquitetura, etc.
k -> Mostra o status do kernel
l -> Mostra um gráfico de utilização do CPU utilizando caracteres ASCII
j -> Mostra informações sobre os sistemas de arquivos montados no sistema. A saída dessa opção é bem parecida com      a do comando df -h
n -> Dados sobre a rede (pacotes que entraram, pacotes que saíram, colisões, etc)
N -> Informações sobre o serviço NFS
t -> Semelhante ao comando “top”, mostra os processos que mais estão utilizando o CPU
- -> Aumenta a frequência de atualização da tela
+ -> Diminui a frequência de atualização da tela (não troquei este item com o anterior! :) )
V -> Coleta informações sobre a memória virtual do sistema
v -> Informações resumidas sobre CPU e discos
. -> Mostra apenas discos e processos que estão ativos (utilizando recursos do sistema)
h -> Mostra uma tela de ajuda
q -> Sai do NMon

O legal do NMon é que você não precisa exibir cada informação separadamente, você consegue exibir vários recursos do sistema na mesma tela. Por exemplo, digite:

# nmon

Você irá para a tela inicial do programa. Digite “c” para mostrar dados do processador e as informações do processador serão exibidas no topo da tela. Agora, digite “t” para mostrar os processos que mais estão utilizando o processador. Assim você irá poder analisar a carga do processador e quais os processos que mais estão utilizando o CPU (junto com várias outras informações sobre cada processo). Depois, se você quiser informações sobre a memória RAM, digite “m” e o painel da memória RAM será aberto e você poderá analisar estes três recursos ao mesmo tempo.

Você pode fazer qualquer combinação que você queira, não há limites de quantos recursos você pode utilizar. Para remover o painel de um recurso, pressione novamente a tecla que você pressionou para ele aparecer. Por exemplo, para remover o painel da memória pressione “m” novamente.

Opções de linha de comando

Além das opções dentro do programa, o NMon também possui várias opções de linha de comando que alteram a forma como o programa funciona. Como são muitas opções, vou citar apenas as que eu considerar mais importantes. Se você quiser ver uma lista completa destas opções basta digitar:

# nmon -h

  • -s <segundos>: Define o tempo em segundos para a atualização da tela. O padrão é 2 segundos;
  • -c <número>: Define o número de atualizações de tela. Por exemplo, se você definir 3 aqui o NMon irá atualizar a tela apenas três vezes e irá fechar.

Como já citei anteriormente, com o NMon você pode salvar os dados da análise em um arquivo para que ele seja analisado por algum software posteriormente gerando um relatório mais fácil para se analisar. Nesse modo, o NMon não irá ocupar a sua tela, ele será executado em background e quando terminar, todos os dados estarão salvos em um arquivo. As opções para esse modo são:

  • -f -> Salva os dados coletados em um arquivo chamado <nome da máquina>_AAAAMMDD_HHMM.nmon;
  • -F nome-do-arquivo.txt -> Faz o mesmo que -f porém permite que você especifique o nome do arquivo onde os dados  serão gravados;
  • -t -> Mostra os processos que mais estão ocupando o sistema;
  • -T -> O mesmo que -t mas salva também os argumentos do processo;
  • -s<segundos> -> Segundos que o NMon aguardará entre as capturas de dados;
  • -c<número> -> Número de vezes que o NMon irá capturar os dados;
  • -N -> Inclui sistemas de arquivos NFS na monitoração.

Por exemplo, o comando:

# nmon -F /tmp/servidor1.nmon -s3 -c10 -t

Irá salvar os dados no arquivo /tmp/servidor1.nmon. Os dados serão capturados a cada 3 segundos por 10 vezes e ele irá incluir na captura os processos que mais ocupam o sistema em cada análise (além deste, todos os outros recursos que o NMon é capaz de analisar também serão capturados).

Gerar relatórios HTML

Utilizando o arquivo gerado pelo NMon, a ferramenta nmon2rrd pode converter os dados em gráficos para facilitar ainda mais a análise. Ela não é instalada junto com o NMon, deve ser instalada separadamente. Porém, o processo de instalação é bem simples. Vou considerar aqui que você já tenha o pacote RRDTool corretamente instalado na sua máquina. Faça o seguinte:

-> Acesse o site http://www.ibm.com/developerworks/wikis/display/WikiPtype/nmon e procure pelo texto “nmon2rrd”;
-> Clique no link nmon2rrdv12g.tar e salve o arquivo;
-> Extraia o arquivo com o comando:
# tar xvf nmon2rrdv12g.tar

-> Isso irá criar dois arquivos: nmon2rrd e nmon2rrd.c. O primeiro é um binário que aparentemente só funciona no AIX (plataforma para a qual o NMon foi originalmente desenvolvido).
-> Compile o arquivo nmon2rrd.c com o comando:
# gcc -o nmon2rrd nmon2rrd.c

Assim você já terá o executável do nmon2rrd no diretório onde você salvou o nmon2rrd.c. As opções desse programa são:

  • -f <nome do arquivo>: Arquivo gerado pelo NMon que será analisado;
  • -d <diretório>: Diretório onde os relatórios HTML serão salvos (geralmente, /var/www/html/);
  • -w <largura>: Largura do gráfico que será gerado;
  • -h <altura>: Altura do gráfico;
  • -x: Gera os gráficos em GIF.

Por exemplo, o seguinte comando:

# ./nmon2rrd -f servidor1.nmon -d /var/www/html/nmon/ -x

Irá gerar todos os gráficos e páginas HTML no diretório /var/www/html/nmon e os dados serão lidos do arquivo servidor1.nmon.

Obviamente, para conseguir acessar os arquivos você deverá ter o Apache configurado na máquina e o firewall deve permitir conexões TCP na porta 80.

Conclusão

O NMon é uma ferramenta bem simples e que facilita muito o trabalho de capacity planning (planejamento de capacidade) dos seus servidores. Com ele você poderá analisar em detalhes o uso do seu servidor, sendo capaz de planejar a expansão do seu servidor de maneira mais efetiva, ou seja, você pode decidir apenas comprar mais memória RAM, aumentar a capacidade dos discos, etc. Assim, você não gasta com componentes que atualmente já atendem à sua demanda.

Claro que existem outras ferramentas que também fazem este tipo de serviço, como o Cacti. Porém, por algum motivo pode ser que você prefira utilizar o NMon para fazer o seu serviço (pois ele é bem mais fácil de instalar e utilizar que o Cacti :) ). Enfim, é sempre bom ter várias opções!

Se você tiver dúvidas ou sugestões, deixe um comentário!

Compartilhe o post! These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Webnews
  • Digg
  • del.icio.us
  • StumbleUpon
  • Reddit
  • Ask
  • Bloglines
  • email
  • Facebook
  • Furl
  • Google Bookmarks
  • LinkedIn
  • Live-MSN
  • Pownce
  • Print
  • Rec6
  • Slashdot
  • Technorati
  • TwitThis

Não há posts relacionados a este!




5 Comentários

  1. Twitter Trackbacks for Capacity Planning utilizando o NMon | Pedro Pereira [pedropereira.net] on Topsy.com

    24|Aug|2009 1

    [...] Capacity Planning utilizando o NMon | Pedro Pereira http://www.pedropereira.net/nmon-monitorando-o-sistema-eficientemente – view page – cached Aprenda a utilizar o NMon, uma ferramenta que analisa o uso dos recursos do seu servidor e pode até gerar relatórios HTML para facilitar a sua vida! — From the page [...]

  2. Marcelo

    04|Feb|2010 2

    Boa tarde,
    Agradeço pela dica, foi muito útil, pois tive que usar esse programa na minha empresa.

    Obrigado.

  3. Pedro Pereira

    04|Feb|2010 3

    Olá Marcelo,

    Fico feliz que tenha sido útil para você! Muito obrigado pelo comentário!

    []‘s
    Pedro Pereira

  4. Rafael

    23|Nov|2011 4

    Boa tarde Pedro,

    Primeiro gostaria de te parabenizar pelo seu post, mas preciso de uma ajuda sua.
    Tenho que coletar de hora em hora do dia inteiro de um WPAR os consumos de cpu, mémoria e disco, e que tenha uma saida csv ou txt. Como posso fazer isso?

    Agradeço desde já.

  5. Pedro Pereira

    02|Dec|2011 5

    Rafael,

    Com o nmon mesmo você consegue fazer isso, basta executá-lo com as opções certas (estão todas descritas no post acima) e salvar em um arquivo .txt. Usando o próprio crontab você consegue fazer isso.

    []‘s
    Pedro Pereira.


Deixe seu comentário!

Acompanhe!

    Assine o feed RSS! Me acompanhe no Twitter! Me adicione no LinkedIn!

Creative Commons


Mais lidos