Ferramentas que auxiliam na monitoração de processos

Em dois posts, comentei sobre os comandos ps, kill, fg, bg, nice, renice…

Nesse post, quero falar rapidamente sobre outros comandos que podem ser uma mão na roda para o administrador de sistemas quando precisa controlar os processos no sistema!

✔ pstree

Exibe os processos em forma de árvore. Assim, fica mais facil para visualizar o ‘pai’ de cada processo.

Sem opções, o comando pstree exibe a árvore somente com os nomes dos processos. Para ver a arvore de processos com pid, utilize a opção -p.

Experimente os comandos abaixo:

# pstree

# pstree -p

✔ top

O comando top exibe os processos em tempo real. O top é uma ferramenta de mil e uma utilidades; além de exibir os processos, top também permite mudar a prioridade e enviar sinais para os processos.

# top

Para sair do top, pressione <Q>.

Ahn, e no top, para enviar sinais para o processo ou então mudar a prioridade, é necessário saber o PID do processo!

Vamos ver um exemplo onde vamos mudar a prioridade do processo cron e depois enviar sinal de término para esse processo. Por partes, como faria Jack:

1) Localizar o PID do processo:

# pgrep cron

2400

2) Executar o comando top:

# top

Dentro do top, podemos teclar ‘r’ sem aspas para mudar a prioridade do cron; vai aparecer a seguinte frase:

PID to renice:

Dai, informamos o PID, e ele solicita o valor da prioridade; podemos colocar 5.

Como o top atualiza a lista de processos em tempo real, e, por padrão ele mostra somente quem está consumindo mais CPU e memória, pode ser que o cron não apareça na lista… então, para conferir se a prioridade que setamos está correta, basta sair do top e utilizar o comando ps:

# ps lax | grep cron
1     0  2400     1  24   5   3380   752 –      SNs  ?          0:00 /usr/sbin/cron

3) Agora, vamos enviar sinal de término; caso tenha saído do top, execute-o novamente; se não, basta teclar ‘k’ sem aspas; será solicitado o PID do processo, e, em seguida o sinal que você deseja enviar; no nosso caso, vamos enviar o sinal 15, que é o padrão.

O top tem mais opções, para conhece-las:

# man top

Aproveitando, existe uma interface mais bonita para o comando top… é o comando htop; ele é colorido e mais simples para visualizar uso de CPU, memória e etc. Para utilizar, basta teclar:

# htop

✔ pidof

O comando pidof, assim como o comando pgrep, localiza o ID de um processo. A diferença entre esses dois comandos, é que o pidof somente localiza o PID do processo através do nome; já o comando pgrep, além de localizar o PID pelo nome, também localiza por outros atributos, como usuário, por exemplo.

Exemplo do comando pidof:

# pidof cron
2775

Exemplo do comando pgrep:

# pgrep -u root ssh
1954
2516
2661

No exemplo acima, localizamos todos os processos ssh cujo dono é o root.

Para saber mais sobre o pidof e o pgrep:

# man pidof

# man pgrep

pkill

O comando pkill, é uma ferramenta da família pgrep. Ele tem a mesma função que o comando kill, porém pode enviar sinais para um processo utilizando o nome do processo e outros atributos.

Assim como no comando kill, o pkill envia o sinal 15 por padrão.

Exemplo:

# pkill -HUP syslogd

Acima, estamos enviando o sinal HUP (reload) para o processo syslogd.

Para conhecer mais sobre o comando pkill:

# man pkill

✔ killall

Finaliza processos por nome. Por exemplo, finalizar todos processos bash:

# kilall -9 bash

O comando killall também pode ser interativo; isto é, antes de matar o processo, ele pergunta! Para isso, basta utilizar o comando com a opçao -i.

Exemplo:

# killall -9 bash -i
Kill bash(3178) ? (y/N)

Para conhecer outras opções do comando killall, consulte o man:

# man killall

✔ nohup

Executa um comando ignorando os sinais de interrupção. Se executado em segundo plano, o processo continuará rodando mesmo depois que o usuário efetuar o logout.

Exemplo:

# nohup ls -lR / > diretorios.txt &

Para saber mais sobre o comando nohup:

# man nohup

✔ free
O comando free exibe a quantidade de memória livre e usada no sistema. Para usar:

# free
total       used       free     shared    buffers     cached
Mem:        257080      66364     190716          0      13268      37492
-/+ buffers/cache:      15604     241476
Swap:       257000          0     257000

Quando usado sem parâmetros, o valor exibido é em kbytes; para exibir em megas, basta utilizar a opção -m:

# free -m
total       used       free     shared    buffers     cached
Mem:           251         64        186          0         12         36
-/+ buffers/cache:         15        235
Swap:          250          0        250

Para saber mais sobre o comando free:

# man free

✔ vmstat

O comando vmstat exibe a estatística do uso da memória virtual (swap):

# vmstat -S M

Acima, teremos um relatório do uso da memória virtual em megabytes (opção. Sem essa opção, o relatório será exibido em kbytes (padrão).

Uma outra opção legal do vmstat, é o relatório do uso do disco. Para isso, basta executar o comando com a opção -d:

# vmstat -d

O vmstat tem mais opções, para conhece-las:

# man vmstat

Bem, é isso aí pessoal! Até o próximo post! 😀

0 Responses to “Ferramentas que auxiliam na monitoração de processos”



  1. Deixe um comentário

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s




Follow Nix on WordPress.com
janeiro 2009
S T Q Q S S D
« dez   mar »
 1234
567891011
12131415161718
19202122232425
262728293031  

Flickr Photos

Red and Gold

Mais fotos

%d blogueiros gostam disto: