Osqa Apache Memory Plearprint
-
27-09-2019 - |
Вопрос
У меня есть установка ASQA (Python / Django Q & A), обслуживающая 8 различных сайтов. Сайты все в разработке, получают минимальный трафик. Сервер представляет собой виртуальный частный сервер с 512 МБ ОЗУ.
Apache обслуживает только динамические страницы с MOD_WSGI за Nginx. Я не могу остановить Apache потребляя все больше и больше памяти с каждым запросом до тех пор, пока сервер не задумывается.
Я экспериментировал с параметрами конфигурации без особой удачи, чтобы минимизировать след памяти. Со следующими параметрами MPM_PREFORK в Apache2.conf:
StartServers 2
MinSpareServers 1
MaxSpareServers 4
MaxClients 4
MaxRequestsPerChild 100
2 процессы Apache начнут использовать 4 МБ и после первого запроса существует 4 процесса с каждым почти 50 МБ, а при каждом новом запросе этих процессов устойчиво поднимаются до почти 200 МБ каждый.
Я чувствую, что есть что-то не так. Любые предложения очень ценятся.
Решение
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 одновременных хитов, и он все еще стоял.