LINUX.ORG.RU
ФорумAdmin

TC HTB (Rate & Ceil)


0

2

Доброго всем дня, возник вопрос по шейперу. В общем не так давно ввел в работу шейпер основанный на связке iptables и tc, все работало замечательно, то есть одни пользователи имели скорость от 1мб/с до 6мб/с, другие от 3мб/с до 14мб/с и так далее... но с увиличением кол-ва пользователей начало происходить следующее, шейпер перестал давать пользователям больше 10мб/с. То есть на каждого пользователя создается свой класс и фильтр, в классе указывется rate и ceil, с недавних пор в логах биллинга увидел что tc ругается на «Illegal ceil» и не дает заданное значение ширины канала пользователю, даже не смотря на то что нагрузки на канала нет вообще. Те кто должны получать меньше 10мб/с так и получают скорость, но те кто должны получать больше 10мб/с получают только эти 10мб/с. Почему tc не дает ширину канала пользователям по значению ceil, ведь канал свободен?


Ответ на: комментарий от visual

Что к примеру?

tc qdisc add dev eth1 root handle 1: htb
tc class add dev eth1 parent 1: classid 1:1 htb rate 100mbit burst 200k
tca class add dev eth1 parent 1:1 classid 1:$1 htb prio2 rate 1mbit ceil 14mbit  

Создаем корневой и его подкласс с гарантированной полосой 1мегабит и максимальной 14 мегабит. совсем недавно подобные правила работали на ура, теперь по непонятной мне причине данные правила корректно задают скорость лишь до 10 мегабит, если ставлю 14 то дает все равно только 10. Пробывал увеличивать квант не помогло, имеет ли смысл увеличивать значение r2q?

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

так вот в этом наверное и проблема, что считать не успевает

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

tc class add dev eth1 parent 1:1 classid 1:$1 htb prio2 rate 1mbit ceil 14mbit Имеется ввиду подобных правил около 500, плюс к каждому правилу свой фильтр

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

Почему это должен не успевать? нагрузки на железо почти нет, буквально 40 пользователей назад все работало.

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

Обработку очереди то он ведет корректно, и до 10 мегабит считает все четко, кстати подавляющее большинство пользователей сидят на 6 мегабитах и у них все ок, на 14 мегабитах сидят 30-40 человек всего лишь.

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

около 500

На правах предположения: когда-то давно читая LARTC натыкался на упоминание, что сумма rate дочерних классов не должна превышать rate родителя, в противном случае корректность работы шейпера не гарантируется. В вашем случае у родителя rate=100Mbit, у дочерних классов rate=1Mbit, а таких классов около 500. Возможно в этом проблема.

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

Предположение от части верное, но я пробывал увеличить родительский класс до величины физического интерфейса, тобишь до 1гб. не помогло.

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