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

Что вызывает ограничение в 300 подключений в секунду в Apache 2.2?

У нас есть веб-сервер Apache, работающий на CentOS 5.6 (устанавливается через yum). Сегодня у нас был ожидаемый приток новых пользователей - однако неожиданно мы, кажется, достигли предела в 300 обращений в секунду - у меня есть график (который переполнение стека не позволяет мне загружать), но он показывает, что сегодня три раза (когда наш сайт почти остановился) "доступов в секунду" достигло 300 и оставалось некоторое время. Когда я печатаю, текущая цифра составляет 292,23, а максимальная сегодня - 300,41.

Мы запускаем PHP внутри процесса apache, который подключается к серверу MySQL (другой физический блок). Однако мы рады, что MySQL отвечает нормально.

Мы увеличили наши пределы в httpd.conf со значения по умолчанию 256, однако это не повлияло на волшебное число 300. Мы искали как php.ini и httpd.conf файл за 300 и не могу его найти. Ниже приведена конфигурация prefork, которую мы сейчас используем:

<IfModule prefork.c>
StartServers       8
MinSpareServers    5
MaxSpareServers   20
ServerLimit      400
MaxClients       400
MaxRequestsPerChild  4000
</IfModule>

Если кто-нибудь знает, что вызывает этот предел в 300, я буду очень признателен.

Существуют всевозможные возможности, связанные с производительностью системы, но тот факт, что ограничение является таким красивым круглым числом, довольно подозрительно - вы не ожидали бы такого аккуратного ограничения, если бы узким местом был, скажем, ЦП или диск I. / O (или даже сеть). Что еще более подозрительно, так это то, что это в секунду - если бы это было ограничение для Apache или MySQL, вы бы ожидали ограничение на одновременные соединения или запросы, но ограничение в 300 в секунду звучит как что-то другое.

Что находится выше вас по сети? Если там есть какие-либо брандмауэры, балансировщики нагрузки, системы защиты от DDoS или другие устройства L3 +, я бы ткнул их, чтобы увидеть, есть ли там что-нибудь, что могло бы вызвать это.

Знаете ли вы, что видит любой, кто превысит ваш предел в 300 секунд? (Возможно, вам придется немного постучать по сайту, чтобы увидеть, что происходит) Есть ли где-нибудь сообщения журнала, которые могут дать подсказку?

После внесения изменений в конфигурацию вы выполнили плавный перезапуск или выключение / запуск? Изменения ServerLimit не повлияют на постепенный перезапуск. Требуется полное выключение и запуск.