Перезапуск демонического процесса mod_wsgi

#python #mod-wsgi #wsgi

#python #мод-wsgi #wsgi

Вопрос:

У меня есть приложение wsgi, запущенное как демонический процесс mod_wsgi (в режиме демона). Моя настройка такова, что каждый демон перезапускается после 1000 запросов, как показано в руководстве по настройке mod_wsgi:

http://code.google.com/p/modwsgi/wiki/ConfigurationGuidelines

WSGIDaemonProcess www.site.com threads=1 processes=4 maximum-requests=1000

таким образом, время жизни одного демонического процесса составляет 1000 запросов.

Мой вопрос: когда перезапускается демонический процесс? Это происходит сразу после того, как ограничение на максимальное количество запросов завершает предыдущее, при следующем запросе?

ОТРЕДАКТИРОВАНО: исправлена опечатка в потоках.

Ответ №1:

Использование «максимальных запросов» в производственных настройках не рекомендуется, если только ваше приложение не настолько неисправно, что из-за него сильно утекает память, и вы не можете / не хотите это исправлять.

Тем не менее, флаг, срабатывающий при максимальном количестве запросов, в настоящее время установлен в начале запроса, который привел к тому, что счетчик достиг этого значения. Однако это деталь реализации, которая может измениться. Например, в mod_wsgi 4.0 это будет не так однозначно, поскольку в этой версии при определенных обстоятельствах вводится понятие таймаута плавного перезапуска, что означает, что до фактического перезапуска процесса может быть обработано больше запросов. Почему вам важно это знать?

Кроме того, почему вы устанавливаете ‘threads = 0’? Как вы думаете, каким будет результат для этого? Возможно, это не то, что вы думаете.

Комментарии:

1. Спасибо. Мне просто было любопытно, как обрабатывается перезапуск демонов. Я установил его на перезапуск на всякий случай, но, думаю, лучше провести тщательные тесты памяти, а затем я удалю его. threads=0 Была опечатка, это однопоточный режим, то есть 1 поток.