Настройка Apache MaxClient для 256 ГБ оперативной памяти с модулем mpm_prefork

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

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

Я использую CentOS 7

Спецификация сервера
Intel® Xeon® E5-1650 v3 Hexa-Core Haswell,
ОЗУ 256 ГБ ОЗУ DDR4 ECC,
Жесткий диск 2 x 480 ГБ SSD (Software-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 в чрезвычайной ситуации без отключения клиентов.

Выше, что я использую на моем сервере. Я уверен, что со спецификацией у вас есть значение 1000 для MaxRequestWorkers будет хорошо. Возможно поставить ServerLimit в 1200

Увидеть документация для ServerLimit.

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

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

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

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

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

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

Еще одна важная проблема

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

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]