descubra o processo culpado

3

Esta é uma questão básica de administração do Linux. Nós temos uma máquina linux do CentOS rodando um aplicativo de produção. Existem 10 processos específicos da aplicação em execução nessa máquina. Once in every 3/4 days, the linux machine freezes e a única maneira de recuperá-lo é reiniciá-lo a partir do console do Amazon AWS.

Temos o Amazon Cloudwatch habilitado, que captura o uso da CPU a cada 5 minutos. Vemos que a CPU atinge 100% (8 núcleos) em 10 a 15 segundos antes de congelar. E infelizmente não conseguimos descobrir nada dos arquivos de log do processo.

Como podemos realmente marcar which process out of those 10 processes is causing the linux server to freeze?

Existe algum aplicativo de monitoração de CPU / memória simples que pode gravar os principais hoggers de CPU / memória no disco, digamos a cada 2 segundos? Aprecie quaisquer outras ideias para descobrir o processo culpado.

    
por so_mv 02.06.2011 / 20:52

2 respostas

3

Você pode simplesmente executar top no modo em lote e salvar a saída em um arquivo:

$ top -b -d 2 > /your/log/file &

-d 2 é o período de amostragem. Esteja avisado que isso gerará um grande volume de dados.

Você pode querer usar a opção -u para listar apenas os processos de um determinado usuário ou até mesmo a opção -p para listar explicitamente os processos do seu aplicativo.

    
por 02.06.2011 / 21:05
0

Este link contém várias (20) ferramentas para monitorar processos. O top , claro, é o mais popular, mas outras ferramentas, como iotop , também são úteis. iotop mostrará quais processos estão usando mais IO do sistema de arquivos.

link

    
por 22.10.2014 / 22:40