Um dos meus processos do apache é enorme - como posso descobrir por quê?

2

Estou executando o Apache 2.2.12 com o mod_wsgi, hospedando um site do Django. A maioria dos processos filhos do apache pesa cerca de 125MB RSS, mas ocasionalmente vejo um balão filho para > 1GB RSS.

Neste ponto, normalmente há 1 processo enorme (> 1GB), um par de grandes (> 500MB) e o restante ainda ~ 125MB. Estes são os processos daemon mod_wsgi.

Eu tentei usar o rastreamento de vazamento de memória no Python para ver se é o código do Django, e não vejo vazamentos. Procurando nos logs não mostra nenhum pedido particularmente estranho.

Estou perplexo em como descobrir o que está causando isso - alguma idéia? Além disso, há alguma maneira alternativa de eliminar o grande processo do apache quando ele fica muito grande, sem reduzir o apache?

Mais alguns detalhes:

  • Não usando mod_php
  • Usando o pré-fork
por Malcolm Box 17.09.2010 / 10:56

2 respostas

1

Use mod_status com ExtendedStatus On e veja o que esse PID específico está fazendo.

    
por 23.09.2010 / 14:47
0

pmap -x pidofprocess

Você pode matar um filho do apache, mas isso não é uma ótima solução. Você também está executando com mod_php? mpm-prefork?

    
por 17.09.2010 / 13:31