LINUX.ORG.RU
ФорумAdmin

Linux shaper 10G (HTB)

 , ,


1

4

Здравствуйте. Есть следующий вопрос:

Конфиг шейпера

tc qdisc add dev eth0 root handle 1:0 htb r2q 20
tc class add dev eth0 parent 1:0 classid 1:1 htb rate 10Gbit burst 12000k cburst 12000k
tc class add dev eth0 parent 1:1 classid 1:9 htb rate 10Mbit ceil 10Gbit burst 6000k cburst 6000k quantum 200000

Как только трафик через класс 1:9 переваливает приблизительно в 1Gbit, у него (класса 1:9) вырастает backlog (я так понимаю это очередь), растёт задержка и появляются дропы. Через корневой класс 1:1 в это время течёт около 5Gbit, он не загружен, дропов нет, весь остальной трафик протекает нормально. CPU 20%. IPerf’oм мимо 1:9 трафик легко поднимается до 10G.

Тоесть захлёбывается только класс 1:9 и не могу понять почему. r2q / burst / cburst крутил в разные стороны :)


Я «ненастоящий сварщик», но подозреваю, что виною может быть еще и немыслимое количество открытых соединений.

ololoid ★★★★
()

htb на 10Gbit/sec? Что за процессор, сдаётся мне там шейпинг в одно ядро упрется и раком станет, HTB на таких скоростях - это похороны.

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

Что за процессор

Xeon E5-2690 v3

irqbalance работает?

По 12 потоков на сетевую статически разнесены по ядрам. Все ядра загружены равномерно. В пике CPU ~30%.

Я уже понял, что HTB на 10G+ не лучшее решение :) Но не понятно почему тормозит именно один класс. Возможно это как-то связано, что трафик ссылается на него из IPTables?

$ipt -t mangle -A FORWARD -i $wan -m set --match-set xxx src -j CLASSIFY --set-class 1:9

Если посмотреть статус «tc -s class 1:9» то видно, как под нагрузкой количество tokens уходит сильно в минус. Я так понимаю, это значит, что они заканчиваются и трафик начинает дропаться, хотя трафика течёт около 10% от указанного в ceil. Значение ctokens в этот момент около 75к и почти не используется. У родительского 1:1 tokens/ctokens около 150к.

Если перенаправить трафик в корневой 1:1 то никаких лагов нет.

xneo
() автор топика

Делать большой burst/cburst нет смысла в данном случае.

Есть некоторое соотношение

quantum = rate / r2q
mtu ≤ quantum ≤ 60000

Попробуй поставить в 1:9 rate не менее 1/40 от ceil.

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