processa devagar após algum tempo de execução ativa

1

Eu tenho vários cron jobs rodando em uma máquina Ubuntu. cada um faz algumas coisas muito pesadas. As tarefas cron estão analisando os arquivos e quanto maior o arquivo, mais tempo eles demoram para analisá-lo. O estranho é que, se eu fizer os arquivos muito grandes (como 30MB), o script fica travado. Ele começa a processá-los com muito entusiasmo, mas depois de algum tempo (algo como 5-10 minutos) o uso da CPU do processo cai muito e entra em algum estado de "zumbi". Se antes disso, o processo em htop estava usando 70-80% da CPU, então, após essa queda, diminui para algo como 5-10%. a média de carga cai também. O status dos processos às vezes muda para D em htop, que AFAIR significa zumbi. Hoje eu notei o mesmo comportamento dos processos do mysql ao executar consultas pesadas (uma consulta levava cerca de 4 horas para ser executada). as tarefas do cron são principalmente php e durante o seu processamento a maior parte da CPU consome o processo php e não o mysql. então eu acho que o problema não é com um idioma / programa específico, mas com a maneira como os processos são "gerenciados".

O único outro lugar em que vi comportamento semelhante foi em minha instância do Amazon EC2 quando, após algum uso agressivo da CPU, a cota da CPU estava entrando em vigor e tudo estava diminuindo drasticamente.

Esta é uma máquina dedicada rodando o Ubuntu. qual pode ser a causa?

Editar: adicionando alguns detalhes

a memória está bem e não é um problema de trocar IMHO.

iostat diz isso sobre a atividade de IO: link parece correto para mim, porque se esperava que algum IO levasse lugar e parece que o processador não está "sobrecarregado" por IO esperando. me corrija se eu estiver errado:)

    
por Yervand Aghababyan 12.01.2011 / 18:20

3 respostas

1

O

sar (1) fornecerá os dados que você precisa analisar aqui. Você pode olhar para o sar -A para ver todas as estatísticas de sar coletadas e, em seguida, detalhar. Por exemplo, sar -b fornecerá as estatísticas de E / S para ver se você está se atolando na atividade do disco.

Um bom recurso do sar é o registro em segundo plano para que você possa usá-lo para revisar dados históricos, não apenas as estatísticas atuais.

    
por 12.01.2011 / 19:04
0

Bem, você pode verificar se está sendo " picado ", mas parece mais o processo está se esgotando devido a problemas de memória ou IO. Você pode postar o uso da memória?

    
por 12.01.2011 / 18:28
0

O estado "D" significa que o comando está aguardando o IO. Não é o mesmo que um processo zumbi.

Verifique quanta ram seu processo está usando - se estiver usando muito e estiver trocando, isso pode se manifestar como os sintomas que você está vendo.

    
por 12.01.2011 / 18:40

Tags