Веб-сервер Apache - что происходит с запросами, когда все рабочие потоки заняты - PullRequest
9 голосов
/ 11 мая 2011

Насколько я исследовал, сценарий, когда все рабочие потоки заняты обслуживанием запросов, что происходит с последующими запросами.

  1. Они ждут?
  2. Это связано с некоторыми настраиваемыми параметрами?
  3. Могу ли я получить количество таких запросов?

В дополнение к этому, пожалуйста, вы можете объяснить или дать ссылку, где я могу получить четкое представление о стратегии обработки запросов веб-сервера Apache?

Спасибо за внимание !!

Ответы [ 3 ]

8 голосов
/ 11 мая 2011

Когда все рабочие потоки Apache заняты, новый запрос останавливается (ожидает), пока один из этих рабочих потоков не станет доступным. Если клиент перестает ждать или вы превышаете максимальное время ожидания в вашем файле конфигурации; это разорвёт соединение.

1 голос
/ 04 ноября 2015

Этот ответ дан в 2015 году. Поэтому я говорю о apache httpd 2.4.

  1. Они ждут, потому что соединение ставится в очередь на сокете TCP (соединение не ACKed) Хотя длина по умолчаниюотставание может быть слишком большим для Linux-боксов.Это может привести к закрытию соединений из-за установленных ограничений ядра .
  2. ListenBacklog (с предупреждениями. См. 1.)
  3. Этоописано здесь .С множеством интересных вещей.

Прочитайте Журнал ожидания Apache TCP от Райана Франца , чтобы получить подробную информацию о отставании Apache.

0 голосов
/ 11 мая 2011

Дополнительно к сообщению от cbroughton: У вас должно быть максимум 500 запросов (это сильно зависит от вашей серверной мощности).Вот ссылка для дальнейшего чтения MaxKeepAliveRequests

...