Назад | Перейти на главную страницу

Последствия ограничения максимального количества процессов httpd

Я рассматриваю возможность ограничения максимального количества процессов httpd на веб-сервере centos / apache. Я видел несколько сообщений, в которых обсуждается принятие этого действия для уменьшения нагрузки на память (вот почему я рассматриваю его), но ни в одном из них не обсуждаются последствия для конечных пользователей. Будем очень признательны, если кто-то сможет прояснить этот момент.

Последствия для конечного пользователя просто заключаются в том, что как только сервер достигает предела одновременных процессов / потоков / подключений, он не будет принимать больше подключений, пока какой-либо другой пользователь не остановится.

РЕДАКТИРОВАТЬ: как указано в комментариях symcbean, сначала они просто получат отложенный ответ, поскольку у сервера есть очередь ожидания ожидания. Только когда эта очередь заполнится, они получат отказ в соединении. В любом случае в результате они получат более медленный ответ или вообще не ответят.

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

Я бы посоветовал прочитать Как вы проводите нагрузочное тестирование и планирование емкости для веб-сайтов? для получения дополнительной информации об этом.

Цена заключается в том, что людям фактически говорят «занято, попробуйте еще раз позже», вместо того, чтобы тратить очень много времени на ожидание результата.

Если, например, нормальное время обслуживания страницы составляло 1/10 секунды, небольшой сервер довольно быстро доставит до 10, но после этого ограничения резко замедлится: 50 пользователей увидят отдельные ответы за 4 секунды, В 40 раз медленнее, в то время как 100 подключающихся пользователей увидят, что их ответы займут 9 секунд, что в 90 раз медленнее. Это ужасное следствие того, что могло быть вполне "нормальной перегрузкой" (;-))

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

--дэйв

Точный эффект зависит от ОС / версии apache.

В вашем CentOS у вас есть два значения, которые следует учитывать: - процессы (дочерние) - потоки на процесс

Если теперь у вас есть 100 потоков на каждого ребенка и разрешено 100 дочерних элементов, у вас может быть доступ от 10 000 человек одновременно.

Если вы уменьшите это количество до 5 дочерних элементов (тот же ThreadsPerChild), только 500 человек смогут получить доступ одновременно.

положительный эффект для вас: экономия памяти, но возможный отрицательный эффект: люди (любой> 500) не могут получить доступ к вашему сайту

Это помогает узнать, сколько людей заходят на ваш сайт в определенное время, чтобы получить представление о том, сколько людей будут заходить на ваш сайт одновременно.