Como posso descobrir a memória total alocada para um processo específico no Ubuntu?
Como posso descobrir a memória total alocada para um processo específico no Ubuntu?
Respostas:
Experimentar:
pidof bash | xargs ps -o rss,sz,vsz
Para encontrar o uso de memória do seu bash
shell atual (supondo que você esteja usando bash
). Mude bash
para o que estiver investigando. Se você está atrás de um processo específico, basta usar por conta própria:
ps -o rss,sz,vsz <process id>
Na man
página:
RSS
: tamanho do conjunto residente, a memória física não trocada que uma tarefa usou (em kiloBytes).
SZ
: tamanho em páginas físicas da imagem principal do processo. Isso inclui texto, dados e espaço de pilha.
VSZ
: tamanho da memória virtual do processo em KiB (unidades de 1024 bytes).
A man
página para ps
listará todos os argumentos possíveis para a -o
opção (há muito por onde escolher). Em vez de -o rss,sz
você poderia usar a v
opção de estilo BSD (sem traço), que mostra um layout de memória alternativo.
Você pode usar o pmap
que mostra o mapa de memória de um processo:
pmap -p pid
Para obter mais informações, consulte a página de manual man pmap
ou consulte o pmap (1): report map mapa de memória do processo - página de manual do Linux .
como descobrir a memória total alocada para um processo específico no ubuntu?
Você não define qual é a memória alocada para um processo e, na verdade, essa é uma pergunta bastante complexa (e os mapeamentos de memória compartilhada - consulte mmap (2) para obter detalhes; e a memória compartilhada POSIX - consulte shm_overview (7) para obter mais informações) ; e algumas páginas no cache de páginas usadas para arquivos abertos; etc ...)
Você pode usar o /proc/
sistema de arquivos (que BTW é usado por ps
, pmap
, top
, htop
etc ....). Leia proc (5) para mais. Em particular para o processo de pid 1234 você poderia usar /proc/1234/status
, /proc/1234/statm
, /proc/1234/maps
etc ... Eles são todos os pseudo-arquivos textuais (um pouco como tubos) que você pode ver com cat
(ou ler sequencialmente dentro de algum programa). BTW, de dentro de um programa que você pode usar /proc/self
(que é um pseudo-link simbólico), por exemplo, ler sequencialmente /proc/self/status
etc ...
Veja também LinuxAteMyRam .