Você já experimentou ps -aefl e olhou para a coluna SZ?
Mdpc
2
O que você quer dizer com "descobrir a memória alocada"? Deseja saber quanta memória o processo está usando?
Gilles 'SO- stop be evil' -
Respostas:
14
Experimentar:
pidof bash | xargs ps -o rss,sz,vsz
Para encontrar o uso de memória do seu bashshell atual (supondo que você esteja usando bash). Mude bashpara 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 manpá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 manpágina para pslistará todos os argumentos possíveis para a -oopção (há muito por onde escolher). Em vez de -o rss,szvocê poderia usar a vopção de estilo BSD (sem traço), que mostra um layout de memória alternativo.
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, htopetc ....). Leia proc (5) para mais. Em particular para o processo de pid 1234 você poderia usar /proc/1234/status, /proc/1234/statm, /proc/1234/mapsetc ... 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/statusetc ...
Respostas:
Experimentar:
Para encontrar o uso de memória do seu
bash
shell atual (supondo que você esteja usandobash
). Mudebash
para o que estiver investigando. Se você está atrás de um processo específico, basta usar por conta própria: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 paraps
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 av
opção de estilo BSD (sem traço), que mostra um layout de memória alternativo.fonte
RSS
,SZ
eVSZ
.Você pode usar o
pmap
que mostra o mapa de memória de um processo: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 .fonte
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 porps
,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 comcat
(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 .
fonte