cac2s Опубликовано 16 марта, 2011 (изменено) · Жалоба нужно: зажать входящий p2p-трафик. для этого выделил ему 5% гарантированной ширины с возможностью заимствовать до 100%. hi-prio пакеты выделяю посредством анализа source port, всё остальное - low-prio первый вариант: +---------+ | root 1: | +---------+ | | +-----------------------------------------+ +--| class 1:1 нетранзитный трафик | | +-----------------------------------------+ | | +-----------------------------------------+ +--| class 1:2 транзитный трафик (hi-prio) | | +-----------------------------------------+ | | | | | | | +-----+ +-----+ +-----+ +-----+ +-----+ | | 1:5 | | 1:8 | |1:10 | |1:20 | |1:30 | | +-----+ +-----+ +-----+ +-----+ +-----+ | | +-----------------------------------------+ +--| class 1:90 транзитный трафик (low-prio) | +-----------------------------------------+ $TC qdisc add dev $DEV_IN root handle 1:0 htb r2q 3 $TC filter add dev $DEV_IN parent 1:0 prio 1 protocol ip u32 match ip src $IP_LOCAL1 classid 1:1 $TC filter add dev $DEV_IN parent 1:0 prio 1 protocol ip u32 match ip src $IP_LOCAL2 classid 1:1 $TC filter add dev $DEV_IN parent 1:0 prio 1 protocol ip u32 match ip src $IP_LOCAL3 classid 1:1 $TC filter add dev $DEV_IN parent 1:0 prio 5 handle 5 protocol ip fw flowid 1:5 $TC filter add dev $DEV_IN parent 1:0 prio 8 handle 8 protocol ip fw flowid 1:8 $TC filter add dev $DEV_IN parent 1:0 prio 10 handle 10 protocol ip fw flowid 1:10 $TC filter add dev $DEV_IN parent 1:0 prio 20 handle 20 protocol ip fw flowid 1:20 $TC filter add dev $DEV_IN parent 1:0 prio 30 handle 30 protocol ip fw flowid 1:30 $TC filter add dev $DEV_IN parent 1:0 prio 90 handle 90 protocol ip fw flowid 1:90 $TC class add dev $DEV_IN parent 1:0 classid 1:1 htb rate $RATE_LOCAL quantum 60000 prio 99 $TC qdisc add dev $DEV_IN parent 1:1 pfifo $TC class add dev $DEV_IN parent 1:0 classid 1:2 htb rate $[90*$RATE_IN/100]kbit ceil ${RATE_IN}kbit prio 1 $TC class add dev $DEV_IN parent 1:2 classid 1:5 htb rate $[5*$RATE_IN/100]kbit ceil ${RATE_IN}kbit prio 5 $TC class add dev $DEV_IN parent 1:2 classid 1:8 htb rate $[10*$RATE_IN/100]kbit ceil ${RATE_IN}kbit prio 8 $TC class add dev $DEV_IN parent 1:2 classid 1:10 htb rate $[10*$RATE_IN/100]kbit ceil ${RATE_IN}kbit prio 10 $TC class add dev $DEV_IN parent 1:2 classid 1:20 htb rate $[45*$RATE_IN/100]kbit ceil ${RATE_IN}kbit prio 20 $TC class add dev $DEV_IN parent 1:2 classid 1:30 htb rate $[25*$RATE_IN/100]kbit ceil ${RATE_IN}kbit prio 30 $TC filter add dev $DEV_IN parent 5: prio 5 protocol ip handle 8 flow hash keys dst divisor 256 $TC filter add dev $DEV_IN parent 8: prio 8 protocol ip handle 8 flow hash keys dst divisor 256 $TC filter add dev $DEV_IN parent 10: prio 10 protocol ip handle 10 flow hash keys dst divisor 256 $TC filter add dev $DEV_IN parent 20: prio 20 protocol ip handle 20 flow hash keys dst divisor 256 $TC filter add dev $DEV_IN parent 30: prio 30 protocol ip handle 30 flow hash keys dst divisor 256 $TC class add dev $DEV_IN parent 1:0 classid 1:90 htb rate $[5*$RATE_IN/100]kbit ceil ${RATE_IN}kbit prio 10 $TC qdisc add dev $DEV_IN parent 1:90 handle 90: sfq perturb 30 $TC filter add dev $DEV_IN parent 90: prio 90 protocol ip handle 90 flow hash keys dst divisor 512 при таком варианте игнорируются ceil классов 1:2 и 1:90, т.е. ни 1:2, ни 1:90 не могут "разгонятся" до 100% второй вариант: +---------+ | root 1: | +---------+ | | +---------------------------------------------+ +--| class 1:1 нетранзитный трафик | | +---------------------------------------------+ | | +---------------------------------------------+ +--| class 1:2 транзитный трафик | +---------------------------------------------+ | | +-----------------------------------------+ +--| class 1:3 (hi-prio) | | +-----------------------------------------+ | | | | | | | +-----+ +-----+ +-----+ +-----+ +-----+ | | 1:5 | | 1:8 | |1:10 | |1:20 | |1:30 | | +-----+ +-----+ +-----+ +-----+ +-----+ | | +-----------------------------------------+ +--| class 1:90 (low-prio) | +-----------------------------------------+ $TC qdisc add dev $DEV_IN root handle 1:0 htb r2q 3 $TC filter add dev $DEV_IN parent 1:0 prio 1 protocol ip u32 match ip src $IP_LOCAL1 classid 1:1 $TC filter add dev $DEV_IN parent 1:0 prio 1 protocol ip u32 match ip src $IP_LOCAL2 classid 1:1 $TC filter add dev $DEV_IN parent 1:0 prio 1 protocol ip u32 match ip src $IP_LOCAL3 classid 1:1 $TC filter add dev $DEV_IN parent 1:0 prio 5 handle 5 protocol ip fw flowid 1:5 $TC filter add dev $DEV_IN parent 1:0 prio 8 handle 8 protocol ip fw flowid 1:8 $TC filter add dev $DEV_IN parent 1:0 prio 10 handle 10 protocol ip fw flowid 1:10 $TC filter add dev $DEV_IN parent 1:0 prio 20 handle 20 protocol ip fw flowid 1:20 $TC filter add dev $DEV_IN parent 1:0 prio 30 handle 30 protocol ip fw flowid 1:30 $TC filter add dev $DEV_IN parent 1:0 prio 90 handle 90 protocol ip fw flowid 1:90 $TC class add dev $DEV_IN parent 1:0 classid 1:1 htb rate $RATE_LOCAL quantum 60000 prio 99 $TC qdisc add dev $DEV_IN parent 1:1 pfifo $TC class add dev $DEV_IN parent 1:0 classid 1:2 htb rate ${RATE_IN}kbit ceil ${RATE_IN}kbit prio 1 $TC class add dev $DEV_IN parent 1:2 classid 1:3 htb rate $[90*$RATE_IN/100]kbit ceil ${RATE_IN}kbit prio 1 $TC class add dev $DEV_IN parent 1:3 classid 1:5 htb rate $[5*$RATE_IN/100]kbit ceil ${RATE_IN}kbit prio 5 $TC class add dev $DEV_IN parent 1:3 classid 1:8 htb rate $[10*$RATE_IN/100]kbit ceil ${RATE_IN}kbit prio 8 $TC class add dev $DEV_IN parent 1:3 classid 1:10 htb rate $[10*$RATE_IN/100]kbit ceil ${RATE_IN}kbit prio 10 $TC class add dev $DEV_IN parent 1:3 classid 1:20 htb rate $[45*$RATE_IN/100]kbit ceil ${RATE_IN}kbit prio 20 $TC class add dev $DEV_IN parent 1:3 classid 1:30 htb rate $[25*$RATE_IN/100]kbit ceil ${RATE_IN}kbit prio 30 $TC qdisc add dev $DEV_IN parent 1:5 handle 5: sfq perturb 10 $TC qdisc add dev $DEV_IN parent 1:8 handle 8: sfq perturb 10 $TC qdisc add dev $DEV_IN parent 1:10 handle 10: sfq perturb 10 $TC qdisc add dev $DEV_IN parent 1:20 handle 20: sfq perturb 10 $TC qdisc add dev $DEV_IN parent 1:30 handle 30: sfq perturb 10 $TC filter add dev $DEV_IN parent 5: prio 5 protocol ip handle 8 flow hash keys dst divisor 256 $TC filter add dev $DEV_IN parent 8: prio 8 protocol ip handle 8 flow hash keys dst divisor 256 $TC filter add dev $DEV_IN parent 10: prio 10 protocol ip handle 10 flow hash keys dst divisor 256 $TC filter add dev $DEV_IN parent 20: prio 20 protocol ip handle 20 flow hash keys dst divisor 256 $TC filter add dev $DEV_IN parent 30: prio 30 protocol ip handle 30 flow hash keys dst divisor 256 $TC class add dev $DEV_IN parent 1:2 classid 1:90 htb rate $[5*$RATE_IN/100]kbit ceil ${RATE_IN}kbit prio 90 $TC qdisc add dev $DEV_IN parent 1:90 handle 90: sfq perturb 30 $TC filter add dev $DEV_IN parent 90: prio 90 protocol ip handle 90 flow hash keys dst divisor 512 при таком варианте 1:90 съедает около 70% от допустимого rate родительского класса (1:2), оставляя с носом класс 1:3 подскажите, пожалуйста, ЧЯДНТ! Изменено 19 марта, 2011 пользователем cac2s Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
NiTr0 Опубликовано 16 марта, 2011 (изменено) · Жалоба при таком варианте 1:90 съедает около 70% от допустимого rate родительского класса (1:2), оставляя с носом класс 1:3А вы уверены, что именно в тот момент когда 70% съедает 1:90. 1:3 требует больше чем ему предоставляется?Да, и шейпера накрутить % на 5-10 меньше реально доступного внешнего канала. Т.к. шейпят не совсем точно. Изменено 16 марта, 2011 пользователем NiTr0 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
cac2s Опубликовано 17 марта, 2011 · Жалоба А вы уверены, что именно в тот момент когда 70% съедает 1:90. 1:3 требует больше чем ему предоставляется?уверен, т.к. проводил эксперимент след. образом - на одной машине ставил закачку файла по http с внешнего сервера (отдача до 90Мбит), на другом - запускал torrent-закачку, а на шлюзе смотрел iftop'ом кому какая ширина выделяется.з.ы.: http ложится в 1:3, а p2p в 1:90, т.к. является неклассифицируемым трафиком. Да, и шейпера накрутить % на 5-10 меньше реально доступного внешнего канала. Т.к. шейпят не совсем точно.так и сделал: доступная скорость - 3072Кбит, в шейпере выставлено - 2750 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Dark_Angel Опубликовано 17 марта, 2011 · Жалоба У вас для обоих случаев RATE 1:3 < SUM(RATES) от лифов. 90 < 95. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
cac2s Опубликовано 17 марта, 2011 · Жалоба У вас для обоих случаев RATE 1:3 < SUM(RATES) от лифов. 90 < 95. 1:3 присутствует только во втором варианте с сумой rate дочерних классов да - очепятался при смене общей схемы, но заметил ещё вчера и исправил. это ничего не поменяло :( немного изменил схему и скрипт для удобочитаемости: +---------+ | root 1: | +---------+ | | +---------------------------------------------+ +--| class 1:1 (нетранзитный трафик) | | +---------------------------------------------+ | | +---------------------------------------------+ +--| class 1:2 (транзитный трафик) | rate 100% +---------------------------------------------+ | | +-----------------------------------------+ +--| class 1:5 (hi-prio) | ceil 95% rate 100% prio 5 | +-----------------------------------------+ | | | | | | | +----+ +----+ +----+ +----+ +----+ | |1:10| |1:20| |1:30| |1:40| |1:50| | +----+ +----+ +----+ +----+ +----+ | | +-----------------------------------------+ +--| class 1:90 (low-prio) | ceil 5% rate 100% prio 90 +-----------------------------------------+ #!/bin/bash IPT="/sbin/iptables" TC="/sbin/tc" IP="/bin/ip" DEV_IN="eth0" RATE_IN="2750" # 90% от гарантированной провайдером RATE_LOCAL="1gbit" IP_LOCAL1="192.168.0.254" IP_LOCAL2="192.168.0.253" IP_LOCAL3="192.168.0.252" $TC qdisc del dev $DEV_IN root >/dev/null 2>&1 $TC qdisc del dev $DEV_IN ingress >/dev/null 2>&1 $IP link set dev $DEV_IN qlen 32 $TC qdisc add dev $DEV_IN root handle 1: htb r2q 3 # Нетранзитный трафик $TC class add dev $DEV_IN parent 1: classid 1:1 htb rate $RATE_LOCAL quantum 60000 prio 99 $TC qdisc add dev $DEV_IN parent 1:1 pfifo $TC filter add dev $DEV_IN parent 1: prio 1 protocol ip u32 match ip src $IP_LOCAL1 flowid 1:1 $TC filter add dev $DEV_IN parent 1: prio 1 protocol ip u32 match ip src $IP_LOCAL2 flowid 1:1 $TC filter add dev $DEV_IN parent 1: prio 1 protocol ip u32 match ip src $IP_LOCAL3 flowid 1:1 # Транзитный трафик $TC class add dev $DEV_IN parent 1: classid 1:2 htb rate ${RATE_IN}kbit prio 2 # high-prio $TC class add dev $DEV_IN parent 1:2 classid 1:5 htb rate $[95*$RATE_IN/100]kbit ceil ${RATE_IN}kbit prio 5 $TC class add dev $DEV_IN parent 1:5 classid 1:10 htb rate $[5*$RATE_IN/100]kbit ceil ${RATE_IN}kbit prio 10 $TC class add dev $DEV_IN parent 1:5 classid 1:20 htb rate $[10*$RATE_IN/100]kbit ceil ${RATE_IN}kbit prio 20 $TC class add dev $DEV_IN parent 1:5 classid 1:30 htb rate $[10*$RATE_IN/100]kbit ceil ${RATE_IN}kbit prio 30 $TC class add dev $DEV_IN parent 1:5 classid 1:40 htb rate $[45*$RATE_IN/100]kbit ceil ${RATE_IN}kbit prio 40 $TC class add dev $DEV_IN parent 1:5 classid 1:50 htb rate $[25*$RATE_IN/100]kbit ceil ${RATE_IN}kbit prio 50 $TC qdisc add dev $DEV_IN parent 1:10 handle 10: sfq perturb 10 $TC qdisc add dev $DEV_IN parent 1:20 handle 20: sfq perturb 10 $TC qdisc add dev $DEV_IN parent 1:30 handle 30: sfq perturb 10 $TC qdisc add dev $DEV_IN parent 1:40 handle 40: sfq perturb 10 $TC qdisc add dev $DEV_IN parent 1:50 handle 50: sfq perturb 10 $TC filter add dev $DEV_IN parent 10: prio 10 protocol ip handle 10 flow hash keys dst divisor 512 $TC filter add dev $DEV_IN parent 20: prio 20 protocol ip handle 20 flow hash keys dst divisor 512 $TC filter add dev $DEV_IN parent 30: prio 30 protocol ip handle 30 flow hash keys dst divisor 512 $TC filter add dev $DEV_IN parent 40: prio 40 protocol ip handle 40 flow hash keys dst divisor 512 $TC filter add dev $DEV_IN parent 50: prio 50 protocol ip handle 50 flow hash keys dst divisor 512 # low-prio $TC class add dev $DEV_IN parent 1:2 classid 1:90 htb rate $[5*$RATE_IN/100]kbit ceil ${RATE_IN}kbit quantum 10 prio 90 $TC qdisc add dev $DEV_IN parent 1:90 handle 90: sfq perturb 30 $TC filter add dev $DEV_IN parent 90: prio 90 protocol ip handle 90 flow hash keys dst divisor 512 $IPT -t mangle -D POSTROUTING -o $DEV_IN -j SHAPER-IN >/dev/null 2>&1 $IPT -t mangle -F SHAPER-IN >/dev/null 2>&1 $IPT -t mangle -X SHAPER-IN >/dev/null 2>&1 $IPT -t mangle -N SHAPER-IN $IPT -t mangle -I POSTROUTING -o $DEV_IN -j SHAPER-IN # icmp, dns $IPT -t mangle -A SHAPER-IN -p icmp -j CLASSIFY --set-class 1:10 $IPT -t mangle -A SHAPER-IN -p icmp -j RETURN $IPT -t mangle -A SHAPER-IN -p udp --sport 53 -j CLASSIFY --set-class 1:10 $IPT -t mangle -A SHAPER-IN -p udp --sport 53 -j RETURN # icecast $IPT -t mangle -A SHAPER-IN -p tcp -m multiport --sports 7000,8000 -j CLASSIFY --set-class 1:20 $IPT -t mangle -A SHAPER-IN -p tcp -m multiport --sports 7000,8000 -j RETURN # ssh, rdp $IPT -t mangle -A SHAPER-IN -p tcp -m multiport --sports 22,11122,3389 -j CLASSIFY --set-class 1:30 $IPT -t mangle -A SHAPER-IN -p tcp -m multiport --sports 22,11122,3389 -j RETURN # imap, imaps, pop3, pop3s $IPT -t mangle -A SHAPER-IN -p tcp -m multiport --sports 143,993,110,995 -j CLASSIFY --set-class 1:40 $IPT -t mangle -A SHAPER-IN -p tcp -m multiport --sports 143,993,110,995 -j RETURN # http, https; ftp(20,21) < 512KB $IPT -t mangle -A SHAPER-IN -p tcp -m multiport --sports 80,8080,443,20,21 -m connbytes --connbytes :524288 \n --connbytes-dir both --connbytes-mode bytes -j CLASSIFY --set-class 1:40 $IPT -t mangle -A SHAPER-IN -p tcp -m multiport --sports 80,8080,443,20,21 -m connbytes --connbytes :524288 \n --connbytes-dir both --connbytes-mode bytes -j RETURN # http, https; ftp(20,21) $IPT -t mangle -A SHAPER-IN -p tcp -m multiport --sports 80,8080,443,20,21,1935 -j CLASSIFY --set-class 1:50 $IPT -t mangle -A SHAPER-IN -p tcp -m multiport --sports 80,8080,443,20,21,1935 -j RETURN # low priority $IPT -t mangle -A SHAPER-IN -j CLASSIFY --set-class 1:90 заметил ещё такую особенность: если в классе 1:2 количество соединений увеличивается - 1:90 начинает отдавать незаконно отобранное. так при 10 коннектах/закачках 1:90 "скукоживается" практически до своего rate Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Dark_Angel Опубликовано 17 марта, 2011 (изменено) · Жалоба А можете показать статистику по корзинам в корневых классах для одного потока ( когда работает не правильно ). Ведь, если у класса ниже рейт, то и корзина должна быть поменьше, со всеми вытекающими. Еще есть подозрение, что низкоприоритетный трафик генерирует много пакетов, а высокоприоритетный - мало, но большие. Тогда шейпить будет криво, особенно если полосы измеряются в единицах Мбит. Изменено 17 марта, 2011 пользователем Dark_Angel Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
cac2s Опубликовано 17 марта, 2011 · Жалоба А можете показать статистику по корзинам в корневых классах для одного потока ( когда работает не правильно ). Ведь, если у класса ниже рейт, то и корзина должна быть поменьше, со всеми вытекающими.не совсем понял про корзины, поэтому сделаю предположение, что интересует вывод # tc -s qdisc: qdisc htb 1: dev eth0 root refcnt 2 r2q 3 default 0 direct_packets_stat 14 Sent 5569475 bytes 4900 pkt (dropped 0, overlimits 2293 requeues 0) rate 0bit 0pps backlog 0b 0p requeues 0 qdisc pfifo 800b: dev eth0 parent 1:1 limit 32p Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) rate 0bit 0pps backlog 0b 0p requeues 0 qdisc sfq 10: dev eth0 parent 1:10 limit 127p quantum 1514b perturb 10sec Sent 4772 bytes 21 pkt (dropped 0, overlimits 0 requeues 0) rate 0bit 0pps backlog 0b 0p requeues 0 qdisc sfq 20: dev eth0 parent 1:20 limit 127p quantum 1514b perturb 10sec Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) rate 0bit 0pps backlog 0b 0p requeues 0 qdisc sfq 30: dev eth0 parent 1:30 limit 127p quantum 1514b perturb 10sec Sent 24714 bytes 181 pkt (dropped 0, overlimits 0 requeues 0) rate 0bit 0pps backlog 0b 0p requeues 0 qdisc sfq 40: dev eth0 parent 1:40 limit 127p quantum 1514b perturb 10sec Sent 1226957 bytes 1534 pkt (dropped 0, overlimits 0 requeues 0) rate 0bit 0pps backlog 0b 0p requeues 0 qdisc sfq 50: dev eth0 parent 1:50 limit 127p quantum 1514b perturb 10sec Sent 4271974 bytes 2855 pkt (dropped 0, overlimits 0 requeues 0) rate 0bit 0pps backlog 0b 0p requeues 0 qdisc sfq 90: dev eth0 parent 1:90 limit 127p quantum 1514b perturb 30sec Sent 33110 bytes 288 pkt (dropped 0, overlimits 0 requeues 0) rate 0bit 0pps backlog 0b 0p requeues 0 особенно если полосы измеряются в единицах Мбит.везде прописано kbit Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Dark_Angel Опубликовано 17 марта, 2011 (изменено) · Жалоба Интересует вывод tc -s class show .... во время нагрузки и не правильной работы. Про единицы Мбит, имеется ввиду ширина класса, а там хоть в битах указывайте - шире от этого класс не станет. Изменено 17 марта, 2011 пользователем Dark_Angel Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
cac2s Опубликовано 17 марта, 2011 · Жалоба Интересует вывод tc -s class show .... во время нагрузки и не правильной работы. Про единицы Мбит, имеется ввиду ширина класса, а там хоть в битах указывайте - шире от этого класс не станет. прошу прощение. вот интересующий Вас вывод: # tc -s class show dev eth0 class htb 1:10 parent 1:5 leaf 10: prio 7 rate 137000bit ceil 2750Kbit burst 1599b cburst 1599b Sent 100504 bytes 449 pkt (dropped 0, overlimits 0 requeues 0) rate 624bit 0pps backlog 0b 0p requeues 0 lended: 440 borrowed: 9 giants: 0 tokens: 1335765 ctokens: 66547 class htb 1:1 root leaf 800b: prio 7 rate 1000Mbit ceil 1000Mbit burst 1375b cburst 1375b Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) rate 0bit 0pps backlog 0b 0p requeues 0 lended: 0 borrowed: 0 giants: 0 tokens: 187 ctokens: 187 class htb 1:2 root rate 2750Kbit ceil 2750Kbit burst 1599b cburst 1599b Sent 60991406 bytes 48903 pkt (dropped 0, overlimits 0 requeues 0) rate 2721Kbit 251pps backlog 0b 0p requeues 0 lended: 13370 borrowed: 0 giants: 0 tokens: -64237 ctokens: -64237 class htb 1:20 parent 1:5 leaf 20: prio 7 rate 275000bit ceil 2750Kbit burst 1599b cburst 1599b Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) rate 0bit 0pps backlog 0b 0p requeues 0 lended: 0 borrowed: 0 giants: 0 tokens: 727265 ctokens: 72718 class htb 1:30 parent 1:5 leaf 30: prio 7 rate 275000bit ceil 2750Kbit burst 1599b cburst 1599b Sent 112178 bytes 673 pkt (dropped 0, overlimits 0 requeues 0) rate 1968bit 2pps backlog 0b 0p requeues 0 lended: 673 borrowed: 0 giants: 0 tokens: 629094 ctokens: 62906 class htb 1:40 parent 1:5 leaf 40: prio 7 rate 1237Kbit ceil 2750Kbit burst 1599b cburst 1599b Sent 7148209 bytes 8549 pkt (dropped 0, overlimits 0 requeues 0) rate 45040bit 5pps backlog 0b 0p requeues 0 lended: 6668 borrowed: 1681 giants: 0 tokens: 154406 ctokens: 69453 class htb 1:50 parent 1:5 leaf 50: prio 7 rate 687000bit ceil 2750Kbit burst 1599b cburst 1599b Sent 36803917 bytes 25167 pkt (dropped 0, overlimits 0 requeues 0) rate 1597Kbit 136pps backlog 0b 0p requeues 0 lended: 9545 borrowed: 15622 giants: 0 tokens: -90655 ctokens: 6187 class htb 1:5 parent 1:2 rate 2612Kbit ceil 2750Kbit burst 1599b cburst 1599b Sent 44164808 bytes 34838 pkt (dropped 0, overlimits 0 requeues 0) rate 1656Kbit 144pps backlog 0b 0p requeues 0 lended: 15746 borrowed: 1566 giants: 0 tokens: 6516 ctokens: 6187 class htb 1:90 parent 1:2 leaf 90: prio 7 rate 137000bit ceil 2750Kbit burst 1599b cburst 1599b Sent 16870700 bytes 14098 pkt (dropped 40, overlimits 0 requeues 0) rate 1028Kbit 102pps backlog 0b 33p requeues 0 lended: 2261 borrowed: 11804 giants: 0 tokens: -770432 ctokens: 8313 class sfq 90:74 parent 90: (dropped 0, overlimits 0 requeues 0) backlog 0b 33p requeues 0 allot 1498 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Dark_Angel Опубликовано 17 марта, 2011 · Жалоба Что-то я не понимаю: 1. Почему у класса 1:90 prio 7? 2. Почему у класса 1:5 прио вообще нет? Далее анализ: Судя по статистике в корзине у 1:5 токены есть, а дропов нет. Если в этом классе работает TCP, то наверняка он пожал размер окна, как только пинг вырос. Попробуйте качать в 2-3 потока, либо грузить по UDP. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
cac2s Опубликовано 17 марта, 2011 · Жалоба Что-то я не понимаю:1. Почему у класса 1:90 prio 7? 2. Почему у класса 1:5 прио вообще нет? тоже обратил внимание,когда выложил вывод. причем prio 7 не только у 1:90... но ведь в скрипте prio прописаны! всё! остатки мозга закипаютДалее анализ: Судя по статистике в корзине у 1:5 токены есть, а дропов нет. Если в этом классе работает TCP, то наверняка он пожал размер окна, как только пинг вырос. Попробуйте качать в 2-3 потока, либо грузить по UDP. с запущенным торрентом на одной машине и тремя закачками с http на другой: # tc -s class show dev eth0 class htb 1:10 parent 1:5 leaf 10: prio 7 rate 137000bit ceil 2750Kbit burst 1599b cburst 1599b Sent 387 bytes 3 pkt (dropped 0, overlimits 0 requeues 0) rate 24bit 0pps backlog 0b 0p requeues 0 lended: 3 borrowed: 0 giants: 0 tokens: 1335765 ctokens: 66547 class htb 1:1 root leaf 8011: prio 7 rate 1000Mbit ceil 1000Mbit burst 1375b cburst 1375b Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) rate 0bit 0pps backlog 0b 0p requeues 0 lended: 0 borrowed: 0 giants: 0 tokens: 187 ctokens: 187 class htb 1:2 root rate 2750Kbit ceil 2750Kbit burst 1599b cburst 1599b Sent 14223498 bytes 11566 pkt (dropped 0, overlimits 0 requeues 0) rate 2562Kbit 262pps backlog 0b 0p requeues 0 lended: 10865 borrowed: 0 giants: 0 tokens: -68428 ctokens: -68428 class htb 1:20 parent 1:5 leaf 20: prio 7 rate 275000bit ceil 2750Kbit burst 1599b cburst 1599b Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) rate 0bit 0pps backlog 0b 0p requeues 0 lended: 0 borrowed: 0 giants: 0 tokens: 727265 ctokens: 72718 class htb 1:30 parent 1:5 leaf 30: prio 7 rate 275000bit ceil 2750Kbit burst 1599b cburst 1599b Sent 8016 bytes 48 pkt (dropped 0, overlimits 0 requeues 0) rate 864bit 1pps backlog 0b 0p requeues 0 lended: 48 borrowed: 0 giants: 0 tokens: 643640 ctokens: 64359 class htb 1:40 parent 1:5 leaf 40: prio 7 rate 1237Kbit ceil 2750Kbit burst 1599b cburst 1599b Sent 37945 bytes 74 pkt (dropped 0, overlimits 0 requeues 0) rate 2912bit 2pps backlog 0b 0p requeues 0 lended: 66 borrowed: 4 giants: 0 tokens: 144453 ctokens: 67064 class htb 1:50 parent 1:5 leaf 50: prio 7 rate 687000bit ceil 2750Kbit burst 1599b cburst 1599b Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) rate 0bit 0pps backlog 0b 0p requeues 0 lended: 0 borrowed: 0 giants: 0 tokens: 291109 ctokens: 72718 class htb 1:5 parent 1:2 rate 2612Kbit ceil 2750Kbit burst 1599b cburst 1599b Sent 46348 bytes 125 pkt (dropped 0, overlimits 0 requeues 0) rate 3800bit 3pps backlog 0b 0p requeues 0 lended: 4 borrowed: 0 giants: 0 tokens: 67766 ctokens: 64359 class htb 1:90 parent 1:2 leaf 90: prio 7 rate 137000bit ceil 2750Kbit burst 1599b cburst 1599b Sent 14196562 bytes 11457 pkt (dropped 0, overlimits 0 requeues 0) rate 2542Kbit 258pps backlog 0b 16p requeues 0 lended: 576 borrowed: 10865 giants: 0 tokens: -449479 ctokens: 4000 class sfq 90:101 parent 90: (dropped 0, overlimits 0 requeues 0) backlog 0b 16p requeues 0 allot 1432 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
NiTr0 Опубликовано 17 марта, 2011 · Жалоба burst неплохо бы увеличить ИМХО. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
cac2s Опубликовано 17 марта, 2011 (изменено) · Жалоба burst неплохо бы увеличить ИМХО. пробовал. не помогло. возможно не там пробовал, но сейчас очень сильно заело откуда для основной массы классов берётся prio 7, а для некоторых вообще его нет?! что-то подсказывает, что от сюда и растут ноги... Изменено 17 марта, 2011 пользователем cac2s Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Dark_Angel Опубликовано 17 марта, 2011 (изменено) · Жалоба Бурсты автоматом - ок. Крутить их надо для спецеффектов пользователям. На сколько я понимаю, сейчас проблема не в них, поэтому лучше оставить как есть. Судя по тому , что я вижу 1:90 назанимал токенов у родителя, что нормально, а класс 1:40, который, как я понимаю, должен менеджить закачки с http ничего и не пытается сделать. Вы размер окна посмотрите для закачек. Если вы начали качать после того, как торрент выжрал свой класс, то TCP не разгонится. Хотя, я думаю, что торрент вынесет TCP при таком балансинге. Начнет увеличиваться джиттер и TCP на закачках начнет сдуваться, а торрент пиров добавит. Лучше для упрощения ситуации проверьте на предсказуемых передачах, тем более для вашей скорости можно спокойно сделать и в одном и в другом классе просто http закачки. UPD. Я вам сразу секрет открою: если вы всё это затеяли, чтобы пользователи с торрентами, могли не выключая торренты сайтики открывать, то вам надо торренту давать 80-90% полосы максмум, чтобы второму классу хоть что-то оставалось, чтоб начать выдавливать торрент. Но тогда нучнуться возмущения, "где мои 2 Мбита", "почему я могу качать только на 1.5". А если делать с полным перекрытием, как у Вас, да еще и на таком канале, то оно работать не будет, особенно где торрент UDP. Он просто тупо всё вынесет. Работать это будет только при одинаково агресивных потоках, либо, когда высокоприоритетный трафик в агресивном потоке ( он правда тогда и сам всё сделает ). Изменено 17 марта, 2011 пользователем Dark_Angel Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
cac2s Опубликовано 17 марта, 2011 (изменено) · Жалоба Судя по тому , что я вижу 1:90 назанимал токенов у родителя, что нормально, а класс 1:40, который, как я понимаю, должен менеджить закачки с http ничего и не пытается сделать.закачки после 512К закаченного сползают в 1:50 (см. вторую часть скрипта, где классифицируются пакеты). сделано, чтобы http-закачки не мешали сёрфить. Лучше для упрощения ситуации проверьте на предсказуемых передачах, тем более для вашей скорости можно спокойно сделать и в одном и в другом классе просто http закачки.cделал. ( .0.100 - мой ip) $IPT -t mangle -A SHAPER-IN -d 192.168.0.100 -p tcp -m multiport --sports 80,8080,443,20,21 -j CLASSIFY --set-class 1:90 $IPT -t mangle -A SHAPER-IN -d 192.168.0.100 -p tcp -m multiport --sports 80,8080,443,20,21 -j RETURN т.е. теперь все пакеты, идущие на мой ноут ложаться в 1:90. поставил у себя одну закачку (1 поток) поставил 1 закачку (1 поток) на другом компьютере - пакеты ложаться в 1:40, а после 512KB в счетчике соединения - в 1:50. в общем, в любом случае на чужом компьютере качаться должно быстрее, НО на шлюзе iftop показывает одинаковое потребление ширины. почти уверен, что дело в тех долбаных prio 7 из выхлопа tc -s class show dev eth0 Изменено 17 марта, 2011 пользователем cac2s Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
cac2s Опубликовано 17 марта, 2011 (изменено) · Жалоба UPD. Я вам сразу секрет открою: если вы всё это затеяли, чтобы пользователи с торрентами, могли не выключая торренты сайтики открывать, то вам надо торренту давать 80-90% полосы максмум, чтобы второму классу хоть что-то оставалось, чтоб начать выдавливать торрент.я в курсе :) просто как ни пробовал крутить (в т.ч. и уменьшением ceil у 1:90 до 75%) - результата не было, поэтому многое вернул в первоначальный вид.но все равно спасибо :) Вы подтвердили необходимость такого хода. подправлю... Изменено 17 марта, 2011 пользователем cac2s Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
photon Опубликовано 17 марта, 2011 · Жалоба Если пользователи сами научатся регулировать скорость в своем торрент-клиенте, будет еще лучше. burst лучше действительно не трогать, надо поставить quantum, так чтобы он был не меньше MTU. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Dark_Angel Опубликовано 18 марта, 2011 (изменено) · Жалоба 2cac2s: У вас какая-то мутная схема с определением трафика в другой класс после 512КB. Уберите его пока, чтобы было легче понять как классифицируется трафик. С prio надо однозначно разобраться, т.к. он однозначно влияет на распределение токенов. На практике, если есть 2 закачки, они относятся к разным классам, классы организованы как у вас ( то есть есть высокий приоритет и низкий, rate, ceil правильно ), то всё работает как надо. По крайней мере работало когда я проверял. Даже с перекритием ceil на 100%. 2photon: Если пользователи научаться регулировать скорость сами, то хуже от введеной схемы не будет. Звонят в ТП же те, кто как раз скорость регулировать не умеет, потому что "интернет не работает", так что ТС всё правильно хочет, другой вопрос, что против торрента нет приема - он самый агресивный поток. Как вариант, можно давать клиенту полосу шире, чем пакет. Скажем у него 2Мбита, вы даете 2+1. Скажем 2 отдаете на торрент, а 2 отдаете на веб, при этом 1 Мбит будет гуляющим то в один, то в другой класс. Одновременно занять 3 Мбита пользователь не сможет, потому что торрент. Но для того чтобы так поступить надо всёравно разобраться с проблемой выше. Изменено 18 марта, 2011 пользователем Dark_Angel Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
cac2s Опубликовано 18 марта, 2011 (изменено) · Жалоба 2cac2s: У вас какая-то мутная схема с определением трафика в другой класс после 512КB. Уберите его пока, чтобы было легче понять как классифицируется трафик. С prio надо однозначно разобраться, т.к. он однозначно влияет на распределение токенов. На практике, если есть 2 закачки, они относятся к разным классам, классы организованы как у вас ( то есть есть высокий приоритет и низкий, rate, ceil правильно ), то всё работает как надо. По крайней мере работало когда я проверял. Даже с перекритием ceil на 100%. так, решил бороться с проблемами по порядку, поэтому на повестке дня - проблема с prio. скопировал скрипт себе на ноут (чтобы разобраться с prio, а на боевом сервере буду отлаживать) и упростил скрипт практически до нЕльзя + поменял prio (проблема с семёрками заключалась в том, чта на prio выделен только один бит со всеми вытекающими): #!/bin/bash IPT="/sbin/iptables" TC="/sbin/tc" IP="/bin/ip" DEV_IN="eth0" RATE_IN="2750" RATE_LOCAL="1gbit" IP_LOCAL="192.168.0.100" $TC qdisc del dev $DEV_IN root $IP link set dev $DEV_IN qlen 32 $TC qdisc add dev $DEV_IN root handle 1: htb r2q 3 # Главный класс $TC class add dev $DEV_IN parent 1: classid 1:1 htb rate $RATE_LOCAL # Транзитный трафик $TC class add dev $DEV_IN parent 1:1 classid 1:2 htb rate ${RATE_IN}kbit prio 0 # high-prio $TC class add dev $DEV_IN parent 1:2 classid 1:5 htb rate $[95*$RATE_IN/100]kbit ceil ${RATE_IN}kbit prio 0 # low-prio $TC class add dev $DEV_IN parent 1:2 classid 1:90 htb rate $[5*$RATE_IN/100]kbit ceil $[75*$RATE_IN/100]kbit prio 1 # Нетранзитный трафик $TC class add dev $DEV_IN parent 1:1 classid 1:99 htb rate $RATE_LOCAL quantum 60000 prio 1 ситуация изменилась, но все же есть косяки. вывод tc -d class show dev eth0 (упорядочил для более удобного сравнения с добавлением классов в скрипте): class htb 1:1 root rate 1000Mbit ceil 1000Mbit burst 1375b/8 mpu 0b overhead 0b cburst 1375b/8 mpu 0b overhead 0b level 7 class htb 1:2 parent 1:1 rate 2750Kbit ceil 2750Kbit burst 1599b/8 mpu 0b overhead 0b cburst 1599b/8 mpu 0b overhead 0b level 6 class htb 1:5 parent 1:2 prio 0 quantum 108833 rate 2612Kbit ceil 2750Kbit burst 1599b/8 mpu 0b overhead 0b cburst 1599b/8 mpu 0b overhead 0b level 0 class htb 1:90 parent 1:2 prio 1 quantum 5708 rate 137000bit ceil 2062Kbit burst 1599b/8 mpu 0b overhead 0b cburst 1599b/8 mpu 0b overhead 0b level 0 class htb 1:99 parent 1:1 prio 1 quantum 60000 rate 1000Mbit ceil 1000Mbit burst 1375b/8 mpu 0b overhead 0b cburst 1375b/8 mpu 0b overhead 0b level 0 приоритеты стали нормальными, НО у 1:2 prio нет! (пробовал менять prio на 1,2,...) - ситуация не поменялась. почему так? Изменено 19 марта, 2011 пользователем cac2s Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Dark_Angel Опубликовано 18 марта, 2011 · Жалоба Если явных ошибок команда не выводит ни сюда, ни в dmesg, то надо гуглить. Приоритет должен быть. Попробуйте как вариант вручить квантум для 1:2 тоже. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
cac2s Опубликовано 18 марта, 2011 (изменено) · Жалоба Если явных ошибок команда не выводит ни сюда, ни в dmesg, то надо гуглить. Приоритет должен быть. Попробуйте как вариант вручить квантум для 1:2 тоже.выставил - ничего не поменялось :( #!/bin/bash IPT="/sbin/iptables" TC="/sbin/tc" IP="/bin/ip" DEV_IN="eth0" RATE_IN="2750" RATE_LOCAL="1gbit" IP_LOCAL="192.168.0.100" $TC qdisc del dev $DEV_IN root $IP link set dev $DEV_IN qlen 32 $TC qdisc add dev $DEV_IN root handle 1: htb r2q 3 # Транзитный трафик $TC class add dev $DEV_IN parent 1: classid 1:2 htb rate ${RATE_IN}kbit quantum 60000 prio 0 # high-prio $TC class add dev $DEV_IN parent 1:2 classid 1:5 htb rate $[95*$RATE_IN/100]kbit ceil ${RATE_IN}kbit prio 0 # low-prio $TC class add dev $DEV_IN parent 1:2 classid 1:90 htb rate $[5*$RATE_IN/100]kbit ceil $[75*$RATE_IN/100]kbit prio 1 # Нетранзитный трафик $TC class add dev $DEV_IN parent 1: classid 1:99 htb rate $RATE_LOCAL quantum 60000 prio 1 выхлоп # tc -d class show dev eth0: class htb 1:99 root prio 1 quantum 60000 rate 1000Mbit ceil 1000Mbit burst 1375b/8 mpu 0b overhead 0b cburst 1375b/8 mpu 0b overhead 0b level 0 class htb 1:90 parent 1:2 prio 1 quantum 5708 rate 137000bit ceil 2062Kbit burst 1599b/8 mpu 0b overhead 0b cburst 1599b/8 mpu 0b overhead 0b level 0 class htb 1:2 root rate 2750Kbit ceil 2750Kbit burst 1599b/8 mpu 0b overhead 0b cburst 1599b/8 mpu 0b overhead 0b level 7 class htb 1:5 parent 1:2 prio 0 quantum 108833 rate 2612Kbit ceil 2750Kbit burst 1599b/8 mpu 0b overhead 0b cburst 1599b/8 mpu 0b overhead 0b level 0 мало того, в выхлопе у 1:2 нет явно прописанного quantum. баг? UPD: немного подправил и упростил (удалил классы 1:10-1:90) Изменено 19 марта, 2011 пользователем cac2s Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Dark_Angel Опубликовано 18 марта, 2011 · Жалоба Явно упускается какая-то мелочь. Попробуйте поменять номер класса. 1:90 же вон нормально создается, а он по конфигурации такой же. Попробуйте еще создавать классы по очереди, может после какого-то дочернего класса всё плывет. И запаситесь спиртным. Там не то что с поллитрой не разобраться, там миниум дня 3 пить надо. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
cac2s Опубликовано 18 марта, 2011 (изменено) · Жалоба Явно упускается какая-то мелочь. Попробуйте поменять номер класса. 1:90 же вон нормально создается, а он по конфигурации такой же. Попробуйте еще создавать классы по очереди, может после какого-то дочернего класса всё плывет. И запаситесь спиртным. Там не то что с поллитрой не разобраться, там миниум дня 3 пить надо. 1. в общем, отписал письмо автору HTB... бросив небольшой скрипт для примера. если ответит - отпишу2. на opennet.ru один человек натолкнул на правильную идею: выводить tc -d class show dev eth0 после каждого выполнения команды tc class add... скрипт: #!/bin/bash IPT="/sbin/iptables" TC="/sbin/tc" IP="/bin/ip" DEV_IN="eth0" RATE_IN="2750" $TC qdisc del dev $DEV_IN root $IP link set dev $DEV_IN qlen 32 $TC qdisc add dev $DEV_IN root handle 1: htb r2q 3 $TC class add dev $DEV_IN parent 1: classid 1:1 htb rate ${RATE_IN}kbit echo 1:1; $TC -d class show dev eth0; echo $TC class add dev $DEV_IN parent 1:1 classid 1:10 htb rate $[50*$RATE_IN/100]kbit ceil ${RATE_IN}kbit quantum 60000 prio 0 echo 1:10; $TC -d class show dev eth0; echo $TC class add dev $DEV_IN parent 1:10 classid 1:11 htb rate $[25*$RATE_IN/100]kbit ceil ${RATE_IN}kbit quantum 30000 prio 0 echo 1:11; $TC -d class show dev eth0; echo $TC class add dev $DEV_IN parent 1:10 classid 1:12 htb rate $[25*$RATE_IN/100]kbit ceil $[50*$RATE_IN/100]kbit quantum 30000 prio 1 echo 1:12; $TC -d class show dev eth0; echo $TC class add dev $DEV_IN parent 1:1 classid 1:20 htb rate $[50*$RATE_IN/100]kbit ceil ${RATE_IN}kbit quantum 25000 prio 1 echo 1:20; $TC -d class show dev eth0; echo $TC class add dev $DEV_IN parent 1:20 classid 1:21 htb rate $[25*$RATE_IN/100]kbit ceil ${RATE_IN}kbit quantum 25000 prio 0 echo 1:21; $TC -d class show dev eth0 выхлоп: 1:1 class htb 1:1 root prio 0 quantum 114583 rate 2750Kbit ceil 2750Kbit burst 1599b/8 mpu 0b overhead 0b cburst 1599b/8 mpu 0b overhead 0b level 0 1:10 class htb 1:10 parent 1:1 prio 0 quantum 60000 rate 1375Kbit ceil 2750Kbit burst 1599b/8 mpu 0b overhead 0b cburst 1599b/8 mpu 0b overhead 0b level 0 class htb 1:1 root rate 2750Kbit ceil 2750Kbit burst 1599b/8 mpu 0b overhead 0b cburst 1599b/8 mpu 0b overhead 0b level 7 1:11 class htb 1:11 parent 1:10 prio 0 quantum 30000 rate 687000bit ceil 2750Kbit burst 1599b/8 mpu 0b overhead 0b cburst 1599b/8 mpu 0b overhead 0b level 0 class htb 1:10 parent 1:1 rate 1375Kbit ceil 2750Kbit burst 1599b/8 mpu 0b overhead 0b cburst 1599b/8 mpu 0b overhead 0b level 6 class htb 1:1 root rate 2750Kbit ceil 2750Kbit burst 1599b/8 mpu 0b overhead 0b cburst 1599b/8 mpu 0b overhead 0b level 7 1:12 class htb 1:11 parent 1:10 prio 0 quantum 30000 rate 687000bit ceil 2750Kbit burst 1599b/8 mpu 0b overhead 0b cburst 1599b/8 mpu 0b overhead 0b level 0 class htb 1:1 root rate 2750Kbit ceil 2750Kbit burst 1599b/8 mpu 0b overhead 0b cburst 1599b/8 mpu 0b overhead 0b level 7 class htb 1:10 parent 1:1 rate 1375Kbit ceil 2750Kbit burst 1599b/8 mpu 0b overhead 0b cburst 1599b/8 mpu 0b overhead 0b level 6 class htb 1:12 parent 1:10 prio 1 quantum 30000 rate 687000bit ceil 1375Kbit burst 1599b/8 mpu 0b overhead 0b cburst 1599b/8 mpu 0b overhead 0b level 0 1:20 class htb 1:11 parent 1:10 prio 0 quantum 30000 rate 687000bit ceil 2750Kbit burst 1599b/8 mpu 0b overhead 0b cburst 1599b/8 mpu 0b overhead 0b level 0 class htb 1:1 root rate 2750Kbit ceil 2750Kbit burst 1599b/8 mpu 0b overhead 0b cburst 1599b/8 mpu 0b overhead 0b level 7 class htb 1:10 parent 1:1 rate 1375Kbit ceil 2750Kbit burst 1599b/8 mpu 0b overhead 0b cburst 1599b/8 mpu 0b overhead 0b level 6 class htb 1:20 parent 1:1 prio 1 quantum 25000 rate 1375Kbit ceil 2750Kbit burst 1599b/8 mpu 0b overhead 0b cburst 1599b/8 mpu 0b overhead 0b level 0 class htb 1:12 parent 1:10 prio 1 quantum 30000 rate 687000bit ceil 1375Kbit burst 1599b/8 mpu 0b overhead 0b cburst 1599b/8 mpu 0b overhead 0b level 0 1:21 class htb 1:11 parent 1:10 prio 0 quantum 30000 rate 687000bit ceil 2750Kbit burst 1599b/8 mpu 0b overhead 0b cburst 1599b/8 mpu 0b overhead 0b level 0 class htb 1:1 root rate 2750Kbit ceil 2750Kbit burst 1599b/8 mpu 0b overhead 0b cburst 1599b/8 mpu 0b overhead 0b level 7 class htb 1:10 parent 1:1 rate 1375Kbit ceil 2750Kbit burst 1599b/8 mpu 0b overhead 0b cburst 1599b/8 mpu 0b overhead 0b level 6 class htb 1:20 parent 1:1 rate 1375Kbit ceil 2750Kbit burst 1599b/8 mpu 0b overhead 0b cburst 1599b/8 mpu 0b overhead 0b level 6 class htb 1:21 parent 1:20 prio 0 quantum 25000 rate 687000bit ceil 2750Kbit burst 1599b/8 mpu 0b overhead 0b cburst 1599b/8 mpu 0b overhead 0b level 0 class htb 1:12 parent 1:10 prio 1 quantum 30000 rate 687000bit ceil 1375Kbit burst 1599b/8 mpu 0b overhead 0b cburst 1599b/8 mpu 0b overhead 0b level 0 имеет место закономерность: quantum и prio класса удаляются/пропадают_из_выхлопа при добавлении к этому классу дочернего класса вот такая вот петрушка... уж и не знаю: так_и_должно_быть/баг/что-то_упущенно... Изменено 19 марта, 2011 пользователем cac2s Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Dark_Angel Опубликовано 18 марта, 2011 · Жалоба Ну я Вам вообще-то тоже самое посоветовал намеками: "Попробуйте еще создавать классы по очереди, может после какого-то дочернего класса всё плывет". Но тут может быть, что это не баг, т.к. приоритет определяется лифами, и играет роль только для них - токены же они получают от родителя. Соответственно после класификации трафика, родитель либо даст, либо не даст токен для пакета, в зависимости от прио. Вы сказали, что после правок у вас всё изменилось, но всёравно не так как надо. А как стало? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
cac2s Опубликовано 18 марта, 2011 · Жалоба Ну я Вам вообще-то тоже самое посоветовал намеками: "Попробуйте еще создавать классы по очереди, может после какого-то дочернего класса всё плывет".да. точно. припоминаю. просто голова уже квадратная, поэтому неудивительно, что ни как не отреагировал на совет. прошу прощения :) Вы сказали, что после правок у вас всё изменилось, но всёравно не так как надо. А как стало? ситуация изменилась, но все же есть косяки. вывод tc -d class show dev eth0 (упорядочил для более удобного сравнения с добавлением классов в скрипте): class htb 1:1 root rate 1000Mbit ceil 1000Mbit burst 1375b/8 mpu 0b overhead 0b cburst 1375b/8 mpu 0b overhead 0b level 7 class htb 1:2 parent 1:1 rate 2750Kbit ceil 2750Kbit burst 1599b/8 mpu 0b overhead 0b cburst 1599b/8 mpu 0b overhead 0b level 6 class htb 1:5 parent 1:2 prio 0 quantum 108833 rate 2612Kbit ceil 2750Kbit burst 1599b/8 mpu 0b overhead 0b cburst 1599b/8 mpu 0b overhead 0b level 0 class htb 1:90 parent 1:2 prio 1 quantum 5708 rate 137000bit ceil 2062Kbit burst 1599b/8 mpu 0b overhead 0b cburst 1599b/8 mpu 0b overhead 0b level 0 class htb 1:99 parent 1:1 prio 1 quantum 60000 rate 1000Mbit ceil 1000Mbit burst 1375b/8 mpu 0b overhead 0b cburst 1375b/8 mpu 0b overhead 0b level 0 приоритеты стали нормальными, НО у 1:2 prio нет! (пробовал менять prio на 1,2,...) - ситуация не поменялась. почему так? это и имел ввиду. т.е. моя ошибка заключалась в использовании prio>7 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...