Rastreando o processo de memória no Ubuntu

6

Eu tenho um aplicativo rails 3 com 100-200 visitantes únicos diários. o memória total consumida no servidor (Ubuntu) é de cerca de 1,5-2 GB. eu quero saber quanta memória é usada por cada processo. Quais são as melhores ferramentas para rastrear memória usada por diferentes processos?

    
por N.N. 11.10.2011 / 12:14

2 respostas

10

Você poderia simplesmente ativar top e pressionar M para ordenar processos por uso de memória.

Você pode executar ps vax | sort -k8n para mostrar processos classificados pelo uso da pilha residente ( ps v alterna para uma exibição centrada na memória).

Você pode ativar o snmp e configurar o mrtg para periodicamente pesquisar o sistema, gerando um gráfico de quanta memória é usada pelos processos que você gosta.

Você pode se resignar ao conhecimento de que o Ruby, por todos os seus benefícios, é péssimo no gerenciamento de memória em processos de longa execução. :)

Você pode combinar uma linha de comando ps mais complicada (veja a página man e leia sobre a opção -o) e rrdtool com um script de shell para gerar estatísticas históricas sobre os processos cuidado.

Etc.

    
por dannysauer 12.10.2011 / 06:30
3

O gerenciamento de memória é muito difícil, mas você pode usar top , htop ou, como sugere dannysauer, algo como ps vax | sort -k8n . Se você quiser obter uma visão geral / resumo, então free -m é bom.

Mas é comum que os processos consumam menos memória do que eles usam. Por exemplo, se você tiver dez processos usando 10MB cada, isso não significa que esses processos consumirão 100MB. A razão para isso é que o Linux reconhecerá partes de memória idênticas entre os processos, para que você não precise ter muitas cópias idênticas. Em outras palavras, seu sistema sempre pode usar mais memória do que você. Então você realmente precisa separar entre consumo de memória e uso de memória.

Nem sempre é fácil.

    
por Jo-Erlend Schinstad 12.10.2011 / 08:04