Monitorar o uso de carga e recursos de um único processo no Linux (Red Hat)

4

Alguém sabe de uma maneira de monitorar a carga & uso de recursos de um único programa. O que eu tenho é um processo que eu gostaria de saber quanta carga ele coloca no servidor, mas não é algo que eu possa apenas "monitorar" para ter uma idéia.

O que eu gostaria de fazer é algo como

$ monitor "someapp" &

e deixe-o rodar, então revise algum tipo de log. Existe algum pacote Red Hat ou programa para download que possa mais ou menos monitorar uma carga inteira de processos & uso de recursos?

    
por Mech Software 13.07.2010 / 20:21

2 respostas

1

SystemTap é o que você está procurando. Não será fácil (mas também não será muito difícil), mas valerá a pena.

O SystemTap é o RH designado & ferramenta suportada para este tipo de coleta de dados. O nome do pacote rpm é systemtap . É semelhante ao Dtrace do Solaris.

E não, não é uma pergunta vaga. Mas ... sim, olhar apenas o comportamento de um processo e ignorar o resto do sistema pode dar-lhe uma vaga resposta .

    
por 20.07.2010 / 19:42
1

O problema é que sua solicitação não está bem definida. Você diz que quer monitorar "quanta carga ele coloca no servidor", mas isso não é uma coisa simples. Programas podem causar carga de i / o, carga de cpu, carga de rede, memória 'load' (ie, falta de memória), até mesmo interrupção de carga (se eles interagem com hardware), mas todas essas coisas são agregadas para eficiência pelo kernel .

Por exemplo, se o seu processo usa uma biblioteca compartilhada que outro programa está usando, com qual programa ele conta? E se ele usa uma biblioteca compartilhada que não está sendo usada (e, portanto, não está carregada)? Se dois processos solicitarem simultaneamente para carregar uma biblioteca compartilhada, qual deles o i / o do disco será carregado? E se esses blocos de disco estivessem no cache de leitura antecipada porque um processo completamente não relacionado aconteceu para ler um arquivo que estava "próximo" no disco? Um sistema operacional é um sistema operacional ... assim, evidencia interações complexas que não permitem necessariamente que partes individuais sejam analisadas separadamente.

Algumas coisas lhe darão boas informações:

  • top mostrará uma lista de classificação com base em algumas métricas, embora leia a página de manual com cuidado para como coisas como contabilidade de memória são feitas.

  • / proc / é uma visualização mediada pelo kernel do seu processo, incluindo quais manipuladores de arquivos foram abertos, qual memória foi mapeada, todos os tipos de coisas. Veja a página de manual para informações detalhadas.

  • strace rastreará as chamadas do sistema que um programa faz para que você possa dizer, pelo menos até certo ponto, o que está fazendo. Novamente, a página do manual contém informações detalhadas.

por 13.07.2010 / 22:22