Какие значения использовать для FastCGI maxrequests, maxspare, minspare, maxchildren?

Я запускаю приложение Django с использованием FastCGI и lighttpd.

Может ли кто-нибудь объяснить мне, что я должен учитывать при принятии решения, какое значение использовать для maxrequests, maxspare, minspare, maxchildren?

Эти параметры не слишком хорошо документированы, но кажутся весьма важными.

Не говорите мне просто, что они делают; Я хочу понять, что у них есть подразумеваемое и как мне решить, какие значения использовать.

Спасибо.

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
6
0
4 988
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Начнем с определения

    maxrequests: How many requests does a child server before being killed 
                 and a new one forked
    maxspare   : Maximum number of spare processes to keep running
    minspare   : Minimum number of spare processes to prefork
    maxchildren: Hard limit number of processes in prefork mode

Это означает, что у вас будет не более maxдети процессов, работающих в любой момент времени на вашем веб-сервере, каждый из которых работает для запросов maxrequests. При запуске сервера вы получите процессы minspare, которые будут продолжать расти до maxspare (или maxдети), если поступают новые запросы.

Итак, minspare позволяет вам сказать, сколько одновременных запросов вы ожидаете как минимум (важно, чтобы избежать создания процесса, если вы начинаете с одного, лучше начинать, скажем, с 10), а maxspare позволяет вам сказать, сколько одновременных запросов будет у вас максимум внимания к серверу (без ущерба для ожидаемого времени отклика и т. д. Для проверки требуется стресс-тест). И maxrequests говорит о времени жизни каждого дочернего элемента на случай, если они не могут работать вечно из-за каких-либо ограничений.

Хорошее объяснение. Однако не могли бы вы рассказать больше о maxrequests? Это моя самая большая проблема. Почему вы хотите, чтобы дочерний процесс умирал после определенного количества запросов? Для защиты от возможных утечек памяти?

ibz 26.12.2008 12:10

Я не могу говорить за всех, хотя с Django и fastcgi мы наблюдаем множество проблем с памятью с долгоживущими процессами fastcgi. Установка разумного значения для maxrequests избавляет нас от необходимости вручную уничтожать большие процессы, так как они находятся недостаточно долго, чтобы утечка памяти нанесла большой ущерб.

JJ Geewax 28.08.2009 18:29

Так в чем разница между maxchildren и maxspare? Мне они кажутся излишними.

Dustin Boswell 26.10.2010 09:11

Может быть максимум процессов maxchildren и максимум резервных процессов maxspare (свободных, неиспользуемых, ожидающих процессов запроса). Итак, maxchildren> = maxspare.

Vinko Vrsalovic 26.10.2010 10:43

Не забудьте согласовать свои настройки fcgi с настройками вашего рабочего Apache. Я обычно держу больше рабочих apache, чем рабочих fcgi ... они легче и будут ждать, пока освободится доступный воркер fcgi, чтобы обработать запрос, если параллелизм достигнет уровня выше, чем мой maxspare.

Другие вопросы по теме