LINUX.ORG.RU
ФорумAdmin

tc шейпер гарантированная скорость

 , ,


0

3

Добрый день.

Есть необходимость выделения на определенные IP гарантированной скорости Используется сетевая карта 40Гбит

Ранее пользовались скриптом, который устанавливает на общий трафик ограничение скорости а IP с гарантированными скоростями отправлялись в отдельный класс

/sbin/tc qdisc del dev eth0 root
/sbin/tc qdisc del dev eth1 root

# дефолтный класс
/sbin/tc qdisc add dev eth0 root handle 1: htb default 1
/sbin/tc class add dev eth0 parent 1: classid 1:1 htb rate 18GBit ceil 18GBit quantum $quantum burst $burst cburst $cburst
/sbin/tc qdisc add dev eth1 root handle 1: htb default 1
/sbin/tc class add dev eth1 parent 1: classid 1:1 htb rate 18GBit ceil 18GBit quantum $quantum burst $burst cburst $cburst

# класс с гарантированными скоростями
/sbin/tc class replace dev eth0 parent 1: classid 1:2 htb rate 1Gbit ceil 1Gbit quantum $quantum burst $burst cburst $cburst
/sbin/tc class replace dev eth1 parent 1: classid 1:2 htb rate 1Gbit ceil 1Gbit quantum $quantum burst $burst cburst $cburst

# ip вносяться в класс с гарантированными скоростями при помощи ipset
ipset add QUEUES $ip skbprio 1:2
# сами скорости для конкретных ip выделяются на другом оборудовании а на этом только отрезается их общая скорость

Механизм исправно работал пока общая скорость не выросла. Теперь те у кого IP с гарантированными скоростями работают нормально с потреблением около 1 Гбит а те IP которые попадают в дефолтный класс с ограничением скорости в 18 Гбит в итоге работают на скорости не выше 16 Гбит Повышение quantum, burst и cburst не помогло исправить ситуацию

Если отключить шейпер то общая скорость увеличивается до 23 Гбит При использовании тестов на основе Iperf механизм работает исправно и выдает скорость 18Гбит в дефолтном классе В связи с чем мы подозреваем что у ограничения скорости есть какой-то лимит на уровне соотношения количества пакетов к скорости выше которого механизм пока еще просто не работает

Может кто-то знает и сможет подсказать как отрезать для определенных IP с использованием ipset скорость из общего потока так что бы в нее никто не мог влезть из дефолтного класса без ограничения скорости на этот дефолтный класс что возможно поможет решить проблему?

В кальмаре шейпинг просто. :)

Bootmen ☆☆☆ ()
Ответ на: комментарий от Bers666

...а также - с кол-вом IP в ipset: порядка 10, 100, 1000, 10000.

Bers666 ★★★★★ ()

На сколько я помню, точность шейперов зависит от отчности системного таймера/источника времени.

Шейпер для таких скоростей - дорого стоит. Полисер стоит дешевле.

А почему бы просто не использовать простую приоритезацию https://superuser.com/questions/550622/linux-network-traffic-priority-by-ip

vel ★★★★★ ()

механизм пока еще просто не работает

Скорее он уже не работает, этот шейпер разрабатывался во времена 10 мегабитных сетей, а вы хотите что бы он 10 гигабит шейпил :-)

anonymous ()
Ограничение на отправку комментариев: только для зарегистрированных пользователей