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

Что видят пользователи, когда Apache достигает MaxClients?

Иногда в моем журнале ошибок Apache я нахожу:

[error] server reached MaxClients setting, consider raising the MaxClients setting

Я намеренно снижал MaxClients в прошлом (до 60) из-за проблем с нехваткой памяти, но я хотел бы точно знать, что происходит на стороне пользователя, когда этот предел достигнут на сервере. Страница, к которой они обращаются, просто загружается дольше? Они получают какое-то сообщение об ошибке?

Сначала клиентские запросы будут помещены в очередь до тех пор, пока не появится процесс / поток, который освободится на сервере apache. Итак, клиенты увидят задержку загрузки страницы. Увидеть MaxClients документация по параметрам Чтобы получить больше информации.

Когда клиентский запрос помещается в очередь невыполненных работ, время ожидания может истечь на стороне клиента. Тогда пользователь увидит в своем браузере страницу с ошибкой, сообщающую, что сервер слишком долго не отвечает. Значение времени ожидания по умолчанию: 300 секунд в Firefox, например. Или пользователь отменит запрос до истечения времени ожидания ...

Затем, если сервер получает больше запросов и не может вовремя получить бесплатный процесс / поток, ListenBacklog очередь может быть заполнена (по умолчанию 511 запросов в очереди), и любой последующий запрос не будет обслуживаться вообще. Затем браузер сообщит пользователю, что не может подключиться к веб-сайту, как если бы веб-сайт был полностью отключен.

Эта очередь невыполненных работ управляется на уровне ОС в реализации TCP. Под Linux listen man-страница предоставит вам больше информации о том, как им управлять. Вот еще один очень полезное чтение об очереди невыполненных работ TCP в системах Linux и BSD.