общее ограничение скорости раздачи

Zherdev Anatoly tolyar at mx.ru
Mon Nov 20 17:01:27 MSK 2006


On Mon, 20 Nov 2006 16:04:11 +0300 (MSK)
Andrew Kopeyko <kaa at zvuki.ru> wrote:


> > Не надо забывать, что помимо случаев, когда один два очень тяжелых
> > сайта, есть еще случаи когда очень много лёгких сайтов.
> > Например у любого хостера много виртуалхостов.
> > Развешивать на каждом бакенде, тысячи адресов, хорошего мало.
> > Да и вообще IP на vh нам не помогут. Так как ограничения на IP'шном
> > уровне (кроме пожалуй шейпинга), ни чего общего с реальной
> > активностью сервера не имеют. Учитывать надо именно HTTP запросы, а
> > не абстрактные TCP сессии.
> >
> > Во вторых, если лимитировать на бакенде, то при наличии нескольких
> > бакендов не понятно что мы лимитируем. Например, мы анонсируем, что
> 
> Несколько бэкендов для виртхоста - как-то непохоже это на массовый 
> хостинг... Это уже нечто для ВИП-клиентов.  Я не ошибся?


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

> 
> > разрешаем 100 коннектов в секунду на сайт. И у нас есть 10 бакендов.
> > Делаем по 10 коннектов/sec на каждый ? Ну а если один вылетел, то
> > мы уже нарушаем взятые на себя обязательства.
> >
> >> Проблема-то не в том, что технически нельзя ограничить, а в том,
> >> что некоторым хочется все крутить из одного места. А это -
> >> неправильно с точки зрения архитектуры системы.
> >
> > Все ограничения должны выставляться на шлюзе, иначе мы не можем
> > гарантировать те цифры, которые анонсировали.
> 
> То есть даже не на фронтенде, который хоть по виртхостам разложить
> может, а на border router'е ??

Вполне достаточно на фронтенде ограничивать, если конечно прокся умеет
это делать. Тут как получается, чем больше сущностей, которым требуется
знать конфигурацию отдельного клиента. Тем сложнее и не надежнее
система. Тем более, что все ограничения надо делать зная что
происходит внутри HTTP. То есть, мне например не интересно сколько
открыто TCP соединений на порт, мне интересно, сколько на данный
виртуалхост идет реальных соединений одновременно/в секунду в сторону
бакендов, для каждого vh.
Задачи две.

1. Чтобы не умер фронтенд (ну тут nginx+нормальное железо решают очень
многое)
2. Чтобы не умер бакенд

Более того, иногда может понадобится сделать ограничения даже не на vh,
а на конкретный URL.


> 
> >
> 
> -- 
> Best regards,
> Andrew Kopeyko <kaa at zvuki.ru>
> http://www.zvuki.ru/ sysadmin
> 
> 


-- 
Zherdev Anatoly.





More information about the nginx-ru mailing list