MOD_WSGI Modo Daemon vários processos httpd suspensos

1

Como desenvolvedor de python, eu tinha um pouco de entendimento de como o mod_wsgi funciona, que é o fato de ele lançar um novo processo python com cada solicitação. Isso não quer dizer que um novo processo de httpd, e sim um único processo httpd executando algo como

python /path/to/my/wsgi.py <param> <param>

Meu entendimento do modo daemon é que, se process = 1 (padrão), um único processo com 15 threads é usado para manipular uma solicitação. Mas o que acontece com o processo do httpd quando a solicitação é atendida?

A grande questão aqui é que, em meus registros, estou vendo até 30 processos de httpd consumindo mais de 3G de memória. O que isso pode ser uma indicação? Solicitações com código que nunca foi finalizado? apache dando um pedido e nunca completando?

Editar

Eu ps aux'd httpd para encontrar cerca de 22 processos. Quando eu me esforcei, a maioria deles estava apenas esperando, mas um continua imprimindo o seguinte, de novo e de novo:

select(0, NULL, NULL, NULL, {1, 0})     = 0 (Timeout)
wait4(-1, 0x7fff9d6990ec, WNOHANG|WSTOPPED, NULL) = 0

Qual para mim parece SQL?

    
por Sam Hammamy 19.01.2015 / 22:06

1 resposta

0

Foi uma falta de compreensão da configuração do apache. Eu fiz uma suposição de que o mod_wsgi estava sendo executado como um daemon, quando ele estava sendo executado no modo incorporado. A seção apache worker.c definiu o número de processos para 8 com uma expansão de 25 e é por isso que havia tantos processos de reserva.

    
por 24.01.2015 / 17:28