Ограничение на число одновременных соединений, но с постановкой лишних в очередь

Олег Петрачёв cronfy на gmail.com
Вс Ноя 29 06:39:01 MSK 2009


> Кажется, в Апаче-таки можно включить ограничение на число соединений. Есть
> вот такая директива:
> http://httpd.apache.org/docs/2.0/mod/mpm_common.html#listenbacklog
> Соответственно, если каждому клиенту выделить свой сокет
> (например, развесить клиентов по разным портам localhost-а и проксировать на
> них nginx-ом), то, теоретически, поклиентное ограничение должно срабатывать (но я не проверял).

Мы у себя так и сделали. Те виртуальные хосты, на которые идёт много
обращений, вынесены на отдельные apache, у каждого количество
одновременных обработчиков ограничивается MaxClients, а очередь
соединений - ListenBackLog. По достижении ListenBackLog Apache просто
начинает сбрасывать соединения. Правда запросы, которые в очередь
всё-таки пришли, он будет обрабатывать последовательно, пока очередь
не закончится. То есть если это было 100 запросов к скрипту, который
работает 10 секунд, а обработчиков 5, то очередь освободится через 100
* 10 / 5 = 200 секунд. Как сделать так, чтобы apache побыстрее
сбрасывал имеющиеся соединения из очереди, пока не ясно.

-- 
// cronfy


Подробная информация о списке рассылки nginx-ru