Я хотел бы отредактировать свой httpd.conf, чтобы принимать не более 1000 клиентских подключений. вот что у меня есть сейчас:
StartServers 8 MinSpareServers 5 MaxSpareServers 20 ServerLimit 256 MaxClients 256 MaxRequestsPerChild 4000 StartServers 2 MaxClients 150 MinSpareThreads 25 MaxSpareThreads 75 ThreadsPerChild 25 MaxRequestsPerChild 0
Как мне его отредактировать?
Предполагая, что у вас достаточно ОЗУ для обслуживания запросов, и вы используете модуль многопроцессорной обработки prefork, вы можете использовать 2 директивы MaxClients
и ServerLimit
установить общее количество одновременных запросов, которые будут обслуживаться;
Чтобы проверить предварительный запуск apachectl -V | grep MPM
и ищите следующий вывод;
# apachectl -V | grep MPM
Server MPM: Prefork
-D APACHE_MPM_DIR="server/mpm/prefork"
В MaxClients Директива устанавливает ограничение на количество одновременных запросов, которые будут обслуживаться.
Любые попытки подключения сверх лимита MaxClients обычно ставятся в очередь до числа, зависящего от директивы ListenBacklog. Как только дочерний процесс будет освобожден в конце другого запроса, соединение будет обслуживаться.
Но ServerLimit
также устанавливает максимальный предел количества процессов, которые apache будет порождать для обслуживания запросов.
Для prefork MPM директива ServerLimit устанавливает максимальное сконфигурированное значение для MaxClients на время жизни процесса Apache.
следовательно, я бы пошел на что-то вроде;
ServerLimit 1000
MaxClients 1000
Альтернативно для For the worker MPM, this directive in combination with ThreadLimit sets the maximum configured value for MaxClients for the lifetime of the Apache process. Any attempts to change this directive during a restart will be ignored
рабочие Документы ThreadLimit здесь