Como monitorar a memória consumida por um processo?

9

Eu tenho um processo que gostaria de ver quanta memória ele consome enquanto está sendo executado.

Agora eu faço isso:

ps faux | grep casper

Mas isso só me dá a informação desse momento. Seria bom ver esse valor mudando conforme o script prossegue.

De alguma forma eu posso fazer isso?

    
por Hommer Smith 17.12.2013 / 21:51

5 respostas

11

Método 1

Executar:

top

Verifique o PID do programa (primeira coluna) e execute:

top -p PID

Método 2

Cole isso no terminal ou salve-o como mem_usage.sh e execute-o no terminal.

#! /bin/bash
while :
do
    clear
    ps faux | grep casper
    sleep 1s
done
    
por Julian Stirling 17.12.2013 / 21:55
4

Para monitorar apenas o seu processo, você pode verificar / proc / PID / status ou / proc / PID / statm.

Sobre / proc / PID / statm:

Depois de fazer cat /proc/PID/statm , você verá isso:

611450 185001 883 18 0 593431 0

Explicação:

  1. tamanho: - tamanho total do programa (611450 X 4096/1024 = 2445800kB = 2388M)
  2. residente: - tamanho do conjunto de residentes (185001 X 4096/1024 = 740004kB = 722M)
  3. share: - páginas compartilhadas (883 X 4096 = 3532)
  4. trs: - texto (código) (18 X 4096/1024 = 72kB = VmExe)
  5. drs: - dados / pilha
  6. lrs: - library (593431 X 4096/1024 = 2373724kB = VmData + VmStk)
  7. dt: - páginas sujas

Além disso, você pode registrar a atividade de memória para o seu processo fazendo um loop usando date e cat.

    
por yilmi 17.12.2013 / 22:07
2

Abra o Monitor do Sistema e vá para a guia Processos :

    
por Wilf 17.12.2013 / 21:57
2

você poderia usar o uso 'top'

man top

Este programa permite ordenar o uso de recursos, entre outros, RSS, VSZ, CPU, etc. É muito útil.

Como alternativa, para uma análise mais detalhada do uso da memória, tente "pmap"

man pmap

Exemplo de uso:

pmap -x 1234

felicidades

sc.

    
por swisscheese 17.12.2013 / 21:57
0

Tente:

watch 'ps faux | grep -v grep | grep casper'

Você também pode alterar o intervalo de atualização usando o parâmetro --interval <seconds> .

    
por Martin Dvorak 17.12.2017 / 13:35