Como descobrir quanta memória um programa está tomando

8

Eu uso o htop para assistir meus processos, mas a maioria dos serviços executados são multiencadeados, então 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. / p>

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

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

    
por Jjdelc 08.01.2011 / 18:44

2 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 encadeamentos do userlands”.
  • Linux top: pressione H para alternar a exibição de encadeamentos (mas eles estão desativados por padrão).
  • Parte superior do OpenBSD: pressione T para alternar a exibição de encadeamentos (mas eles estão desativados por padrão).

Observe que mapeamentos de memória e, portanto, ocupação de memória, são uma propriedade de um processo, portanto, você sempre verá os mesmos números para cada thread em um processo. Se você vir números diferentes, isso significa que há 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. Alguma 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) são mais propensos a usar a memória compartilhada para trocar dados. Se você acabou de adicionar os números, muitas vezes você terá um número muito maior do que a memória usada.

    
por 08.01.2011 / 19:25
2

Você pode usar isto: link

    
por 11.01.2011 / 00:59

Tags