Я столкнулся с проблемой на сервере Apache, когда количество одновременных пользователей достигает 250. Проблема возникала только тогда, когда номер простаивающего рабочего был установлен на 0.
Итак, мой вопрос: обслуживает ли один рабочий Apache только 1 запрос или больше? Как я могу увеличить количество рабочих или максимальных пользователей до 700 одновременно?
Я использую Apache 2.2 в Windows 2008 R2, а тип MPM: mpm_winnt.
Похоже, что mpm_winnt очень близок по дизайну к mpm_worker. mpm_worker использует несколько процессов (серверов) с несколькими потоками на процесс для обслуживания соединений. mpm_winnt использует только один процесс.
Итак, вы можете настроить количество одновременных подключений, используя ThreadLimit
и ThreadsPerChild
директивы.
Пожалуйста, прочтите документы, прежде чем слепо менять эти два.
Посмотрите на MaxClients - это обычная настройка для prefork и worker.
http://httpd.apache.org/docs/2.2/mod/mpm_common.html#maxclients
Для типичной конфигурации меньшего сервера с Prefork MPM, вы, вероятно, захотите что-то вроде:
StartServers 5
MinSpareServers 1
MaxSpareServers 10
ServerLimit 500
MaxClients 500
MaxRequestsPerChild 5000
Обратите внимание, это устанавливает ограничение на 500. Если вы хотите большего, просто увеличьте значение. Значения разумны для общих небольших веб-сайтов, но если ваш сайт не является «универсальным», вам действительно нужно потратить некоторое время и адаптировать эти значения к вашему сайту.
Если вы получаете намного больше, пора переключиться на другой MPM, такой как worker или event. Однако это может потребовать изменения различных аспектов сайта, в зависимости от того, какие технологии вы используете.
Для Резьбовой MPM (Событие, Рабочий) и общий веб-сайт меньшего размера:
StartServers 5
MinSpareThreads 1
MaxSpareThreads 10
MaxClients 1024
ThreadsPerChild 64
MaxRequestsPerChild 50000
MPM WinNT имеет только один процесс (дочерний), так что вам нужно подтолкнуть ThreadsPerChild к чему-нибудь разумному. В другом ответе есть ссылки на соответствующие страницы руководства Apache.