Перейти к содержимому
Калькуляторы

Linux настройка шейпинга дает скорость меньше заказаной

есть локальная сеть, для разных клиентов установлены разные скорости:

 

#!/bin/sh

#

 

lan=10.0.0.0/8

int_iface=eth1

/sbin/tc qdisc del dev $int_iface root handle 1: htb

 

/sbin/tc qdisc add dev $int_iface root handle 1: htb

/sbin/tc class add dev $int_iface parent 1: classid 1:1 htb rate 100mbit ceil 100mbit burst 200k

 

# Internet

mark=2

speedkb=13

speedceil=13

/sbin/tc class add dev $int_iface parent 1:1 classid 1:$mark htb rate "$speedkb"mbit ceil "$speedceil"mbit burst 200k

 

# Local lan

mark=256

speedkb=40

speedceil=60

/sbin/tc class add dev $int_iface parent 1:1 classid 1:$mark htb rate "$speedkb"mbit ceil "$speedceil"mbit

/sbin/tc filter add dev $int_iface parent 1: protocol ip prio 3 handle $mark fw classid 1:$mark

/sbin/iptables -t mangle -A FORWARD -d $lan -s $lan -j MARK --set-mark 256

 

# клиентская машина

IP=10.2.2.2

int_iface=eth1

mark=430

speedkb=2457

speedceil=3379

/sbin/iptables -t mangle -A FORWARD ! -s $lan -d $IP -j MARK --set-mark $mark

 

/sbin/tc class add dev $int_iface parent 1:2 classid 1:$mark htb rate "$speedkb"kbit ceil "$speedceil"kbit

/sbin/tc filter add dev $int_iface parent 1: protocol ip prio 3 handle $mark fw classid 1:$mark

когда я ставлю чтото на закачку, получаю:

tc -s class show dev eth1

class htb 1:1 root rate 100000Kbit ceil 100000Kbit burst 200Kb cburst 1600b

Sent 17892945522 bytes 20411791 pkt (dropped 0, overlimits 0 requeues 0)

rate 6368Kbit 741pps backlog 0b 0p requeues 0

lended: 45724 borrowed: 0 giants: 0

tokens: 254125 ctokens: 125

 

class htb 1:2 parent 1:1 rate 13000Kbit ceil 13000Kbit burst 200Kb cburst 1599b

Sent 17725500404 bytes 20238758 pkt (dropped 0, overlimits 0 requeues 0)

rate 6368Kbit 740pps backlog 0b 0p requeues 0

lended: 5116283 borrowed: 0 giants: 0

tokens: 1943582 ctokens: -10261

 

class htb 1:430 parent 1:2 prio 0 rate 2457Kbit ceil 3379Kbit burst 1599b cburst 1599b

Sent 43163129 bytes 33372 pkt (dropped 0, overlimits 0 requeues 0)

rate 1293Kbit 112pps backlog 0b 0p requeues 0

lended: 8286 borrowed: 3327 giants: 0

tokens: 7328 ctokens: -53780

т.е. вместо минимальной скорости 2457кбит я имею только 1293кбит и все. почему ???

что означает ctokens: -53780 ?

ЗЫ канал свободен, с отключенным шейпингом, качаю на всю ширину канала

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Параметр burst 200k нужно убрать отовсюду. Нет смысла использовать iptables для такой простой классификации, можно обойтись средствами tc.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Это я тормоз, или тут на листьях qdisc отсутствует? Вместе с самими листьями.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Листья (дочерние классы) есть, qdisc-ов нет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Параметр burst 200k нужно убрать отовсюду. Нет смысла использовать iptables для такой простой классификации, можно обойтись средствами tc.
а burst - вообще не использовать, оставить по умолчанию ?

 

в tc можно сделать типа такого :/sbin/iptables -t mangle -A FORWARD ! -s $lan -d $IP -j MARK --set-mark $mark ?

т.е. от источника всюду, кроме локальной сети

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

class htb 1:430 parent 1:2 prio 0 rate 2457Kbit ceil 3379Kbit burst 1599b cburst 1599b

Sent 43163129 bytes 33372 pkt (dropped 0, overlimits 0 requeues 0)

rate 1293Kbit 112pps backlog 0b 0p requeues 0

lended: 8286 borrowed: 3327 giants: 0

tokens: 7328 ctokens: -53780

man tc-htb:

NOTES

Due to Unix timing constraints, the maximum ceil rate is not infinite and may in fact be quite low.

On Intel, there are 100 timer events per second, the maximum rate is that rate at which ’burst’ bytes

are sent each timer tick. From this, the minimum burst size for a specified rate can be calculated.

For i386, a 10mbit rate requires a 12 kilobyte burst as 100*12kb*8 equals 10mbit.

 

Проверяем: 100 * 1599 * 8 = 1 279 200 бит/с.

Не оно?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Рекомендую навесить sfq qdisc на все листья. Решает, как ни странно.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.