"Правильный" shaper?
Re: "Правильный" shaper?
Попробуйте увеличить burst 26k
Re: "Правильный" shaper?
Не, не так! Допёр наконец-то!
![Смеется :lol:](./images/smilies/icon_lol.gif)
burst надо НЕ в битах указывать, а в КилоБАЙТ!
Т.о. "мои" 9830400 превращаются в элегантные 1200
![Улыбается :)](./images/smilies/icon_e_smile.gif)
И результат не замедлил ждать - 25,7 Mbps...
Эх.. ССЗБ, однака..
![Смущен :oops:](./images/smilies/icon_redface.gif)
P.S. Поправьте заодно здесь.
P.P.S. Кстати, burst2 должен быть равен burst*2.
Re: "Правильный" shaper?
И снова здравствуйте!
Увы, всё оказалось совсем не так радужно..
Похоже на то, что для tc цисковский алгоритм не приемлем.
Вот пример: шлю радиусом следующую конструкцию
В результате получаю
Где же истина? Как правильно посчитать burst для accel?
Кстати... Возвращаясь к началу обсуждения - почему замена алгоритма police на htb приводит к "-"(минус) 25%?
Увы, всё оказалось совсем не так радужно..
Похоже на то, что для 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
Всё вроде бы правильно - 4915200 Байт = 4800 КБайт, но это много.. Результат снова +25%..[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
Где же истина? Как правильно посчитать burst для accel?
Кстати... Возвращаясь к началу обсуждения - почему замена алгоритма police на htb приводит к "-"(минус) 25%?
Re: "Правильный" shaper?
бёрст вообще-то на общую скорость влияет посредственно, только в начале передачи, на то он и бёрст
так что плясать особо вокруг него нет смысла, затык надо искать в другом месте
в конце концов скорректировать скорости на недостающие проценты
[shaper]
rate-multiplier=1.25
так что плясать особо вокруг него нет смысла, затык надо искать в другом месте
в конце концов скорректировать скорости на недостающие проценты
[shaper]
rate-multiplier=1.25
Re: "Правильный" shaper?
Получилось, что всё-таки не так..
После продолжительных танцев с бубном и гуглем удалось выяснить следующее:
1. рекомендации Cisco
Code: Select all
normal burst = configured rate * (1 byte)/(8 bits) * 1.5 seconds
extended burst = 2 * normal burst
Соотвественно этому вычисляем для моего примера в 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).
Это специфический параметр accel? Что-то гугл ничего мне про него не сообщил. Или опечатка?
Можете кратко описать, что он делает?
Last edited by KovAl on 30 Dec 2017, 10:22, edited 1 time in total.
Re: "Правильный" shaper?
этот параметр корректирует скорость в указаное кол-во раз
т.е. передали 1000, реально установится 1250
т.е. передали 1000, реально установится 1250
Re: "Правильный" shaper?
Всё понятно, спасибо.
Я так думаю, что этот "корректор" не совсем подходит для данного случая. Он будет хорош для "разовой" коррекции скорости.
Например, в time-range, отдавая этот параметр радиусом, или через CoA.
Всё же хотелось бы, чтобы accel понимал стандартные Cisco like параметры, без дополнительного шаманства с делением на 8.
К тому же я например, совсем не уверен, что это правильно. Вполне допускаю, что это ни что иное как очередной "костыль"..
P.S. Проверил "новорождённый костыль" при up-limiter=htb - не работает, всё равно получаю с тем же "минусом" - 25/18.
Re: "Правильный" shaper?
Так и не удалось добиться "правильного" результата в upload при up-limiter=htb.
Занижает на ~25%.
burst в данном случае совсем не имеет значения, т.к. даже "0" в normal burst и extended burst совершенно не влияют.
Банально, но хотелось бы знать, кто виноват и что делать?
Одним словом - https://www.youtube.com/watch?v=up8mWIbr6Po![Улыбается :)](./images/smilies/icon_e_smile.gif)
Напомню - accel тестирую на CentOS 6.9, на ядре 4.4.103-1.el6.elrepo.x86_64
Занижает на ~25%.
burst в данном случае совсем не имеет значения, т.к. даже "0" в normal burst и extended burst совершенно не влияют.
Банально, но хотелось бы знать, кто виноват и что делать?
Одним словом - https://www.youtube.com/watch?v=up8mWIbr6Po
![Улыбается :)](./images/smilies/icon_e_smile.gif)
Напомню - accel тестирую на CentOS 6.9, на ядре 4.4.103-1.el6.elrepo.x86_64