Pergunta

Eu tenho uma instalação OSQA (Python / Django Q&A Application) que atende a 8 sites diferentes. Os sites estão todos em desenvolvimento, recebendo tráfego mínimo. O servidor é um servidor privado virtual com 512 MB de RAM.

O Apache está servindo apenas páginas dinâmicas com mod_wsgi atrás do nginx. Não consigo impedir que o Apache consome cada vez mais memória com cada solicitação até o servidor engasgar.

Eu experimentei os parâmetros de configuração sem muita sorte para minimizar a pegada da memória. Com os seguintes parâmetros MPM_Prefork em apache2.conf:

StartServers          2
MinSpareServers       1
MaxSpareServers       4
MaxClients            4
MaxRequestsPerChild 100

2 Processos Apache começam a usar 4 MB e, após a primeira solicitação, existem 4 processos com cada quase 50 MB e a cada nova solicitação esses 4 processos subem constantemente até quase 200 MB cada.

Eu sinto que há algo errado acontecendo. Quaisquer sugestões são muito apreciadas.

Foi útil?

Solução

KeepAlive Off
MaxSpareThreads 3
MinSpareThreads 1
ServerLimit 3
SetEnvIf X-Forwarded-SSL on HTTPS=1
ThreadsPerChild 2

WSGIDaemonProcess osqaWSGI processes=2 python-path=/web/osqa_server:/web/osqa_server/lib/python2.6 threads=1 maximum-requests=550
WSGIProcessGroup osqaWSGI

Corriu -se a isso com 10.000 hits simultâneos e ainda estava de pé.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top