Apache MaxRequestWorkers проблема не решена
Мой сайт генерирует, когда я пытаюсь выполнить 1000 запросов в секунду. Я вижу следующие ошибки в моих журналах apache
Apr 06 00:00:33 ns503772******100.net httpd[9585]: AH00515: WARNING: MaxRequestWorkers of 2000 would require 80 servers and
Apr 06 00:00:33 ns503772******100.net httpd[9585]: would exceed ServerLimit of 16, decreasing to 400.
Apr 06 00:00:33 ns503772******100.net httpd[9585]: To increase, please see the ServerLimit directive.
Моя текущая настройка была следующей
<IfModule mpm_event_module>
LoadModule cgid_module modules/mod_cgid.so
MaxRequestWorkers 2000
</IfModule>
Я использую Plesk Onyx и спецификации сервера следующие.
Процессор: Intel Xeon E5-1620v2 - 4c/8t - 3,7 ГГц /3,9 ГГц
Север Рам: 64 ГБ DDR3
Тогда я попробовал следующие настройки
<IfModule mpm_event_module>
StartServers 80
MinSpareThreads 50
MaxSpareThreads 300
ThreadLimit 25
ThreadsPerChild 25
ServerLimit 500
MaxRequestWorkers 2000
MaxConnectionsPerChild 0
</IfModule>
но проблема остается нерешенной, инфаркт вызывает больше ошибок, и ведущий записи журнала начинает жрать процессор
вывод httpd -V | grep -i 'version\|mpm'
является следующее
Server version: Apache/2.4.6 (CentOS)
Server MPM: event
1 ответ
ServerLimit не определен / не прочитан, но все же это значение, которое вы хотите использовать, не имеет смысла, так как потоки для каждого дочернего элемента уже устанавливают ограничение сервера равным 80.
И почему вы используете такое небольшое количество потоков? Вы генерируете слишком много дочерних процессов без необходимости, вероятно, делая Apache менее производительным в процессе (процессы порождения дороже, чем потоки)
Примечание. Настройки MPM требуют ПОЛНОЙ ОСТАНОВКИ / СТАРТА (не перезапуска).
Установите это.
StartServers 1
ServerLimit 4
MinSpareThreads 500
MaxSpareThreads 1500
MaxRequestWorkers 2000
ThreadsPerChild 500
ThreadLimit 500
MaxConnectionsPerChild 0
MaxKeepAliveRequests 1500
KeepAlive On
KeepAliveTimeout 10
И убедитесь, что вы сделали полную остановку, а затем приступите к изменениям, которые будут применены по-настоящему.