Como descobrir quanta memória um programa leva

8

Eu uso o htop para assistir meus processos, mas a maioria dos serviços executados é multiencadeada, portanto, eles são mostrados em várias linhas com um% de uso de memória que, em alguns casos, é o mesmo para todos, às vezes varia entre eles.

Digamos que, no caso do Firefox, ele possa listar 15 processos, cada um consumindo 13% de memória.

Posso saber hoc muita memória é Firefox, MySQL, algum script fcgi ou qualquer coisa está consumindo? já que a saída htop parece enganosa.

Jjdelc
fonte

Respostas:

6

A maioria das principais implementações tem uma maneira de ativar ou desativar a exibição de threads.

  • htop: no menu "Opções de configuração / exibição", "Ocultar tópicos da terra do usuário".
  • Parte superior do Linux: pressione Hpara alternar a exibição de threads (mas eles estão desativados por padrão).
  • OpenBSD top: pressione Tpara alternar a exibição de threads (mas eles estão desativados por padrão).

Observe que os mapeamentos de memória e, portanto, a ocupação de memória, são propriedade de um processo; portanto, você sempre verá os mesmos números para cada encadeamento em um processo. Se você vir números diferentes, significa que existem vários processos.

Não há uma maneira fácil de descobrir o consumo total de memória de um conjunto de processos, porque o conceito não está bem definido. Parte da memória pode ser compartilhada; isso acontece o tempo todo com bibliotecas compartilhadas e, além disso, processos relacionados (como várias instâncias de um servidor) têm maior probabilidade de usar memória compartilhada para trocar dados. Se você apenas adicionar os números, geralmente obterá um número muito maior que a memória real usada.

Gilles 'SO- parar de ser mau'
fonte
1
Não percebi que o conceito de memória do processo não está bem definido, acho que é isso que faz com que tudo tenha mais sentido. Obrigado
Jjdelc
2

Você pode usar isso: http://www.pixelbeat.org/scripts/ps_mem.py

RDA
fonte
por que usar isso? por que é melhor do que as ferramentas padrão?
tshepang
Conta a memória compartilhada apenas uma vez.
GDR