mod_wsgi слишком медленно при запуске? - PullRequest
4 голосов
/ 03 марта 2010

Я разрабатываю веб-сайт django, который для производства использует mod_wsgi - посетителей почти нет, поэтому каждый раз, когда я захожу, кажется, что мод wsgi запускается и открывает процессы python - для полной загрузки требуется около 1-2 минут .

Могу ли я что-нибудь сделать, чтобы при первом запуске не замедлилось? Это обычная проблема или проблема с моей конфигурацией?

Ответы [ 2 ]

6 голосов
/ 03 марта 2010

Это не займет много времени, даже если вы использовали неоптимальную конфигурацию использования встроенного режима и Apache prefork MPM. Хотя вы могли бы ухудшить ситуацию, если бы для MaxRequestsPerChild было установлено значение 1 для процессов Apache.

Предложения, убедитесь, что вы используете режим демона mod_wsgi и работаете с одним многопоточным процессом (настройки по умолчанию для WSGIDaemonProcess). Это обеспечит, по крайней мере, наличие только одного экземпляра Django, а не одного на процесс сервера Apache.

В качестве подтверждения того, что вы делаете, отредактируйте свой вопрос и опубликуйте фрагмент текущей конфигурации Apache, показывающий, как установить биты mod_wsgi. Также укажите, используете ли вы Apache prefork или рабочий MPM, что определяется с помощью команды httpd -V и какую платформу вы используете.

Кстати, вы пробовали простую программу WSGI hello world для проверки вашей установки? См. «http://code.google.com/p/modwsgi/wiki/QuickConfigurationGuide'.». А вы пробовали с пустым сайтом Django, а не с реальным, чтобы увидеть, действительно ли это ваши изменения?

0 голосов
/ 16 декабря 2016

Еще немного об этом. Вы не хотите использовать период prefork MPM, это вызовет процесс 1x mod_wsgi для каждого предварительно разветвленного процесса.

Лучший способ преодолеть это - запустить процесс WSGI в режиме Daemon с рабочим MPM.

https://docs.djangoproject.com/en/dev/howto/deployment/wsgi/modwsgi/#using-mod-wsgi-daemon-mode

Edit:

Также обратите внимание, что вы ДОЛЖНЫ указать группу, в противном случае каждый процесс HTTPD, по-видимому, создает свой собственный процесс mod_wsgi после того, как все соединения были закрыты.

WSGIScriptAlias ​​/ /usr/local/apache2/htdocs/ABC.com/build/wsgi.py WSGIPass Авторизация включена WSGILazyInitialization Off WSGIDaemonProcess ABC.com user = apache group = apache display-name =% {GROUP} процессов = 1 потоков = 256 WSGIProcessGroup ABC.com

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...