apache prefork / mod_wsgi порождает количество процессов, казалось бы, прошлую конфигурацию

в рабочей среде, где nginx обращается обратно к apache mpm-prefork / mod_wsgi, и вижу 90 дочерних процессов apache, когда я ожидаю, что 40 будет максимальным, как описано ниже. конфигурация / настройка ничего интересного:

  1. nginx – это обратное проксирование на apache через proxy_pass и обслуживание статических носителей
  2. apache обслуживает только динамические запросы

соответствующая конфигурация nginx:

 worker_processes 15; events { worker_connections 1024; } keepalive_timeout 10; 

соответствующая конфигурация apache:

 KeepAlive Off MaxKeepAliveRequests 100 KeepAliveTimeout 15 <IfModule mpm_prefork_module> StartServers 20 MinSpareServers 7 MaxSpareServers 10 MaxClients 200 MaxRequestsPerChild 0 </IfModule> 

mod_wsgi config, где webapp – это имя процесса:

 WSGIDaemonProcess webapp user=www group=users threads=1 processes=40 

я что-то упускаю?

3 Solutions collect form web for “apache prefork / mod_wsgi порождает количество процессов, казалось бы, прошлую конфигурацию”

Процессы daemon mod_wsgi будут представлять собой дочерние процессы сервера Apache, хотя они и не совпадают. Это связано с тем, что процессы-демоны mod_wsgi являются fork родительского процесса Apache, а не fork / exec. Другими словами, имя исполняемого файла не изменяется.

Чтобы иметь возможность отличать процессы демона mod_wsgi от обычных дочерних процессов сервера Apache, поставьте опцию «display-name» на WSGIDaemonProcess. Этот параметр позволяет вам переименовать процесс как видимый в выводе из программы «ps» и некоторых вариантах таких программ, как «верх». См. Документацию по директиве WSGIDaemonProcess на сайте mod_wsgi.

http://code.google.com/p/modwsgi/wiki/ConfigurationDirectives#WSGIDaemonProcess

Возможно иметь больше процессов apache, чем экземпляры WSGI.

Измените apache MaxClients на 40, если вы хотите ограничить процессы apache.

Вы используете mod_wsgi в режиме демона, поэтому процессы mod_wsgi и процесс обработчика Apache независимы.

По вашей конфигурации сразу после запуска apache у вас есть:

  • 40 (процессы =) mod_wsgi запускаются в одно и то же время.
  • 20 (StartServers) Процессы обработчика Apache, которые могут быть автоматически уменьшены до 10 (MaxSpareServers), если нет входящей активности.

Затем при загрузке процессы обработчика Apache могут вырасти до 200 (MaxClients). Но число процессов mod_wsgi будет одинаковым – 40.

Мой совет – использовать рабочий рабочий день, чем Apache, обрабатывает только динамический контент. Это может помочь уменьшить потребление памяти и повысить масштабируемость.

  • Проблемы с URL-адресами при запуске Django в подкаталоге или say suburl
  • Запуск сайта Django в mod_wsgi
  • развертывание приложения django на Apache с использованием mod_wsgi
  • Django или mod_wsgi изменяет sys.path при запуске?
  • Импорт Pandas на сервере Apache вызывает ошибку тайм-аута
  • mod_wsgi (pid = 2179): целевой скрипт WSGI '/opt/graphite/conf/graphite.wsgi' не может быть загружен как модуль Python
  • Невозможно загрузить целевой WSGI-скрипт в качестве модуля Python
  • Не работает установка pylons (ckan) Mod_wsgi
  •  
    Interesting Posts for Van-Lav

    Вычислить максимальный результат с помощью векторизованного решения в python

    python-доступ к следующему объекту в базе данных, находясь в цикле for

    Использование matplotlib для маркировки точек на графике рассеяния на мыши с помощью некоторой метки, отличной от x, y координат

    Python: массив с разделителем numpy

    Python выравнивание заданий (стиль)

    Как найти корреляцию между группой значений в столбце dataframe pandas

    Обнаружение щелчка мыши Pygame

    Создание PNG-файла в Python

    Python рассчитывает разницу во времени, чтобы дать «годы, месяцы, дни, часы, минуты и секунды» в 1

    Список Python – «резервирование» пространства (~ изменение размера)

    Python / shapely: вычислить область полигона в плоских единицах (например, квадратные метры)

    UnicodeEncodeError: кодек charmap не может кодировать символы

    Значения по умолчанию для моделей в Google App Engine

    Как установить значение по умолчанию для WTForms SelectField?

    Простой способ поставить точки останова PDB в код Python?

    Python - лучший язык программирования в мире.