Apache и mod_wsgi, рабочий процесс застрял в состоянии W, запрос никогда не умирает. Как поставить диагноз?
Я использую Apache 2.2 с mod_wsgi, Python 2.7 и mpm_worker. Иногда один из рабочих процессов застревает, и все его потоки останавливаются в состоянии записи (как показано на скриншоте ниже).
Это происходит один раз в день для одного рабочего процесса.
Я полагаю, это либо потому, что
Некоторая внутренняя проблема в Apache
Все мои потоки Python внутри тупика рабочего процесса mod_wsgi как-то
Пока единственное средство, которое я нашел, это полный перезапуск Apache (не изящный).
Я надеюсь найти несколько советов, как диагностировать проблему, что ее вызывает
Почему Apace
Timeout
не убивает рабочие потоки / процессы. Времяtimeout
это одна минута, но похоже, что эти потоки и работники работали счастливо несколько часов по одному запросу.Можно ли получить дамп потока изнутри
mod_wsgi
и посмотреть, не заблокированы ли сами потоки PythonЕсть идеи, что может быть причиной этого и как исправить ситуацию?
Ниже скриншот, показывающий Apache server-status
где один из рабочих процессов (1-0) застрял.
1 ответ
После включения WSGIDaemonProcess
и при переключении на отдельные процессы-демоны эта проблема больше не возникает, как рекомендуется в связанном вопросе.