Como ler o uso de memória no htop?

30

É a minha saída htop:

insira a descrição da imagem aqui

Por exemplo, estou confuso com este script ruby:

insira a descrição da imagem aqui

Quanta memória física está usando? 3+1+8+51+51? 51? 51+51?

Lai Yu-Hsuan
fonte
Então a REScoluna é a que você deseja examinar.
David Schwartz
sim, estou olhando para isso. Mas qual é o uso de memória do meu script? Por que existem dois 51s? Consome 102 megabytes? Ou apenas 51 megabytes? Nos RES processo exteriores contém os RES processo interior, por isso a 3, 1, 8são tudo menos do que 51?
Lai Yu-Hsuan
2
Existem dois anos 51 porque o processo bifurcou. Provavelmente não consome 102 megabytes porque os dois processos estão usando os mesmos 51 megabytes, mas você não pode saber facilmente. O outro processo RES contém o processo interno se essa memória é residente no outro processo também e não se não. Os campos RES informam quanta memória física cada processo está usando, mas outros processos podem (ou não) estar usando a mesma memória física também.
David Schwartz
1
Se você quer saber se os dois processos estão usando a mesma memória, utilize pmap -d <process id>
Sirch
1
@ LaiYu-Hsuan: Sim, você está errado. As páginas não são copiadas, são compartilhadas. Eles são copiados apenas se um dos processos for gravado na página e precisarão ser compartilhados. (A é chamado de "copy on write" ou "vaca".)
David Schwartz

Respostas:

45

Oculte os threads do usuário (shift + H) e feche a visualização em árvore do processo (F5); em seguida, você pode classificar o processo de seu interesse por PID e ler a coluna RES (classificar por MEM% pressionando shift + M ou F3 para pesquisar em linha cmd)

nrc
fonte
4
Shift-H é o que eu procuro há séculos. Obrigado!
um nerd pago
4

A memória é uma coisa difícil, você não pode calcular a memória física usada apenas executando ps / htop / top. A memória pode ser compartilhada entre processos.

Eu recomendo que você verifique o uso com este script:

http://www.pixelbeat.org/scripts/ps_mem.py

GioMac
fonte