2017-02-19 11 views
1

Я хочу увеличить MaxClient для сервера Apache с модулем mpm_prefork. Я использую только веб-сервер на выделенном сервере с 256 ГБ оперативной памяти. Я не запускаю какую-либо другую программу на сервере.Apache MaxClient Настройка для 256 ГБ оперативной памяти с модулем mpm_prefork

Я бегу HTTP WebService API на сервере, который разработан с использованием PHP, который будет вызываться 1000 раз во втором

Я бегу CentOS 7

Сервер Спецификация
Intel® Xeon® E5- 1650 v3 шестиядерная Хасуэлл,
Оперативная память 256 ГБ DDR4 ECC оперативной памяти, жесткий
Drive2 х 480 Гб SSD (Программное обеспечение RAID-1),
Соединение 1 Гбит/с

1) Какое максимальное значение я могу использовать для MaxClient? Могу ли я использовать 1000?

2) Я использую версию сервера: Apache/2.4.6 (CentOS). Я не могу найти файл для изменения MaxClient. Где я могу его изменить? Файл /etc/httpd/conf/httpd.conf не имеет настройки MaxClient. Также файл /etc/httpd/conf.modules.d/00-mpm.conf также не имеет настройки MaxClient

Я новичок в сервере Apache. Пожалуйста, помогите мне сделать это. Я попробовал 2 дня, но не нашли никакого решения

Благодаря

ответ

1

Это не входит в конфигурации по умолчанию, которая поставляется с CentOS 7. Добавьте блок, как это в верхней части вашего httpd.conf, до LoadModule директив (это то, что я использую для нижнего сервера спецификации):

<IfModule prefork.c> 
     StartServers  8 
     MinSpareServers  5 
     MaxSpareServers 20 
     ServerLimit  256 
     MaxRequestWorkers 200 
     MaxConnectionsPerChild 1000 
</IfModule> 

MaxClients был переименован MaxRequestWorkers в Apache 2.4. Я сохраняю ServerLimit немного выше, поскольку ServerLimit не может быть изменен при перезагрузке, но MaxRequestWorkers может. ServerLimit устанавливает максимальное значение для MaxRequestWorkers. Таким образом, размещение ServerLimit немного выше дает вам возможность увеличить MaxRequestWorkers в чрезвычайной ситуации, не отключая клиентов.

Это то, что я использую на своем сервере. С spec, который у вас есть, я уверен, что значение 1000 для MaxRequestWorkers будет в порядке. Возможно, положить ServerLimit на 1200.

См. documentation for ServerLimit.

Вы также захотите увеличить другие значения. Возможно 40 для StartServers, 25 для MinSpareServers и 100 для MaxSpareServers.

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

Пожалуйста, research all the directives и принять собственные решения. Надеюсь, что это вы начнете.

Собираем все вместе, я предлагаю вам использовать:

<IfModule prefork.c> 
     StartServers  40 
     MinSpareServers  25 
     MaxSpareServers 100 
     ServerLimit  1200 
     MaxRequestWorkers 1000 
     MaxConnectionsPerChild 1000 
</IfModule> 

Держите глаз на ресурсы сервера, как только вы его на месте, хотя, и сервер используется.Вероятно, вы можете использовать значительно более высокие значения, чем это.

Еще один важный вопрос

Я настоятельно рекомендую вам отключить LoadModule директивы для любых модулей, которые вы не используете (просто закомментируйте их). Это значительно снизит объем памяти каждого процесса сервера и позволит вам запустить больше из них. В конфигурации по умолчанию загружено много модулей, которые вам не нужны. Пройдите через них один за другим и Google за то, что они делают. Это повысит эффективность использования ресурсов.

+0

Большое спасибо за ваш ответ. в настоящее время используют модули LoadModule mpm_prefork_module/mod_mpm_prefork.so в файле /etc/httpd/conf.modules.d/00-mpm.conf. Вы хотите также отключить это? – user231410

+0

Нет, вам это нужно. Я имею в виду, что в верхней части вашего httpd.conf вы найдете много многих директив LoadModule. Я отключил около 30 или более на моем сервере, и вы, вероятно, можете сделать то же самое. Каждый из них добавляет к серверу разные функциональные возможности, и большинство из них вам не понадобится. Каждый бит дополнительной функциональности добавляет использование памяти для каждого процесса сервера. Для этого требуется время, чтобы пройти через все, но стоит того. Вы должны настроить Apache, чтобы он работал эффективно, и это большая его часть. Особенно, когда использование ресурсов так важно для вас. – SuperDuperApps

+0

ОК Спасибо вам большое за ваш ответ – user231410