2010-10-31 5 views
1

У меня есть OSQA (приложение python/django q &), обслуживающее 8 разных сайтов. Все сайты находятся в разработке, получая минимальный трафик. Сервер является виртуальным частным сервером с 512 МБ оперативной памяти.OSQA apache memory footprint

Apache обслуживает только динамические страницы с mod_wsgi за Nginx. Я не могу остановить, чтобы Apache потреблял все больше и больше памяти с каждым запросом, пока сервер не задохнется.

Я экспериментировал с параметрами конфигурации без большой удачи, чтобы свести к минимуму объем памяти. Со следующими параметрами mpm_prefork в apache2.conf:

StartServers   2 
MinSpareServers  1 
MaxSpareServers  4 
MaxClients   4 
MaxRequestsPerChild 100 

2 Апача процессы начинаются с использованием 4 Мб и после первого запроса Есть 4 процессов с каждыми почти 50 МБ и с каждым новым запросом этих процессов 4 подниматься постепенно до около 200 мб каждая.

Я чувствую, что что-то не так происходит. Любые предложения приветствуются.

ответ

1
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 

Ran httperf против этого с 10 000 одновременных ударов, и он все еще стоял.

+0

Вы имели в виду MinSpareServers вместо MinSpareThreads? потому что MinSpareThreads не распознается. – omat

+0

Зависит от того, работаете ли вы с предки или работником. MinSpareServers означает, что вы используете prefork. См. Http://www.camelrichard.org/apache-prefork-vs-worker –

+0

Спасибо, теперь он выглядит лучше. но я немного смущен. после добавления части WSGIDaemonProcess теперь есть четыре процесса с самого начала. Процессы = 2 связаны с числом процессоров? что было бы оптимальным для 4-процессорной машины? – omat

 Смежные вопросы

  • Нет связанных вопросов^_^