LINUX.ORG.RU
ФорумAdmin

Не работает шейпер


0

0

Привет всем.

eth0 - интерфейс роутера который смотрит в локальную сеть.
Настроил резалку трафика:

$TC qdisc add dev eth0 root handle 1: htb default 20 r2q 1
$TC class add dev eth0 parent 1: classid 1:1 htb rate 1024mbit
$TC class add dev eth0 parent 1:1 classid 1:20 htb rate 1000mbit
$TC class add dev eth0 parent 1:1 classid 1:10 htb rate 3900kbit burst 6k
$TC class add dev eth0 parent 1:10 classid 1:110 htb rate 256kbit ceil 3900kbit prio 0 burst 6k
$TC class add dev eth0 parent 1:10 classid 1:120 htb rate 128kbit ceil 3000kbit prio 7 burst 6k
$TC qdisc add dev eth0 parent 1:110 handle 11: sfq perturb 1
$TC qdisc add dev eth0 parent 1:120 handle 12: sfq perturb 1

Пакеты отправляю с определенный клас:
$IPT -t mangle -A POSTROUTING -d 192.168.0.0/24 -o eth0 -j CLASSIFY --set-class 1:110

Не понимаю, почему не работает ограничение 3900Kbit в класе 1:110.

Гарантированая: 256000bit
Предел: 3900Kbit
Текущая: 6419Kbit

Статистика класа:

class htb 1:110 parent 1:10 leaf 11: prio 0 quantum 32000 rate 256000bit ceil 3900Kbit burst 6Kb/8 mpu 0b overhead 0b cburst 6474b/8 mpu 0b overhead 0b level 0
 Sent 4020730410 bytes 1421090 pkt (dropped 829, overlimits 0 requeues 0)
 rate 6419Kbit 306pps backlog 0b 54p requeues 0
 lended: 159361 borrowed: 1261724 giants: 311200
 tokens: -80283 ctokens: -5520

Ещё вопрос. SFQ равномерно распределяет нагрузку на все потоки трафика. Получается, если один из юзеров будет качать в 100 потоков, то остальным которые качают браузером в 4 потока, останется мизер. Можно ли равномерно распределять нагрузку не на потоки, а на каждый IP из подсети ?
★★★★★

> Можно ли равномерно распределять нагрузку не на потоки, а на каждый IP из подсети ?
Можно - используйте ESFQ с соответствующим типом hash-а:
http://gazette.linux.ru.net/rus/articles/taleLinuxTC.html

> почему не работает ограничение 3900Kbit в класе 1:110.
А не может ли это быть связано с cburst ? Попробуйте для всех классов явно задавать "burst 1 cburst 1" (когда в свое время тестил htb - на мой взгляд самое точное ограничение скорости было при таких значениях burst и cburst).

spirit ★★★★★
()

> rate 6419Kbit 306pps backlog 0b 54p requeues 0
Интересно, если взять, к примеру, max размер пакета =1500 bytes, то 306pps = 306*1500 = 459000 bytes/s = 3672000 bit/s ~ 3672 kbit/s
Получается как-то не сильно похоже на "rate 6419Kbit".
Или я чего-то не догоняю ? :-)

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

Большое спасибо за ESFQ ! Дельный совет. Теперь трафик равномерно распредиляется по всем хостам подсети.

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