Есть задача - раздать приоритеты фтп-трафику и игре Counter-Strike, на весь остальной трафик отдать дефолтное правило. Я пока только изучаю управление трафиком поэтому взял эту задачу себе для примера. У меня есть роутер - с одной стороны у него езернет (клиенты, eth2), с другой - узкий канал (eth0).Ядро 2.4.28
Написал вот такой простой набор правил:tc qdisc add dev eth2 root handle 1:0 htb default 15
tc class add dev eth2 parent 1:0 classid 1:1 htb rate 500kbittc class add dev eth2 parent 1:1 classid 1:5 htb rate 150kbit ceil 150kbit prio 2
tc class add dev eth2 parent 1:1 classid 1:10 htb rate 150kbit ceil 150kbit prio 6
tc class add dev eth2 parent 1:1 classid 1:15 htb rate 200kbit ceil 200kbit prio 10tc qdisc add dev eth2 parent 1:5 handle 5:0 sfq perturb 10
tc qdisc add dev eth2 parent 1:10 handle 10:0 sfq perturb 10
tc qdisc add dev eth2 parent 1:15 handle 15:0 sfq perturb 10tc filter add dev eth2 protocol ip parent 1:0 prio 1 u32 match ip sport 21 flowid 1:10
tc filter add dev eth2 protocol ip parent 1:0 prio 1 u32 match ip sport 20 flowid 1:10
tc filter add dev eth2 protocol ip parent 1:0 prio 1 u32 match ip sport 27015 flowid 1:5Так вот - не работает. Весь трафик почемуто класифицируется как трафик по умолчанию и загоняется в класс 15. Я это определил по тому, что изменение параметров первых двух классов не дает никаких изменений в работе в отличие от третьего, дефолтного класса 15.
Попробовал в параметрах фильтров писать не порты а адреса - и заработало все как надо.
Спрашивается почему не работает при указании портов?
>tc filter add dev eth2 protocol ip parent 1:0 prio 1 u32
>match ip sport 20 flowid 1:10match ip sport 20 0xffff flowid 1:10
>Так вот - не работает. Весь трафик почемуто класифицируется как трафик по
>умолчанию и загоняется в класс 15. Я это определил по тому,
>что изменение параметров первых двух классов не дает никаких изменений в
>работе в отличие от третьего, дефолтного класса 15.
>tc -s -d class show dev eth2
>>tc filter add dev eth2 protocol ip parent 1:0 prio 1 u32
>>match ip sport 20 flowid 1:10
>
>match ip sport 20 0xffff flowid 1:10сорри - это я уже после нескольких правок выложил - забыл добавить
>
>>Так вот - не работает. Весь трафик почемуто класифицируется как трафик по
>>умолчанию и загоняется в класс 15. Я это определил по тому,
>>что изменение параметров первых двух классов не дает никаких изменений в
>>работе в отличие от третьего, дефолтного класса 15.
>>
>
>tc -s -d class show dev eth2
# tc -s -d class show dev eth2
tc: can't resolve symbol 'rint'
#помоему это не то что Вы хотели увидеть :)
# tc -s -d class show dev eth2
class htb 1:1 root rate 500Kbit ceil 500Kbit burst 2224b/8 mpu 0b cburst 2224b/8 mpu 0b level 7
Sent 4255506 bytes 5533 pkts (dropped 0, overlimits 0)
rate 8480bit 23pps
lended: 1839 borrowed: 0 giants: 0
tokens: 26437 ctokens: 26437class htb 1:10 parent 1:1 leaf 10: prio 6 quantum 1875 rate 150Kbit ceil 500Kbit burst 1786b/8 mpu 0b cburst 2224b/8 mpu 0b level 0
Sent 3106601 bytes 2058 pkts (dropped 0, overlimits 0)
rate 137bit
lended: 670 borrowed: 1388 giants: 0
tokens: 70037 ctokens: 26752class htb 1:15 parent 1:1 leaf 15: prio 7 quantum 1000 rate 20Kbit ceil 500Kbit burst 1624b/8 mpu 0b cburst 2224b/8 mpu 0b level 0
Sent 18872 bytes 32 pkts (dropped 0, overlimits 0)
lended: 21 borrowed: 11 giants: 0
tokens: 456788 ctokens: 26437class htb 1:5 parent 1:1 leaf 5: prio 2 quantum 2500 rate 200Kbit ceil 500Kbit burst 1849b/8 mpu 0b cburst 2224b/8 mpu 0b level 0
Sent 1130033 bytes 3443 pkts (dropped 0, overlimits 0)
rate 7480bit 21pps
lended: 3003 borrowed: 440 giants: 0
tokens: 59310 ctokens: 28639
# tc -s -d class show dev eth2
class htb 1:1 root rate 500Kbit ceil 500Kbit burst 2224b/8 mpu 0b cburst 2224b/8 mpu 0b level 7
Sent 4255506 bytes 5533 pkts (dropped 0, overlimits 0)
rate 8480bit 23pps
lended: 1839 borrowed: 0 giants: 0
tokens: 26437 ctokens: 26437class htb 1:10 parent 1:1 leaf 10: prio 6 quantum 1875 rate 150Kbit ceil 500Kbit burst 1786b/8 mpu 0b cburst 2224b/8 mpu 0b level 0
Sent 3106601 bytes 2058 pkts (dropped 0, overlimits 0)
rate 137bit
lended: 670 borrowed: 1388 giants: 0
tokens: 70037 ctokens: 26752class htb 1:15 parent 1:1 leaf 15: prio 7 quantum 1000 rate 20Kbit ceil 500Kbit burst 1624b/8 mpu 0b cburst 2224b/8 mpu 0b level 0
Sent 18872 bytes 32 pkts (dropped 0, overlimits 0)
lended: 21 borrowed: 11 giants: 0
tokens: 456788 ctokens: 26437class htb 1:5 parent 1:1 leaf 5: prio 2 quantum 2500 rate 200Kbit ceil 500Kbit burst 1849b/8 mpu 0b cburst 2224b/8 mpu 0b level 0
Sent 1130033 bytes 3443 pkts (dropped 0, overlimits 0)
rate 7480bit 21pps
lended: 3003 borrowed: 440 giants: 0
tokens: 59310 ctokens: 28639
Я бы переписал так:tc qdisc add dev eth2 root handle 1:0 htb default 15
tc class add dev eth2 parent 1:0 classid 1:1 htb rate 500kbittc class add dev eth2 parent 1:1 classid 1:5 htb rate 150kbit ceil 150kbit prio 2
tc class add dev eth2 parent 1:1 classid 1:10 htb rate 150kbit ceil 150kbit prio 6
tc class add dev eth2 parent 1:1 classid 1:15 htb rate 200kbit ceil 200kbit prio 10tc qdisc add dev eth2 parent 1:5 handle 5:0 pfifo limit 10
tc qdisc add dev eth2 parent 1:10 handle 10:0 pfifo limit 10
tc qdisc add dev eth2 parent 1:15 handle 15:0 pfifo limit 10tc filter add dev eth2 protocol ip parent 1:0 prio 1 u32 match ip protocol 0x06 0xff match ip sport 21 0xffff classid 1:10
tc filter add dev eth2 protocol ip parent 1:0 prio 1 u32 match ip protocol 0x06 0xff match ip sport 20 0xffff classid 1:10
tc filter add dev eth2 protocol ip parent 1:0 prio 1 u32 match ip protocol 0x11 0xff match ip sport 27015 0xffff classid 1:5
Спасибо. Теперь классифицируется правильно.Но теперь другая проблема.
если я пропишу вот так:
#eth2
tc qdisc add dev eth2 root handle 1:0 htb default 15
tc class add dev eth2 parent 1:0 classid 1:1 htb rate 500kbittc class add dev eth2 parent 1:1 classid 1:5 htb rate 320kbit ceil 500kbit prio 2
tc class add dev eth2 parent 1:1 classid 1:10 htb rate 128kbit ceil 500kbit prio 6
tc class add dev eth2 parent 1:1 classid 1:15 htb rate 52kbit ceil 500kbit prio 10tc qdisc add dev eth2 parent 1:5 handle 5:0 sfq perturb 10
tc qdisc add dev eth2 parent 1:10 handle 10:0 sfq perturb 10
tc qdisc add dev eth2 parent 1:15 handle 15:0 sfq perturb 10#VPN & Contra
tc filter add dev eth2 protocol ip parent 1:0 prio 1 u32 match ip protocol 0x06 0xff match ip sport 1723 0xffff flowid 1:5
tc filter add dev eth2 protocol ip parent 1:0 prio 1 u32 match ip protocol 0x11 0xff match ip sport 27015 0xffff flowid 1:5#FTP
tc filter add dev eth2 protocol ip parent 1:0 prio 1 u32 match ip protocol 0x06 0xff match ip sport 21 0xffff flowid 1:10
tc filter add dev eth2 protocol ip parent 1:0 prio 1 u32 match ip protocol 0x06 0xff match ip sport 20 0xffff flowid 1:10
В этом случае у меня FTP сможет использовать неиспользуемую полосу вплоть до 500kbit. Но на практике получилось что этот трафик "занимает" и при этом забивает напрочь контру и впн, несмотря на то что у них приоритет выше. Чтобы обеспечить бесперебойную работу интерактивных протоколов мне пришлось написать rate 128kbit ceil 128kbit - т. е. просто "зарезать" FTP.
Так как же сделать чтобы и неиспользуемая полоса занималась, но и интерактивный и более приоритетный трафик не забивался?
1. По моему в ядрах до 2.4.27 включительно были как раз проблемы с htb
borrowing,
2. количество переданной информации, после отсылки которой начинается
обработка менее приоритетного класса задается параметром "quantum"
3. попробуй вместо sfq использовать pfifo в leaf дисциплинах, в противном
случае придется крутить wmem_* + tcp_wmem*.4. вышли ка tc -d -s qdisc sh dev eth2
>1. По моему в ядрах до 2.4.27 включительно были как раз проблемы
>с htb
>borrowing,а у меня как раз 2.4.28
>2. количество переданной информации, после отсылки которой начинается
>обработка менее приоритетного класса задается параметром "quantum"тоесть этот параметр можно попробовать увеличить?
>3. попробуй вместо sfq использовать pfifo в leaf дисциплинах, в противном
>случае придется крутить wmem_* + tcp_wmem*.
>попробую
>4. вышли ка tc -d -s qdisc sh dev eth2
# tc -d -s qdisc sh dev eth2
qdisc htb 1: r2q 10 default 15 direct_packets_stat 36 ver 3.17
Sent 69664656 bytes 85336 pkts (dropped 0, overlimits 48012)
qdisc sfq 5: parent 1:5 limit 128p quantum 1514b flows 128/1024 perturb 10sec
Sent 3256 bytes 44 pkts (dropped 0, overlimits 0)
qdisc sfq 10: parent 1:10 limit 128p quantum 1514b flows 128/1024 perturb 10sec
Sent 13809896 bytes 9167 pkts (dropped 0, overlimits 0)
qdisc sfq 15: parent 1:15 limit 128p quantum 1514b flows 128/1024 perturb 10sec
Sent 55236845 bytes 71344 pkts (dropped 0, overlimits 0)
#
>1. По моему в ядрах до 2.4.27 включительно были как раз проблемы
>с htb
>borrowing,
>2. количество переданной информации, после отсылки которой начинается
>обработка менее приоритетного класса задается параметром "quantum"а число указываетс в байтах? Попробовал указать 1000000 для самого приоритетного - не помогло
>3. попробуй вместо sfq использовать pfifo в leaf дисциплинах, в противном
>случае придется крутить wmem_* + tcp_wmem*.
>попробовал pfifo - не помогло, может там еще какой параметр надо?
>4. вышли ка tc -d -s qdisc sh dev eth2
чего-то я нифига не вижу
1. создай очереди с pfifo
2. вышли ка еще раз tc -d -s class sh dev eth2 с пиковой загрузкой
>чего-то я нифига не вижу
>1. создай очереди с pfifo
#eth2tc qdisc add dev eth2 root handle 1:0 htb default 15
tc class add dev eth2 parent 1:0 classid 1:1 htb rate 1020kbittc class add dev eth2 parent 1:1 classid 1:5 htb rate 320kbit ceil 1020kbit prio 2
tc class add dev eth2 parent 1:1 classid 1:7 htb rate 128kbit ceil 1020kbit prio 5
tc class add dev eth2 parent 1:1 classid 1:10 htb rate 128kbit ceil 1020kbit prio 6
tc class add dev eth2 parent 1:1 classid 1:15 htb rate 52kbit ceil 52kbit prio 7tc qdisc add dev eth2 parent 1:5 handle 5:0 pfifo
tc qdisc add dev eth2 parent 1:7 handle 7:0 pfifo
tc qdisc add dev eth2 parent 1:10 handle 10:0 pfifo
tc qdisc add dev eth2 parent 1:15 handle 15:0 pfifo#SSH
tc filter add dev eth2 protocol ip parent 1:0 prio 1 u32 match ip protocol 0x06 0xff match ip sport 22 0xffff flowid 1:5#VPN
tc filter add dev eth2 protocol ip parent 1:0 prio 1 u32 match ip protocol 0x06 0xff match ip sport 1723 0xffff flowid 1:5#Contra
tc filter add dev eth2 protocol ip parent 1:0 prio 1 u32 match ip protocol 0x11 0xff match ip sport 27015 0xffff flowid 1:7#FTP
tc filter add dev eth2 protocol ip parent 1:0 prio 1 u32 match ip protocol 0x06 0xff match ip sport 21 0xffff flowid 1:10
tc filter add dev eth2 protocol ip parent 1:0 prio 1 u32 match ip protocol 0x06 0xff match ip sport 20 0xffff flowid 1:10>2. вышли ка еще раз tc -d -s class sh dev eth2
>с пиковой загрузкой# tc -d -s class show dev eth2
class htb 1:1 root rate 1020Kbit ceil 1020Kbit burst 2874b/8 mpu 0b cburst 2874b
/8 mpu 0b level 7
Sent 13004701 bytes 10275 pkts (dropped 0, overlimits 0)
rate 66973bit 61pps
lended: 6878 borrowed: 0 giants: 0
tokens: 8450 ctokens: 8450class htb 1:10 parent 1:1 leaf 10: prio 6 quantum 1600 rate 128Kbit ceil 1020Kbi
t burst 1759b/8 mpu 0b cburst 2874b/8 mpu 0b level 0
Sent 12825077 bytes 8493 pkts (dropped 0, overlimits 0)
rate 65292bit 43pps
lended: 1622 borrowed: 6871 giants: 0
tokens: -14310 ctokens: 8758class htb 1:15 parent 1:1 leaf 15: prio 7 quantum 1000 rate 52Kbit ceil 52Kbit b
urst 1.625Kb/8 mpu 0b cburst 1.625Kb/8 mpu 0b level 0
Sent 2256 bytes 20 pkts (dropped 0, overlimits 0)
lended: 20 borrowed: 0 giants: 0
tokens: 198750 ctokens: 198750class htb 1:5 parent 1:1 leaf 5: prio 2 quantum 4000 rate 320Kbit ceil 1020Kbit
burst 1999b/8 mpu 0b cburst 2874b/8 mpu 0b level 0
Sent 54551 bytes 452 pkts (dropped 0, overlimits 0)
rate 298bit 1pps
lended: 452 borrowed: 0 giants: 0
tokens: 39977 ctokens: 18164class htb 1:7 parent 1:1 leaf 7: prio 5 quantum 1600 rate 128Kbit ceil 1020Kbit
burst 1759b/8 mpu 0b cburst 2874b/8 mpu 0b level 0
Sent 122817 bytes 1310 pkts (dropped 0, overlimits 0)
rate 1190bit 14pps
lended: 1303 borrowed: 7 giants: 0
tokens: 83968 ctokens: 17702
>#VPN
>tc filter add dev eth2 protocol ip parent 1:0 prio 1 u32
>match ip protocol 0x06 0xff match ip sport 1723 0xffff flowid
>1:5
Для VPN (pptp) нужен еще протокол GRE (47).tc filter add dev eth2 protocol ip parent 1:0 prio 1 u32 match ip protocol 0x2f 0xff flowid 1:5
>>#VPN
>>tc filter add dev eth2 protocol ip parent 1:0 prio 1 u32
>>match ip protocol 0x06 0xff match ip sport 1723 0xffff flowid
>>1:5
>Для VPN (pptp) нужен еще протокол GRE (47).
>
>tc filter add dev eth2 protocol ip parent 1:0 prio 1 u32
>match ip protocol 0x2f 0xff flowid 1:5Спасибо, а то я долго голову ломал почему VPN не хочет в этот класс попадать.
Видиш ли, я вообще не вижу чтобы htb откидывал пакеты (у тебя drop везде по нулям). pfifo слудует выставить в 10 (я уж не помню сколько там по
умолчанию устанавливается, но по моему в районе 100). Все остальное
выглядит вполне нормально, единственное что могу еще посоветовать, это
подкрутить r2q<10.>>чего-то я нифига не вижу
>>1. создай очереди с pfifo
>
>
>#eth2
>
>tc qdisc add dev eth2 root handle 1:0 htb default 15
>tc class add dev eth2 parent 1:0 classid 1:1 htb rate 1020kbit
>
>
>tc class add dev eth2 parent 1:1 classid 1:5 htb rate 320kbit
>ceil 1020kbit prio 2
>tc class add dev eth2 parent 1:1 classid 1:7 htb rate 128kbit
>ceil 1020kbit prio 5
>tc class add dev eth2 parent 1:1 classid 1:10 htb rate 128kbit
>ceil 1020kbit prio 6
>tc class add dev eth2 parent 1:1 classid 1:15 htb rate 52kbit
>ceil 52kbit prio 7
>
>tc qdisc add dev eth2 parent 1:5 handle 5:0 pfifo
>tc qdisc add dev eth2 parent 1:7 handle 7:0 pfifo
>tc qdisc add dev eth2 parent 1:10 handle 10:0 pfifo
>tc qdisc add dev eth2 parent 1:15 handle 15:0 pfifo
>
>#SSH
>tc filter add dev eth2 protocol ip parent 1:0 prio 1 u32
>match ip protocol 0x06 0xff match ip sport 22 0xffff flowid
>1:5
>
>#VPN
>tc filter add dev eth2 protocol ip parent 1:0 prio 1 u32
>match ip protocol 0x06 0xff match ip sport 1723 0xffff flowid
>1:5
>
>#Contra
>tc filter add dev eth2 protocol ip parent 1:0 prio 1 u32
>match ip protocol 0x11 0xff match ip sport 27015 0xffff flowid
>1:7
>
>#FTP
>tc filter add dev eth2 protocol ip parent 1:0 prio 1 u32
>match ip protocol 0x06 0xff match ip sport 21 0xffff flowid
>1:10
>tc filter add dev eth2 protocol ip parent 1:0 prio 1 u32
>match ip protocol 0x06 0xff match ip sport 20 0xffff flowid
>1:10
>
>
>
>>2. вышли ка еще раз tc -d -s class sh dev eth2
>>с пиковой загрузкой
>
># tc -d -s class show dev eth2
>class htb 1:1 root rate 1020Kbit ceil 1020Kbit burst 2874b/8 mpu 0b
>cburst 2874b
>/8 mpu 0b level 7
> Sent 13004701 bytes 10275 pkts (dropped 0, overlimits 0)
> rate 66973bit 61pps
> lended: 6878 borrowed: 0 giants: 0
> tokens: 8450 ctokens: 8450
>
>class htb 1:10 parent 1:1 leaf 10: prio 6 quantum 1600 rate
>128Kbit ceil 1020Kbi
>t burst 1759b/8 mpu 0b cburst 2874b/8 mpu 0b level 0
> Sent 12825077 bytes 8493 pkts (dropped 0, overlimits 0)
> rate 65292bit 43pps
> lended: 1622 borrowed: 6871 giants: 0
> tokens: -14310 ctokens: 8758
>
>class htb 1:15 parent 1:1 leaf 15: prio 7 quantum 1000 rate
>52Kbit ceil 52Kbit b
>urst 1.625Kb/8 mpu 0b cburst 1.625Kb/8 mpu 0b level 0
> Sent 2256 bytes 20 pkts (dropped 0, overlimits 0)
> lended: 20 borrowed: 0 giants: 0
> tokens: 198750 ctokens: 198750
>
>class htb 1:5 parent 1:1 leaf 5: prio 2 quantum 4000 rate
>320Kbit ceil 1020Kbit
>burst 1999b/8 mpu 0b cburst 2874b/8 mpu 0b level 0
> Sent 54551 bytes 452 pkts (dropped 0, overlimits 0)
> rate 298bit 1pps
> lended: 452 borrowed: 0 giants: 0
> tokens: 39977 ctokens: 18164
>
>class htb 1:7 parent 1:1 leaf 7: prio 5 quantum 1600 rate
>128Kbit ceil 1020Kbit
>burst 1759b/8 mpu 0b cburst 2874b/8 mpu 0b level 0
> Sent 122817 bytes 1310 pkts (dropped 0, overlimits 0)
> rate 1190bit 14pps
> lended: 1303 borrowed: 7 giants: 0
> tokens: 83968 ctokens: 17702
>Видиш ли, я вообще не вижу чтобы htb откидывал пакеты (у тебя
>drop везде по нулям). pfifo слудует выставить в 10 (я уж
>не помню сколько там по
>умолчанию устанавливается, но по моему в районе 100).Вы имеете ввиду параметр limit? Он там стоит по умолчанию 1000
>Все остальное
>выглядит вполне нормально, единственное что могу еще посоветовать, это
>подкрутить r2q<10.
Создал такие правила:#eth2
tc qdisc add dev eth2 root handle 1:0 htb default 15 r2q 5
tc class add dev eth2 parent 1:0 classid 1:1 htb rate 1020kbittc class add dev eth2 parent 1:1 classid 1:5 htb rate 320kbit ceil 1020kbit prio 1
tc class add dev eth2 parent 1:1 classid 1:6 htb rate 50kbit ceil 1020kbit prio 3
tc class add dev eth2 parent 1:1 classid 1:7 htb rate 128kbit ceil 1020kbit prio 5
tc class add dev eth2 parent 1:1 classid 1:10 htb rate 128kbit ceil 1020kbit prio 6
tc class add dev eth2 parent 1:1 classid 1:15 htb rate 52kbit ceil 1020kbit prio 7tc qdisc add dev eth2 parent 1:5 handle 5:0 pfifo limit 10
tc qdisc add dev eth2 parent 1:6 handle 6:0 pfifo limit 10
tc qdisc add dev eth2 parent 1:7 handle 7:0 pfifo limit 10
tc qdisc add dev eth2 parent 1:10 handle 10:0 pfifo limit 10
tc qdisc add dev eth2 parent 1:15 handle 15:0 pfifo limit 10#SSH
tc filter add dev eth2 protocol ip parent 1:0 prio 1 u32 match ip protocol 0x06 0xff match ip sport 22 0xffff flowid 1:6#VPN
tc filter add dev eth2 protocol ip parent 1:0 prio 1 u32 match ip protocol 0x06 0xff match ip sport 1723 0xffff flowid 1:5
tc filter add dev eth2 protocol ip parent 1:0 prio 1 u32 match ip protocol 0x2f 0xff flowid 1:5#Contra
tc filter add dev eth2 protocol ip parent 1:0 prio 1 u32 match ip protocol 0x11 0xff match ip sport 27015 0xffff flowid 1:7#FTP
tc filter add dev eth2 protocol ip parent 1:0 prio 1 u32 match ip protocol 0x06 0xff match ip sport 21 0xffff flowid 1:10
tc filter add dev eth2 protocol ip parent 1:0 prio 1 u32 match ip protocol 0x06 0xff match ip sport 20 0xffff flowid 1:10
1. Запустил закачку по FTP - скорость закачки максимальная.
2. Зашел на сервер контры - скорость закачки стала прыгать в сторону уменьшения (тоесть более приоритетный трафик стал брать свое от канала)
3. Все бы хорошо, но контре от этого не легче - латенси в игре переваливает за 1200Посмотрел статистику:
# tc -d -s class show dev eth2
class htb 1:1 root rate 1020Kbit ceil 1020Kbit burst 2874b/8 mpu 0b cburst 2874b/8 mpu 0b level 7
Sent 3337578 bytes 3161 pkts (dropped 0, overlimits 0)
rate 49769bit 46pps
lended: 1610 borrowed: 0 giants: 0
tokens: 7834 ctokens: 7834class htb 1:10 parent 1:1 leaf 10: prio 6 quantum 3200 rate 128Kbit ceil 1020Kbit burst 1759b/8 mpu 0b cburst 2874b/8 mpu 0b level 0
Sent 3209874 bytes 2121 pkts (dropped 0, overlimits 0)
rate 48351bit 31pps
lended: 561 borrowed: 1560 giants: 0
tokens: -74528 ctokens: 8758class htb 1:15 parent 1:1 leaf 15: prio 7 quantum 1300 rate 52Kbit ceil 1020Kbit burst 1.625Kb/8 mpu 0b cburst 2874b/8 mpu 0b level 0
Sent 46493 bytes 62 pkts (dropped 0, overlimits 0)
rate 190bit
lended: 12 borrowed: 50 giants: 0
tokens: 187660 ctokens: 17342class htb 1:5 parent 1:1 leaf 5: prio 1 quantum 8000 rate 320Kbit ceil 1020Kbit burst 1999b/8 mpu 0b cburst 2874b/8 mpu 0b level 0
Sent 0 bytes 0 pkts (dropped 0, overlimits 0)
lended: 0 borrowed: 0 giants: 0
tokens: 40960 ctokens: 18472class htb 1:6 parent 1:1 leaf 6: prio 3 quantum 1250 rate 50Kbit ceil 1020Kbit burst 1.625Kb/8 mpu 0b cburst 2874b/8 mpu 0b level 0
Sent 14472 bytes 172 pkts (dropped 0, overlimits 0)
rate 348bit 4pps
lended: 172 borrowed: 0 giants: 0
tokens: 211550 ctokens: 18164class htb 1:7 parent 1:1 leaf 7: prio 5 quantum 3200 rate 128Kbit ceil 1020Kbit burst 1759b/8 mpu 0b cburst 2874b/8 mpu 0b level 0
Sent 66739 bytes 806 pkts (dropped 0, overlimits 0)
rate 1048bit 11pps
lended: 806 borrowed: 0 giants: 0
tokens: 82740 ctokens: 17548Получается так что FTP может занимать неиспользуемую полосу, но если более приоритетные приложения начинают задействовать свою полосу - то полоса эта разгружается недостаточно быстро.
>Создал такие правила:
>
>#eth2
>
>tc qdisc add dev eth2 root handle 1:0 htb default 15 r2q
>5
>tc class add dev eth2 parent 1:0 classid 1:1 htb rate 1020kbit
>
>
>tc class add dev eth2 parent 1:1 classid 1:5 htb rate 320kbit
>ceil 1020kbit prio 1
>tc class add dev eth2 parent 1:1 classid 1:6 htb rate 50kbit
>ceil 1020kbit prio 3
>tc class add dev eth2 parent 1:1 classid 1:7 htb rate 128kbit
>ceil 1020kbit prio 5
>tc class add dev eth2 parent 1:1 classid 1:10 htb rate 128kbit
>ceil 1020kbit prio 6
>tc class add dev eth2 parent 1:1 classid 1:15 htb rate 52kbit
>ceil 1020kbit prio 7
>
>tc qdisc add dev eth2 parent 1:5 handle 5:0 pfifo limit 10
>
>tc qdisc add dev eth2 parent 1:6 handle 6:0 pfifo limit 10
>
>tc qdisc add dev eth2 parent 1:7 handle 7:0 pfifo limit 10
>
>tc qdisc add dev eth2 parent 1:10 handle 10:0 pfifo limit 10
>
>tc qdisc add dev eth2 parent 1:15 handle 15:0 pfifo limit 10
>
>
>#SSH
>tc filter add dev eth2 protocol ip parent 1:0 prio 1 u32
>match ip protocol 0x06 0xff match ip sport 22 0xffff flowid
>1:6
>
>#VPN
>tc filter add dev eth2 protocol ip parent 1:0 prio 1 u32
>match ip protocol 0x06 0xff match ip sport 1723 0xffff flowid
>1:5
>tc filter add dev eth2 protocol ip parent 1:0 prio 1 u32
>match ip protocol 0x2f 0xff flowid 1:5
>
>#Contra
>tc filter add dev eth2 protocol ip parent 1:0 prio 1 u32
>match ip protocol 0x11 0xff match ip sport 27015 0xffff flowid
>1:7
>
>#FTP
>tc filter add dev eth2 protocol ip parent 1:0 prio 1 u32
>match ip protocol 0x06 0xff match ip sport 21 0xffff flowid
>1:10
>tc filter add dev eth2 protocol ip parent 1:0 prio 1 u32
>match ip protocol 0x06 0xff match ip sport 20 0xffff flowid
>1:10
>
>
>1. Запустил закачку по FTP - скорость закачки максимальная.
>2. Зашел на сервер контры - скорость закачки стала прыгать в сторону
>уменьшения (тоесть более приоритетный трафик стал брать свое от канала)
>3. Все бы хорошо, но контре от этого не легче - латенси
>в игре переваливает за 1200
>
>Посмотрел статистику:
>
># tc -d -s class show dev eth2
>class htb 1:1 root rate 1020Kbit ceil 1020Kbit burst 2874b/8 mpu 0b
>cburst 2874b/8 mpu 0b level 7
> Sent 3337578 bytes 3161 pkts (dropped 0, overlimits 0)
> rate 49769bit 46pps
> lended: 1610 borrowed: 0 giants: 0
> tokens: 7834 ctokens: 7834
>
>class htb 1:10 parent 1:1 leaf 10: prio 6 quantum 3200 rate
>128Kbit ceil 1020Kbit burst 1759b/8 mpu 0b cburst 2874b/8 mpu 0b
>level 0
> Sent 3209874 bytes 2121 pkts (dropped 0, overlimits 0)
> rate 48351bit 31pps
> lended: 561 borrowed: 1560 giants: 0
> tokens: -74528 ctokens: 8758
>
>class htb 1:15 parent 1:1 leaf 15: prio 7 quantum 1300 rate
>52Kbit ceil 1020Kbit burst 1.625Kb/8 mpu 0b cburst 2874b/8 mpu 0b
>level 0
> Sent 46493 bytes 62 pkts (dropped 0, overlimits 0)
> rate 190bit
> lended: 12 borrowed: 50 giants: 0
> tokens: 187660 ctokens: 17342
>
>class htb 1:5 parent 1:1 leaf 5: prio 1 quantum 8000 rate
>320Kbit ceil 1020Kbit burst 1999b/8 mpu 0b cburst 2874b/8 mpu 0b
>level 0
> Sent 0 bytes 0 pkts (dropped 0, overlimits 0)
> lended: 0 borrowed: 0 giants: 0
> tokens: 40960 ctokens: 18472
>
>class htb 1:6 parent 1:1 leaf 6: prio 3 quantum 1250 rate
>50Kbit ceil 1020Kbit burst 1.625Kb/8 mpu 0b cburst 2874b/8 mpu 0b
>level 0
> Sent 14472 bytes 172 pkts (dropped 0, overlimits 0)
> rate 348bit 4pps
> lended: 172 borrowed: 0 giants: 0
> tokens: 211550 ctokens: 18164
>
>class htb 1:7 parent 1:1 leaf 7: prio 5 quantum 3200 rate
>128Kbit ceil 1020Kbit burst 1759b/8 mpu 0b cburst 2874b/8 mpu 0b
>level 0
> Sent 66739 bytes 806 pkts (dropped 0, overlimits 0)
> rate 1048bit 11pps
> lended: 806 borrowed: 0 giants: 0
> tokens: 82740 ctokens: 17548
>
>Получается так что FTP может занимать неиспользуемую полосу, но если более приоритетные
>приложения начинают задействовать свою полосу - то полоса эта разгружается недостаточно
>быстро.сдеай quantum у менее приоритетных классов в районе скажем 1500
да, кстати если это не поможет (хотя вс е вроде бы нормально), есть другой
способ сотворить такую же очередь, но без HTB
>да, кстати если это не поможет (хотя вс е вроде бы нормально),
>есть другой
>способ сотворить такую же очередь, но без HTB
Все так же не помогает. Приоритеты до лампочки.
>>да, кстати если это не поможет (хотя вс е вроде бы нормально),
>>есть другой
>>способ сотворить такую же очередь, но без HTB
>
>
>Все так же не помогает. Приоритеты до лампочки.ну здесь уж ни чем не могу помочь, т.к. все сделано правильно.
при latency ядра в 10 ms все должно работать очень даже хорошо,
единственно на что могу грешить, так это на то, что CS работает по
UDP, который дрессировке не поддается практически никак. Хотя с другой
стороны у меня и UDP вполне нормально пашет.
>>2. вышли ка еще раз tc -d -s class sh dev eth2
>>с пиковой загрузкой># tc -d -s class show dev eth2
>class htb 1:1 root rate 1020Kbit ceil 1020Kbit burst 2874b/8 mpu 0b
>cburst 2874b/8 mpu 0b level 7
>Sent 13004701 bytes 10275 pkts (dropped 0, overlimits 0)
>rate 66973bit 61pps
^
Это пиковая загрузка ?>1. Запустил закачку по FTP - скорость закачки максимальная.
и сколько в kbit?
>2. Зашел на сервер контры - скорость закачки стала прыгать в сторону
>уменьшения (тоесть более приоритетный трафик стал брать свое от канала)
>>>2. вышли ка еще раз tc -d -s class sh dev eth2
>>>с пиковой загрузкой
>
>># tc -d -s class show dev eth2
>>class htb 1:1 root rate 1020Kbit ceil 1020Kbit burst 2874b/8 mpu 0b
>>cburst 2874b/8 mpu 0b level 7
>>Sent 13004701 bytes 10275 pkts (dropped 0, overlimits 0)
>>rate 66973bit 61pps
>^
>Это пиковая загрузка ?да
>
>>1. Запустил закачку по FTP - скорость закачки максимальная.
> и сколько в kbit?качал фаром он в КБ показывает - в районе 100
>>2. Зашел на сервер контры - скорость закачки стала прыгать в сторону
>>уменьшения (тоесть более приоритетный трафик стал брать свое от канала)скорость стала колебаться 45-80 КБ
>>>>2. вышли ка еще раз tc -d -s class sh dev eth2
>>>>с пиковой загрузкой
>>
>>># tc -d -s class show dev eth2
>>>class htb 1:1 root rate 1020Kbit ceil 1020Kbit burst 2874b/8 mpu 0b
>>>cburst 2874b/8 mpu 0b level 7
>>>Sent 13004701 bytes 10275 pkts (dropped 0, overlimits 0)
>>>rate 66973bit 61pps
>>^
>>Это пиковая загрузка ?
>
>да
>
>>
>>>1. Запустил закачку по FTP - скорость закачки максимальная.
>> и сколько в kbit?
>
>качал фаром он в КБ показывает - в районе 100
>
>>>2. Зашел на сервер контры - скорость закачки стала прыгать в сторону
>>>уменьшения (тоесть более приоритетный трафик стал брать свое от канала)
>
>скорость стала колебаться 45-80 КБrate 66973bit и 45-80 КБ разница на порядок ?
кто врет far , htb ,tc ?
я кстати по прежнему не вижу ни одного отброшенного пакета,
даже при нагрузке. Это не есть правильно, HTB должен отбрасывать
пакеты.
Чтобы выяснить почему такое происходит, нужно включать отладку
(готовь место на диске).
>я кстати по прежнему не вижу ни одного отброшенного пакета,
>даже при нагрузке. Это не есть правильно, HTB должен отбрасывать
>пакеты.
>Чтобы выяснить почему такое происходит, нужно включать отладку
>(готовь место на диске).
как ее включить?
tc qdisc add htb ... debug 3333333
>tc qdisc add htb ... debug 3333333
а ему можно какнить сказать куда кидать логи? А то у меня фиртуальная ФС - места мало - зато в /mnt/fd есть место
>>tc qdisc add htb ... debug 3333333
>
>
>а ему можно какнить сказать куда кидать логи? А то у меня
>фиртуальная ФС - места мало - зато в /mnt/fd есть место
>vi /etc/syslog.conf
----
kern.* /path/to/log/file
----
kill -HUP `pgrep syslogd`
>>да, кстати если это не поможет (хотя вс е вроде бы нормально),
>>есть другой
>>способ сотворить такую же очередь, но без HTB
>
>
>Все так же не помогает. Приоритеты до лампочки.вот здесь я не понял какие такие приоритеты ?
>>>да, кстати если это не поможет (хотя вс е вроде бы нормально),
>>>есть другой
>>>способ сотворить такую же очередь, но без HTB
>>
>>
>>Все так же не помогает. Приоритеты до лампочки.
>
>вот здесь я не понял какие такие приоритеты ?
у классов прописаны еще и приоритеты - prio
у FTP, например, приоритет один из самых низких - prio 6