LINUX.ORG.RU
ФорумAdmin

htb vs esfq + вопросы по htb


0

0

Есть условно говоря 20 (известное число) клиентов. На шлюзе надо делить исходящий в сторону клиентов трафик поровну. Что будет лучше - создать root htb qdisc, к нему присоденить root htb class и под ним создать 20 htb класов, или создать root htb qdisc, к нему присоденить root htb class, а к нему esfq qdisc - например `tc qdisc add dev eth0 parent 1:1 handle 2: esfq hash dst_direct`.

Второй вопрос по поводу htb. Пусть у меня есть 3 клиента и для каждого клиента создан свой htb класс:

tc class add dev eth0 parent 1: classid 1:1 htb rate 512kbit

tc class add dev eth0 parent 1:1 classid 1:10 htb rate $[512/3]kbit ceil 512kbit

tc class add dev eth0 parent 1:1 classid 1:11 htb rate $[512/3]kbit ceil 512kbit

tc class add dev eth0 parent 1:1 classid 1:12 htb rate $[512/3]kbit ceil 512kbit

По идее канал между ними должен делиться поровну, но я заметил следующую проблемму: пусть например 1:10 ничего не качает, 1:11 качает что нибудь одним потоком (напрмер запущен wget), а 1:12 качает что-нибудь многопоточной качалкой - то 1:12 съедает большую часть канала по сравнению с 1:11. С этим можно как нибуть бороться?

И третьий вопрос по поводу приорететов. Например есть схема

tc class add dev eth0 parent 1: classid 1:1 htb rate 512kbit

tc class add dev eth0 parent 1:1 classid 1:2 htb rate $[512/2]kbit ceil 512kbit

tc class add dev eth0 parent 1:1 classid 1:3 htb rate $[512/2]kbit ceil 512kbit

tc class add dev eth0 parent 1:2 classid 1:21 htb prio 0 rate $[512/2]kbit ceil 512kbit

tc class add dev eth0 parent 1:2 classid 1:22 htb prio 1 rate $[512/2]kbit ceil 512kbit

tc class add dev eth0 parent 1:3 classid 1:31 htb prio 0 rate $[512/2]kbit ceil 512kbit

tc class add dev eth0 parent 1:3 classid 1:32 htb prio 1 rate $[512/2]kbit ceil 512kbit

Вопрос в том будет ли класс 1:21 иметь больший приоретет по сравнению с 1:32, и наоборот 1:31 больший приоритет по сравнеию с 1:22? Или приоритеты действуют только в рамках одного родительского класса?

anonymous

>Что будет лучше - создать root htb qdisc, к нему присоденить root htb class и под ним создать 20 htb класов, или создать root htb qdisc, к нему присоденить root htb class, а к нему esfq qdisc

Я бы использовал первый подход - он более расширяем. Хотя насколько это одинаково работает - хз..

>будет ли класс 1:21 иметь больший приоретет по сравнению с 1:32, и наоборот 1:31 больший приоритет по сравнеию с 1:22?

Насколько я помню, приоритеты вступают в действие, когда надо делить ceil. Т.е, если 1.21, 1.22 и 1.32 захотят полосу более [512/2], то сначала ВЕСЬ ceil поделят между собой 1.22 и 1.32, а остаток (если будет) пойдет в 1.21. Если остатка не будет, 1.21 получит только rate.

fagot ★★★★★
()
Ответ на: комментарий от fagot

> Насколько я помню, приоритеты вступают в действие, когда надо делить ceil. Т.е, если 1.21, 1.22 и 1.32 захотят полосу более [512/2], то сначала ВЕСЬ ceil поделят между собой 1.22 и 1.32, а остаток (если будет) пойдет в 1.21. Если остатка не будет, 1.21 получит только rate.

Cкорее уж наоборот - 1:21 получит весь ceil - т. к. у него prio 0.

Но я имел в виду немного другое - например в 1:21 нет трафика, то этот ceil получит только 1:31, или 1:31 и 1:22 поделят его поровну - т. е. действует ли приоретет для классов, имеющих в качестве родителей разные классы?

anonymous
()
Ответ на: комментарий от anonymous

PS

Глянул - немного не те правила я написал. Лучше так

tc class add dev eth0 parent 1: classid 1:1 htb rate 512kbit

tc class add dev eth0 parent 1:1 classid 1:2 htb rate $[512/2]kbit ceil 512kbit

tc class add dev eth0 parent 1:1 classid 1:3 htb rate $[512/2]kbit ceil 512kbit

tc class add dev eth0 parent 1:2 classid 1:21 htb prio 0 rate $[512/4]kbit ceil 512kbit

tc class add dev eth0 parent 1:2 classid 1:22 htb prio 1 rate $[512/4]kbit ceil 512kbit

tc class add dev eth0 parent 1:3 classid 1:31 htb prio 0 rate $[512/4]kbit ceil 512kbit

tc class add dev eth0 parent 1:3 classid 1:32 htb prio 1 rate $[512/4]kbit ceil 512kbit

anonymous
()
Ответ на: комментарий от anonymous

>Cкорее уж наоборот - 1:21 получит весь ceil - т. к. у него prio 0.

Ага, пожалуй. Ну, смысл тот же, только наоборот (у меня prio всегда одинаковый, поэтому и перепутал старшинство).

>действует ли приоретет для классов, имеющих в качестве родителей разные классы?

Только в пределах класса, помоему. Поскольку дележка ceil - тоже дело внутриклассовое.

fagot ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.