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:
Neste texto vou explicar a utilização do NMon e do NMon2RRD.
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.
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.
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
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:
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).
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:
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.
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!
Não há posts relacionados a este!

Esta obra escrita por Pedro Augusto de Oliveira Pereira está licensiada sob a Creative Commons Atribuição-Uso Não-Comercial-Vedada a Criação de Obras Derivadas 3.0 Brasil License.

Publicando meu perfil no LinkedIn aqui no blog, tenho como objetivo expandir minha rede de contatos profissionais. Me adicione no LinkedIn!

3 Comentários
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 [...]
Marcelo
04|Feb|2010 2Boa tarde,
Agradeço pela dica, foi muito útil, pois tive que usar esse programa na minha empresa.
Obrigado.
Pedro Pereira
04|Feb|2010 3Olá Marcelo,
Fico feliz que tenha sido útil para você! Muito obrigado pelo comentário!
[]‘s
Pedro Pereira
Deixe seu comentário!