Сеть

Аватара пользователя
lcat

Re: Сеть

Сообщение lcat »

ihc

а чтож ты использовал? (как не скрипты)
Аватара пользователя
ihc

Re: Сеть

Сообщение ihc »

Итак, некоторые размышления на тему поставленной выше задачи. Напомню вкратце: есть два класса юзеров, одни "лимитчики", которые до прихода "пацанов" берут весь канал, после чего только 20% его. Для приведённого решения надо заранее знать:



1) пропускную способность канала (bandwidth, стандартные единицы)

2) средний размер пакета (лучше сделать некую репрезентативную выборку) (avpkt, байты)



Итого. Создаём очередь:



Код:

Код: Выделить всё

tc qdisc add dev eth0 handle 1:0 root cbq avpkt 500 bandwidth 100Mbit

Далее, вешаем корневой класс (так рекомендуют)



Код:

Код: Выделить всё

tc class add dev eth0 parent 1:0 classid 1:1 cbq rate 100Mbit allot 1500 prio 5 bounded isolated

Канал описали, теперь вешаем "лимитчиков":



Код:

Код: Выделить всё

tc class add dev eth0 parent 1:1 classid 1:11 cbq rate 100Mbit allot 1500 prio 5 bounded

Так мы определили класс, который отъедает весь канал (100Mbit) с приоритетом (prio) 5 и может делиться своей полосой с другими классами, не забирая себе от них (bounded). Дальше "пацаны":



Код:

Код: Выделить всё

tc class add dev eth0 parent 1:1 classid 1:12 cbq rate 80Mbit allot 1500 prio 1 isolated

Т.е. отдали 80Мбит, но с приоритетом 1, сказали забирать полосу у других, не отдавая самому (isolated). Как навесить фильтры, чтобы раскидывать траффик -- см. выше. Надо не забывать, что очереди вешаются на исходящий траффик, т.е. должны быть на интерфейсе к клиенту.



Таким образом, при нагрузке от обоих классов получаем, что 80% отъедят "пацаны", а всё, что останется -- "лимитчики". Тут есть тонкость в том, что последние при отсутствии первых будут иметь весь канал, в то время как первые будут железно иметь 80Мбит в любых условиях -- это немного не то, что требовалось, но при наличии большего количества "лимитчиков" по сравнению с "пацанами" это покатит вполне.



Последнее -- это результат некоторых размышлений, ещё не тестировал, и не скажу, насколько хорошо сработает.
Аватара пользователя
lcat

Re: Сеть

Сообщение lcat »

ihc

по поводу prio, хотел узнать, там они в порядке уменьшения действует? тоесть prio 1 выше по приоритету чем prio 2?
Аватара пользователя
lcat

Re: Сеть

Сообщение lcat »

Из man:/tc-cbq

Код:

Код: Выделить всё

In the round-robin process, classes with the lowest priority field are tried for packets first.

То есть, таки да.
Ответить

Вернуться в «Общий по Linux»