Como posso medir quanta CPU e RAM foram usadas por um comando?

5

Estou tentando medir a memória de um processo que eu chamo através da linha de comando (ou seja, eu quero descobrir muito CPU / RAM o processo leva). Existe algum comando que eu possa adicionar ao comando chamando o processo que vai conseguir isso?

    
por Dima Savva 07.05.2013 / 23:41

2 respostas

9

top

Exemplo do firefox. Encontre o PID:

ps -aux | grep -i firefox

Então você pode usar top -p pid :

top -p  3845

ps

Você também pode usar o comando ps , o firefox pid é 3845

$ ps -p 3845 -o %cpu,%mem,cmd
%CPU  %MEM CMD
11.1  3.7 /usr/lib/firefox/firefox

Não estou satisfeito com os comandos acima mencionados e encontrei algo em que você deveria se interessar.

Monit

sudo apt-get install monit -y

Edite o arquivo de configuração Monit

sudo nano /etc/monit/monitrc

Ativar a interface da web

set httpd port 2812
# use address localhost # only accept connection from localhost
allow localhost # allow localhost to connect to the server and
# allow 192.168.1.0/255.255.255.0 # allow any host on 192.168.1.* subnet
allow admin:monit # require user 'admin' with password 'monit'

Processo de verificação a cada 2 segundos

## Start Monit in the background (run as a daemon):
set daemon 120 to only 2  # check process every 2 sec

Exemplo do Firefox

No final, copie e cole o seguinte comando

check process firefox
matching "firefox"

Salvar e sair

Verifique sua sintaxe

Corrija qualquer problema encontrado - não é muito difícil descobrir o que está acontecendo.

sudo monit -t

Iniciar (ou reiniciar) Monit

sudo service monit start

Visite a interface da web

http://localhost:2812 se você estiver executando o Ubuntu Desktop ou

Faça login com suas credenciais admin:monit

  

Clique no Firefox

  

Relacionados:

por Qasim 08.05.2013 / 04:43
2

O comando de tempo GNU pode imprimir o tamanho máximo de conjunto de residentes usado por um comando. Você precisa certificar-se de usar o comando /usr/bin/time , não a palavra-chave time interna do Bash Shell.

Para um exemplo para medir o comando firefox :

/usr/bin/time --format="Size:%MK  Cpu:%P  Elapsed:%e" firefox &

Depois de usar o Firefox por um tempo, eu o fecho para obter o relatório:

Size:168644K  Cpu:30%  Elapsed:226.34

Embora seja possível usar a variável de ambiente TIME para definir o formato padrão, achei mais flexível configurar aliases de bash individuais com formatos específicos. Então, para o acima, eu adicionaria ao meu arquivo ~/.bash_aliases :

alias ztm="/usr/bin/time --format=\"Size:%MK  Cpu:%P  Elapsed:%e\""

Para que do meu Bash Shell eu pudesse entrar:

ztm firefox &

Referências:

  • man time
  • info time
  • man 2 getrusage # - Mostra quais medidas estão disponíveis no Linux, as outras mostram como zero
por LantzR 08.05.2013 / 10:55