Иногда в моем журнале ошибок Apache я нахожу:
[error] server reached MaxClients setting, consider raising the MaxClients setting
В прошлом я намеренно снизил MaxClients (до 60) из-за проблем с нехваткой памяти, но я хотел бы точно знать, что происходит на стороне пользователя, когда этот предел достигается на сервере. Неужели страница, к которой они обращаются, загружается дольше? Они получают какое-то сообщение об ошибке?
apache-2.2
performance
performance-tuning
runningonplants
источник
источник
Ответы:
Сначала клиентские запросы будут помещаться в очередь, пока на сервере apache не освободится процесс / поток. Таким образом, клиенты увидят задержку загрузки страницы. См.
MaxClients
Документацию параметров для получения дополнительной информации.При помещении в очередь невыполненных работ клиентский запрос может в конечном итоге истечь время ожидания на стороне клиента. Затем пользователь увидит страницу ошибки в своем браузере, сообщающую, что серверу требуется слишком много времени, чтобы дать ответ. Например, значение времени ожидания по умолчанию составляет 300 секунд в Firefox . Или пользователь отменит запрос до истечения времени ожидания ...
Затем, если сервер получает больше запросов и не может вовремя получить бесплатный процесс / поток,
ListenBacklog
очередь может быть заполнена (по умолчанию 511 запросов в очереди), и любой последующий запрос не будет обработан вообще. Затем браузер сообщит пользователю, что он не может подключиться к веб-сайту, например, если веб-сайт полностью отключен.Эта очередь невыполненных работ управляется на уровне ОС в реализации TCP. Под linux
listen
страница справки даст вам больше информации о том, как она управляется. Вот еще одно очень полезное чтение об очереди невыполненных работ TCP в системах Linux и BSD .источник
listen
справочную страницу. Я не уверен, что есть прямой способ узнать, что содержит эта очередь. Также посмотрите этот ТАК вопрос . Я добавил больше информации в мой ответ.