[Ubuntu-BR] Consumo de um processo

Thadeu Penna tjpp em if.uff.br
Terça Agosto 15 22:56:17 UTC 2006


Fábio Saboia escreveu:
> nao foi usando o vmstat nao ..
> foi o ps mesmo ..
>
> #uso_memoria
> #Escreve o consumo de memoria
> ps aux | grep NOME_DO_PROCESSO  | awk '$3 > "0.0" {print $3}'  >>
> consumo_memoria
> ./uso_memoria
>
>
> e
>
>
> #uso_processador
> #Escreve o consumo do processador
> ps aux | grep NOME_DO_PROCESSO | awk '$4 > "0.0" {print $4}'  >>
> consumo_processador
> ./uso_processador
>
>  simples e objetivo como eu queia ...
>   
Ah, você queria a informação por processo :) Eu fiz um script que 
monitora várias máquinas assim:

j=`cat /proc/cpuinfo | grep MHz | cut -d":" -f2 | cut -d"." -f1 | uniq | 
sed 's/^ //'`
i="`cat /proc/cpuinfo | grep name | wc -l | sed 's/ //g' `x"
k=`echo $HOSTNAME"______________________"| cut -c1-15`
l=`date | awk '{ print $4}' | cut -d":" -f1,2`
#
# até aqui para pegar informações das máquinas e da hora
# não precisaria rodar o j e o i toda a hora, só se a máquina fosse 
atualizada, mas assim
# monitoro todas sem me preocupar
#
ps aux --sort:uid,-ppid,+pid | sed 's/ S N \| R N / N 
/g;/PID\|tjpp\|python\|root\|gdm\|mozilla\|sshd\|nobody\|artsd\|^$/d;s/Jan 
.\|Feb .\|Mar .\|Apr .\|May .\|Jun .\|Jul .\|Aug .\|Sep .\|Oct .\|Nov 
.\|Dec ./00/g' > saida.$HOSTNAME
#
# note que os meus processos não aparecem na estatística :) nem outros 
que não interessam
# ninguém pode saber que eu rodo o torrent ;)
#
awk '{ print $1 }' saida.$HOSTNAME > user.$HOSTNAME
awk '{ print $2 }' saida.$HOSTNAME > pid.$HOSTNAME
awk '{ print $3 }' saida.$HOSTNAME > cpu.$HOSTNAME
awk '{ print $8 }' saida.$HOSTNAME > node.$HOSTNAME
awk '{ print $9 }' saida.$HOSTNAME > nice.$HOSTNAME
awk '{ print $11"  "$12 }' saida.$HOSTNAME > run.$HOSTNAME
sed 's/"^ "/"+"/g;s/S/*/g' nice.$HOSTNAME > nice.tmp.$HOSTNAME
mv -f nice.tmp.$HOSTNAME nice.$HOSTNAME
paste pid.$HOSTNAME cpu.$HOSTNAME nice.$HOSTNAME user.$HOSTNAME 
run.$HOSTNAME node.$HOSTNAME> $HOSTNAME.saida
awk '$2 !~ /^0/' $HOSTNAME.saida > saida.$HOSTNAME
awk '{ printf  "%-10s %5d %1s %10s %3d%% %-11s 
%-15s\n",$4,$1,$3,$5,$2,$7,$6 }' saida.$HOSTNAME> $HOSTNAME.saida
echo -e "$k $j \bMHz $i \t $h $l" > $HOSTNAME.title
rm -f *.$HOSTNAME

Isto me gera um arquivo $HOSTNAME. saida com todas as informações 
atualizadas, de quanto processamento usa, quanta memória , qual o nice 
(IMPORTANTÍSSIMO), em que nó do OpenMosix o programa está realmente 
rodando e o pid e quem é o owner do processo.

Eui fiz outro script que coleta estes dados e apresenta em um relatório.
Sugestões para melhoramentos são sempre bem vindas!

-- 
Thadeu Penna
Prof.Adjunto - Instituto de Física                  
Universidade Federal Fluminense   
Ubuntu/Debian GNU/Linux i386,alpha,amd64
http://ubuntuff.blogspot.com





More information about the ubuntu-br mailing list