Назад | Перейти на главную страницу

Apache ограничивает количество одновременных подключений до 150

Сервер Ec2 Ubuntu, на котором запущены apache и php. Мобильное приложение размещено на сервере. Приложение подключается к серверу через 80 порт. Проблема заключается в том, что apache ограничивает процессами до 150 в часы пик. ЦП почти на 100% простаивает, когда в apache 150 процессов. Увеличено максимальное количество клиентов до 500 на Prefork mpm. Но это все еще ограничивается 150 процессами. Ps aux и newrelic показывают ограничение процесса apache на уровне 150.

Проблема заключалась в том, что MaxRequestWorkers было 150 на /etc/apache2/mods-enabled/mpm_prefork.conf он не меняется после увеличения значения в apache conf. Теперь изменено на

<IfModule mpm_prefork_module>
          StartServers                     5
          MinSpareServers           5
          MaxSpareServers          10
          ServerLimit               1200
          MaxRequestWorkers         1200
          MaxConnectionsPerChild    1000 
</IfModule>

-на /etc/apache2/mods-enabled/mpm_prefork.conf и теперь apache получает больше хитов.

Прочтите Документация Apache для модуля MPM. Похоже, вам нужно увеличить значение MaxRequestServers.

На странице также есть ссылка на документацию по настройке производительности.

Наверное, ServerLimit переменная. Часто его еще нет в файле конфигурации по умолчанию, поэтому вам придется его добавить. Перезапустите Apache, чтобы он вступил в силу (перезагрузка не работает).

Я обычно делаю такой блок:

<IfModule mpm_prefork_module>
    StartServers          150
    MinSpareServers       150
    MaxSpareServers       150
    MaxClients            150
    Serverlimit           150
    MaxRequestsPerChild   10000
</IfModule>

Это отключает создание / уничтожение воркеров, в чем я не вижу смысла.