При установке системы ограничение на количество пользовательских процессов равно 128, чего явно не хватает при использовании на загруженных веб-серверах. Предположительно, стоит прописывать параметр в /etc/security/limits.conf для юзера apache при установке. Steps to Reproduce: 1. Установить Apache. 2. Запустить более 128 конкурентных HTTP запросов. 3. Actual Results: Не отрабатываются запросы. Expected Results: Максимальное количество клиентов должно быть ограничено параметром MaxClients.
2 ldv: как бы это так поэлегантнее сделать?
Еще одно предложение с целью сделать сборку apache более готовой для использования под большой нагрузкой. Максимальное значение параметра MaxClients ограничено значением константы HARD_SERVER_LIMIT и сейчас равняется 256. Стоит поднять его до более разумного лимита (скажем, 1024). Например, при помощи таких однострочников в спеке: subst "s/HARD_SERVER_LIMIT 256/HARD_SERVER_LIMIT 1024/" \ apache_1.3.33/src/include/httpd.h subst "s/HARD_SERVER_LIMIT 256/HARD_SERVER_LIMIT 1024/" \ apache-mod_perl_1.3.33/src/include/httpd.h (ну или создав соответствующий патч, что, в общем-то более надежно)
HARD_SERVER_LIMIT поднят в 1.3.33rusPL30.20-alt3, касательно ulimits -- вижу разумным пока написать TUNING.ALT, поскольку MaxClients и компанию тоже придётся подымать и достаточно синхронно. Есть мысли касательно применения переключаемых кусочков конфигов и control(8), благо переход на addon-modules.d/ начался и последовать вполне может какой conf.d/ ;-)
Я вот думаю, а не обнаглеть ли до такой степени, чтобы из коробки прикрутить reverse proxy? У меня до этого MaxClients 100 не хватало, после и двух десятков хватает. Причём сделать Reverse Proxy и с помощью самого apache, и с помощью того же nginx. Ну и переключать по установке nginx. Симпатишное решение получается. А 1024 MaxClients для mod_perl apache это самоубийство. Имеет смысл либо на сайтах с чатами, либо если у нас процессоров чёрт-знает-сколько-но-на-x86-столько-ставят-редко и памяти не меньше 8-и гиг. А reverse proxy должен срезать большую часть запросов. В идеале на mod_perl должно приходить где-то 4-<кол-во процессоров> запросов (эмпирическая формула).
Ну, MaxClients не отменяли, да и в apache packagers team ты вроде уже загремел. :) Сейчас залью 1.3.33-alt3 и рассматривай/обдумывай. Но у меня сейчас настроение скорее конфиги распустить в стружку, чтоб они хоть как-то управляемыми могли быть, а не простынями.
(In reply to comment #4) > Я вот думаю, а не обнаглеть ли до такой степени, чтобы из коробки прикрутить > reverse proxy? Ой, не надо из коробки. Это ж все запросы пойдут якобы с localhost'а, эмулируя своих доверенных юзверей и ломая потенциально всякие дефолтные конфигурации. > Симпатишное решение получается. Да, если его индивидуально применять "строго по указанию врача". > А 1024 MaxClients для mod_perl apache это самоубийство. Думаю, что и reverse proxy, и увеличение MaxClients стоит сделать опциональным. Другое дело, что нежелательно дополнительных проблем вроде ulimits создавать, чтобы не сбивать веб-админов с толку.
Чтобы не было запросов "якобы с localhost" был собран модуль mod_realip
Распиливание конфигов я поддерживаю руками и ногами. А потом я как-нибудь хорошенько напьюсь, и попробую всё это счастье электрифицировать :)
Кстати, TUNING.ALT добавлен в 1.3.37rusPL30.22-alt8. Просьба по возможности почитать и высказаться.