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

Shaper related questions
KovAl
Posts: 91
Joined: 26 Dec 2017, 15:35

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

Post by KovAl »

CentOS 6.9, ядро - 4.4.103-1.el6.elrepo.x86_64.
accel-ppp последний релиз с git-a.
IPoE + vlan-mon, QinQ.
Пытаюсь "отполировать" шейпер.
Конфиг:

Code: Select all

[shaper]
verbose=1
time-range=1,0:00-9:59
vendor=Cisco
attr=Cisco-AVPair
latency=50
mpu=29
quantum=1500
leaf-qdisc=sfq perturb 10
ifb=ifb1
up-limiter=police
down-limiter=htb
Скорости отдаются радиусом, Cisco like

Code: Select all

Acct-Interim-Interval = 60, Service-Type = Framed-User, DHCP-Router-IP-Address = 172.16.0.1,Cisco-AVPair +="lcp:interface-config#1=rate-limit input 15728640 5898240 5898240 conform-action transmit exceed-action drop",Cisco-AVPair +="lcp:interface-config#1=rate-limit output 15728640 5898240 5898240 conform-action transmit exceed-action drop", Cisco-AVPair +="lcp:interface-config#1=rate-limit input access-group 1 47185920 17694720 17694720 conform-action transmit exceed-action drop",Cisco-AVPair +="lcp:interface-config#1=rate-limit output access-group 1 47185920 17694720 17694720 conform-action transmit exceed-action drop"
С download проблем нет, при любых параметрах down-limiter (tbf/htb), а вот с upload не получается вписать в "норму".
Если up-limiter=police, то имеем "плюс" ~25% к "тарифу", если up-limiter=htb - наоборот - "минус" ~25%.
Соответственно вопрос - как получить "золотую середину"?

P.S. Вообще, очень хотелось бы увидеть в документации "отполированные" в продакшен конфиги шейпера.
dimka88
Posts: 866
Joined: 13 Oct 2014, 05:51
Contact:

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

Post by dimka88 »

offload выключены на сетевых интерфейсах?
https://accel-ppp.org/wiki/doku.php?id= ... ired_rates
KovAl
Posts: 91
Joined: 26 Dec 2017, 15:35

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

Post by KovAl »

dimka88 wrote: 28 Dec 2017, 08:37 offload выключены на сетевых интерфейсах?
https://accel-ppp.org/wiki/doku.php?id= ... ired_rates
Выключены

Code: Select all

[root@ipoe etc]# ethtool -k eth1 | grep offload
tcp-segmentation-offload: off
udp-fragmentation-offload: off [fixed]
generic-segmentation-offload: off
generic-receive-offload: off
large-receive-offload: off [fixed]
rx-vlan-offload: off
tx-vlan-offload: off
l2-fwd-offload: off [fixed]
dimka88
Posts: 866
Joined: 13 Oct 2014, 05:51
Contact:

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

Post by dimka88 »

Покажите тогда

Code: Select all

tc qdisc show dev ifaceX
tc filter show dev ifaceX parent ffff:
ifaceX - интерфейс с клиентом, например (ipoe0, ppp0, eth0.100.100).
KovAl
Posts: 91
Joined: 26 Dec 2017, 15:35

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

Post by KovAl »

В шейпере up-limiter=police
Установлено 25Mbit download/upload:

Code: Select all

Cisco-AVPair = "lcp:interface-config#1=rate-limit input 26214400 9830400 9830400 conform-action transmit exceed-action drop"
        Cisco-AVPair = "lcp:interface-config#1=rate-limit output 26214400 9830400 9830400 conform-action transmit exceed-action drop"
Результат теста скорости: download - 25,5 Mbps, upload - 32,5 Mbps

Code: Select all

[root@ipoe etc]# tc qdisc show dev eth1.2532.1205
qdisc htb 1: root refcnt 2 r2q 10 default 1 direct_packets_stat 0
qdisc sfq 2: parent 1:1 limit 127p quantum 1522b perturb 10sec
qdisc ingress ffff: parent ffff:fff1 ----------------

[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 0x23 rate 26214Kbit burst 9600Kb mtu 2Kb action drop overhead 0b
ref 1 bind 1
dimka88
Posts: 866
Joined: 13 Oct 2014, 05:51
Contact:

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

Post by dimka88 »

burst великоват, нужно уменьшать. Я не совсем дружу с cisco AVPair, вы уверены что нужно передавать 9830400 9830400?
Еще посмотрел mtu 2Kb, в доке по tc указано, чем больше значение походит на правду, то есть 1500, тем точнее.
KovAl
Posts: 91
Joined: 26 Dec 2017, 15:35

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

Post by KovAl »

dimka88 wrote: 28 Dec 2017, 12:12 burst великоват, нужно уменьшать. Я не совсем дружу с cisco AVPair, вы уверены что нужно передавать 9830400 9830400?
Насчёт "дружбы с циской" я тоже не ахти, в данный момент у меня всё шейпит mpd5..
Такое значение burst - это как бы стандартная цисковская рекомендация: burst = cir/8*3. И как бы для download он работает правильно.
Кстати, мысль насчёт burst мне тоже приходила, пробовал изменять для upload несколько вариантов (только для upload):
1. cir/16 - результат - 31,8 Mbps
2. cir/32 - результат - 32,4 Mbps
3. cir/64 - результат - 32,2 Mbps
4. cir/128 - результат - 32,0 Mbps
Т.о. получается одно и тоже. Такое ощущение, что burst вообще не влияет..

P.S. Похоже, что шейпер просто игнорирует параметр burst.
Загрузил так:
Cisco-AVPair = "lcp:interface-config#1=rate-limit input 26214400 0 0 conform-action transmit exceed-action drop"
Cisco-AVPair = "lcp:interface-config#1=rate-limit output 26214400 9830400 9830400 conform-action transmit exceed-action drop"
Результат тот же!
KovAl
Posts: 91
Joined: 26 Dec 2017, 15:35

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

Post by KovAl »

P.P.S. Вспомнилось вот ещё что - встречал на просторах Интернета, где значение параметра conform-action не transmit, а continue.
Т.е. "...conform-action continue exceed-action drop". Или для accel это не принципиально?
dimka88 wrote: 28 Dec 2017, 12:12 Еще посмотрел mtu 2Kb, в доке по tc указано, чем больше значение походит на правду, то есть 1500, тем точнее.
А это чей mtu? Если интерфейса, то он 1500 и есть

Code: Select all

[root@ipoe etc]# ifconfig eth1.2532.1205
eth1.2532.1205 Link encap:Ethernet  HWaddr 00:XX:XX:XX:XX:C7
          inet addr:172.16.0.1  Bcast:0.0.0.0  Mask:255.255.255.255
          inet6 addr: fe80::230:48ff:fe90:e6c7/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:415022 errors:0 dropped:0 overruns:0 frame:0
          TX packets:383156 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:431902427 (411.8 MiB)  TX bytes:357428271 (340.8 MiB)
Откуда могло взятся 2Кб ?? Это вообще тогда получится 2048.. Нигде такого MTU на сервере нет.
На "голом" eth1 он 1536(т.к. QinQ), на клиентских интерфейсах - 1500 (устанавливаю в accel параметром interface=re:eth1\.\d{4}\.\d{4},mtu=1500)
dimka88
Posts: 866
Joined: 13 Oct 2014, 05:51
Contact:

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

Post by dimka88 »

2k вроде как по дефолту, пока можно опустить.
Можно попробовать в качестве эксперимента ручками задать.

Code: Select all

#Удаляем старое правило
/sbin/tc qdisc del dev eth1.2532.1205 ingress

#Навешиваем по новому
/sbin/tc qdisc add dev eth1.2532.1205 handle ffff:
/sbin/tc filter add dev eth1.2532.1205 parent ffff: protocol ip prio 50 u32 match ip src 0.0.0.0/0 police rate 26214Kbit burst 12k action drop flowid :1
KovAl
Posts: 91
Joined: 26 Dec 2017, 15:35

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

Post by KovAl »

Упс..

Code: Select all

[root@ipoe etc]# tc qdisc del dev eth1.2532.1205 ingress
[root@ipoe etc]# tc qdisc add dev eth1.2532.1205 handle ffff:
RTNETLINK answers: No such file or directory
[root@ipoe etc]# tc filter add dev eth1.2532.1205 parent ffff: protocol ip prio 50 u32 match ip src 0.0.0.0/0 police rate 26214Kbit burst 12k action drop flo
wid :1
RTNETLINK answers: Invalid argument
We have an error talking to the kernel

А вот так скушало

Code: Select all

[root@ipoe etc]# tc qdisc del dev eth1.2532.1205 ingress
[root@ipoe etc]# tc qdisc add dev eth1.2532.1205 ingress handle ffff:
[root@ipoe etc]# tc filter add dev eth1.2532.1205 parent ffff: protocol ip prio 50 u32 match ip src 0.0.0.0/0 police rate 26214Kbit burst 12k action drop flo
wid :1
Результат - 11,2 Mbps вместо 25 требуемых, или 32 ранее имевшихся.. :?
Очень похоже на 50% от "заказа".
Post Reply