"Правильный" shaper?

Shaper related questions
dimka88
Posts: 866
Joined: 13 Oct 2014, 05:51
Contact:

Re: "Правильный" shaper?

Post by dimka88 »

Попробуйте увеличить burst 26k
KovAl
Posts: 91
Joined: 26 Dec 2017, 15:35

Re: "Правильный" shaper?

Post by KovAl »

dimka88 wrote: 28 Dec 2017, 13:59 Попробуйте увеличить burst 26k
Не, не так! Допёр наконец-то! :lol:
burst надо НЕ в битах указывать, а в КилоБАЙТ!
Т.о. "мои" 9830400 превращаются в элегантные 1200 :)
И результат не замедлил ждать - 25,7 Mbps...
Эх.. ССЗБ, однака.. :oops:

P.S. Поправьте заодно здесь.
P.P.S. Кстати, burst2 должен быть равен burst*2.
KovAl
Posts: 91
Joined: 26 Dec 2017, 15:35

Re: "Правильный" shaper?

Post by KovAl »

И снова здравствуйте!
Увы, всё оказалось совсем не так радужно..
Похоже на то, что для tc цисковский алгоритм не приемлем.
Вот пример: шлю радиусом следующую конструкцию

Code: Select all

Cisco-AVPair +="lcp:interface-config#1=rate-limit input 26214400 4915200 9830400 conform-action transmit exceed-action drop",Cisco-AVPair +="lcp:interface-config#1=rate-limit output 26214400 4915200 9830400 conform-action transmit exceed-action drop
В результате получаю
[root@ipoe etc]# tc filter show dev eth1.2532.1205 parent ffff:
filter protocol all pref 100 u32
filter protocol all pref 100 u32 fh 800: ht divisor 1
filter protocol all pref 100 u32 fh 800::1 order 1 key ht 800 bkt 0 flowid :1
match 00000000/00000000 at 0
action order 1: police 0x1b rate 26214Kbit burst 4800Kb mtu 2Kb action drop overhead 0b
ref 1 bind 1
Всё вроде бы правильно - 4915200 Байт = 4800 КБайт, но это много.. Результат снова +25%..
Где же истина? Как правильно посчитать burst для accel?
Кстати... Возвращаясь к началу обсуждения - почему замена алгоритма police на htb приводит к "-"(минус) 25%?
Dmitry
Администратор
Posts: 954
Joined: 09 Oct 2014, 10:06

Re: "Правильный" shaper?

Post by Dmitry »

бёрст вообще-то на общую скорость влияет посредственно, только в начале передачи, на то он и бёрст
так что плясать особо вокруг него нет смысла, затык надо искать в другом месте
в конце концов скорректировать скорости на недостающие проценты
[shaper]
rate-multiplier=1.25
KovAl
Posts: 91
Joined: 26 Dec 2017, 15:35

Re: "Правильный" shaper?

Post by KovAl »

Dmitry wrote: 29 Dec 2017, 08:58 бёрст вообще-то на общую скорость влияет посредственно, только в начале передачи, на то он и бёрст
так что плясать особо вокруг него нет смысла, затык надо искать в другом месте
Получилось, что всё-таки не так..
После продолжительных танцев с бубном и гуглем удалось выяснить следующее:
1. рекомендации Cisco

Code: Select all

normal burst = configured rate * (1 byte)/(8 bits) * 1.5 seconds
extended burst = 2 * normal burst
2. параметры normal burst и extended burst в п.1 в AVPair отдаваться должны в БАЙТАХ
Соотвественно этому вычисляем для моего примера в 25 Mbps:
а). 1024*1024*25 = 26214400 (это cir в БИТАХ)
б). 26214400/8*1.5 = 4915200 (это normal burst в БАЙТАХ, т.к. присутствует /8 )
accel добросовестно передаёт это число в tc в виде 4800 КБАЙТ(что приблизительно так и есть) и что является "излишком" для tc.
И вот тут, похоже, возникают "разногласия в понимании" burst между cisco и tc - cisco вероятно предварительно делит это число на 8.
в). исходя из предположенного выше, вычислим normal burst для tc : 4915200/8 = 614400
г). вычислим extended burst: 614400*2 = 1228800
д). загрузим полученное в шейпер: Cisco-AVPair +="lcp:interface-config#1=rate-limit input 26214400 614400 1228800 conform-action transmit exceed-action drop",Cisco-AVPair +="lcp:interface-config#1=rate-limit output 26214400 614400 1228800 conform-action transmit exceed-action drop
е). смотрим в tc: action order 1: police 0x24 rate 26214Kbit burst 600Kb mtu 2Kb action drop overhead 0b
ж). проверяем на спидтест: 25,1/25,2 - что и требовалось
Вот такое шаманство.. Проверял с параметром up-limiter=police (попозднее проверю с up-limiter=htb).
Dmitry wrote: 29 Dec 2017, 08:58 в конце концов скорректировать скорости на недостающие проценты
[shaper]
rate-muplieltir=1.25
Это специфический параметр accel? Что-то гугл ничего мне про него не сообщил. Или опечатка?
Можете кратко описать, что он делает?
Last edited by KovAl on 30 Dec 2017, 10:22, edited 1 time in total.
Dmitry
Администратор
Posts: 954
Joined: 09 Oct 2014, 10:06

Re: "Правильный" shaper?

Post by Dmitry »

этот параметр корректирует скорость в указаное кол-во раз
т.е. передали 1000, реально установится 1250
KovAl
Posts: 91
Joined: 26 Dec 2017, 15:35

Re: "Правильный" shaper?

Post by KovAl »

Dmitry wrote: 29 Dec 2017, 10:07 этот параметр корректирует скорость в указаное кол-во раз
т.е. передали 1000, реально установится 1250
Всё понятно, спасибо.
Я так думаю, что этот "корректор" не совсем подходит для данного случая. Он будет хорош для "разовой" коррекции скорости.
Например, в time-range, отдавая этот параметр радиусом, или через CoA.
Всё же хотелось бы, чтобы accel понимал стандартные Cisco like параметры, без дополнительного шаманства с делением на 8.
К тому же я например, совсем не уверен, что это правильно. Вполне допускаю, что это ни что иное как очередной "костыль"..

P.S. Проверил "новорождённый костыль" при up-limiter=htb - не работает, всё равно получаю с тем же "минусом" - 25/18.
KovAl
Posts: 91
Joined: 26 Dec 2017, 15:35

Re: "Правильный" shaper?

Post by KovAl »

Так и не удалось добиться "правильного" результата в upload при up-limiter=htb.
Занижает на ~25%.
burst в данном случае совсем не имеет значения, т.к. даже "0" в normal burst и extended burst совершенно не влияют.
Банально, но хотелось бы знать, кто виноват и что делать?

Одним словом - https://www.youtube.com/watch?v=up8mWIbr6Po :)

Напомню - accel тестирую на CentOS 6.9, на ядре 4.4.103-1.el6.elrepo.x86_64
Post Reply