По умолчанию веб-сервер Apache настроен на поддержку 160 запросов в секунду. При увеличении посещаемости вашего сайта Apache начнет отбрасывать дополнительные запросы, что испортит качество обслуживания клиентов. Вот как увеличить количество запросов в секунду на Apache.
Сколько запросов в секунду может обрабатывать Apache
По умолчанию лимит запросов Apache составляет 160 запросов в секунду, то есть Apache может обрабатывать до 160 запросов в секунду без каких-либо изменений.
Как увеличить количество запросов Apache в секунду
Ниже описаны шаги для увеличения количества запросов Apache в секунду.
1. Установите модуль MPM
Чтобы увеличить количество запросов Apache в секунду, нам необходимо установить модуль MPM Apache. Для этого можно использовать модуль mpm_worker или mpm_event, вместо модуля mpm_prefork, который потребляет много памяти.
Вы можете легко установить модуль MPM в Apache с помощью следующей команды
CentOS или RHEL7
измените /etc/httpd/conf.modules.d/00-mpm.conf
1 | sudo nano /etc/httpd/conf.modules.d/00-mpm.conf |
- Закомментируйте строку LoadModule mpm_prefork_module modules/mod_mpm_prefork.so, добавив перед ней #.
- Раскомментируйте строку LoadModule mpm_worker_module modules/mod_mpm_worker.so, убрав # перед ней.
Ubuntu или Debian: используйте a2dismod / a2enmod для отключения mpm_prefork и включения mpm_worker
1 2 | a2dismod mpm_prefork a2enmod mpm_worker |
2. Увеличение максимального количества подключений в Apache
Откройте файл конфигурации MPM:
CentOS/RHEL
1 | sudo nano /etc/httpd/conf.modules.d/00-mpm.conf |
Ubuntu/Debian
1 | sudo nano /etc/apache2/mods-available/mpm_worker.conf |
Вы увидите следующие строки
1 2 3 4 5 | StartServers 5 MinSpareServers 5 MaxSpareServers 10 MaxRequestWorkers 150 MaxConnectionsPerChild 0 |
Вы можете изменить их на следующую конфигурацию, чтобы увеличить максимальное количество запросов в секунду. Следующая конфигурация поддерживает до 8000 одновременных пользователей
1 2 3 4 5 6 7 8 9 10 | <IfModule mpm_worker_module> ServerLimit 250 StartServers 10 MinSpareThreads 75 MaxSpareThreads 250 ThreadLimit 64 ThreadsPerChild 32 MaxRequestWorkers 8000 MaxConnectionsPerChild 10000 </IfModule> |
Вы также можете добавить приведенные выше строки в файл конфигурации веб-сервера Apache или в файл конфигурации виртуального хоста.
Давайте быстро рассмотрим параметры
- Serverlimit - Максимальное количество процессов Apache
- StartServers - Количество процессов, запускаемых при запуске Apache
- MinSpareThreads/MaxSpareThreads - количество потоков, которые должны простаивать, не будучи убитыми
- ThreadsPerChild - количество потоков на процесс
- MaxRequestWorkers - Количество поддерживаемых одновременных соединений. Это основная директива, которую необходимо изменить для увеличения максимального количества соединений в Apache
- MaxConnectionsPerChild - количество соединений, которое должно быть обработано каждым дочерним процессом, прежде чем он будет убит
3. Перезапустите сервер Apache
Перезапустите веб-сервер Apache, чтобы применить изменения.
Ubuntu/Debian
1 | sudo service apache2 restart |
CentOS/Redhat/Fedora
1 | sudo service httpd restart |
Надеемся, что эта статья поможет вам увеличить количество запросов в секунду на Apache.