asid2006 Posted September 19, 2013 Posted September 19, 2013 Есть следующая конфигурация: Аплинк 25 мбит. ОС CentOS 6.4 Через сервер сидит 30 клиентов со скоростью от 1 до 10 мбит. Конфигурация шейпера: #!/bin/bash tc qdisc del dev eth1 root tc qdisc add dev eth1 root handle 1: htb default 100 tc class add dev eth1 parent 1: classid 1:1 htb rate 1024mbit burst 15k tc class add dev eth1 parent 1:1 classid 1:10 htb rate 1mbit ceil 1024mbit burst 15k #tc class add dev eth1 parent 1:1 classid 1:20 htb rate 41943040 burst 15k tc class add dev eth1 parent 1:1 classid 1:20 htb rate 26214400 burst 15k tc qdisc add dev eth1 parent 1:10 handle 10: sfq perturb 10 tc qdisc add dev eth1 parent 1:20 handle 20: sfq perturb 10 tc filter add dev eth1 protocol ip parent 1: prio 3 u32 match ip src 10.0.0.1 flowid 1:10 tc filter add dev eth1 protocol ip parent 1: prio 3 u32 match ip dst 10.0.0.1 flowid 1:10 tc class add dev eth1 parent 1:20 classid 1:100 htb rate 1mbit ceil 2621440 burst 15k dir=/usr/scripts/billing/tc-rules/tc-rules /usr/scripts/billing/tc-rules/10.0.10.10.sh /usr/scripts/billing/tc-rules/10.0.10.2.sh /usr/scripts/billing/tc-rules/10.0.11.43.sh /usr/scripts/billing/tc-rules/10.0.15.2.sh ... В файлах конфигурация для клиентов: tc class add dev eth1 parent 1:20 classid 1:101 htb rate 1kbit ceil 15360000 burst 15k tc qdisc add dev eth1 parent 1:101 handle 10: sfq perturb 10 tc class add dev eth1 parent 1:101 classid 1:102 htb rate 1kbit ceil 15360000 prio 1 tc class add dev eth1 parent 1:101 classid 1:103 htb rate 1kbit ceil 15360000 prio 2 tc class add dev eth1 parent 1:101 classid 1:104 htb rate 1kbit ceil 15360000 prio 3 tc filter add dev eth1 parent 1:0 protocol ip prio 1 u32 match ip dst 10.0.10.2/32 match ip protocol 1 0xff flowid 1:102 tc filter add dev eth1 parent 1:0 protocol ip prio 3 u32 match ip dst 10.0.10.2/32 match ip sport 53 0xffff flowid 1:102 tc filter add dev eth1 parent 1:0 protocol ip prio 3 u32 match ip dst 10.0.10.2/32 match ip sport 5190 0xffff flowid 1:102 tc filter add dev eth1 parent 1:0 protocol ip prio 3 u32 match ip dst 10.0.10.2/32 match ip sport 5222 0xffff flowid 1:102 tc filter add dev eth1 parent 1:0 protocol ip prio 3 u32 match ip dst 10.0.10.2/32 match ip sport 5433 0xffff flowid 1:102 tc filter add dev eth1 parent 1:0 protocol ip prio 3 u32 match ip dst 10.0.10.2/32 match ip sport 28723 0xffff flowid 1:102 tc filter add dev eth1 parent 1:0 protocol ip prio 3 u32 match ip dst 10.0.10.2/32 match ip sport 80 0xffff flowid 1:103 tc filter add dev eth1 parent 1:0 protocol ip prio 3 u32 match ip dst 10.0.10.2/32 match ip sport 443 0xffff flowid 1:103 tc filter add dev eth1 parent 1:0 protocol ip prio 4 u32 match ip dst 10.0.10.2/32 flowid 1:104 С такой конфигурацией при полной загрузке канала скорость распределяется не равномерно. Подскажите, возможно ли настроить систему так, чтобы скорость отдавалась равномерно, т.е. снижалась на одинаковый процент у всех пользователей, либо отдавалась клиентам с равной скоростью. Вставить ник Quote
photon Posted October 11, 2013 Posted October 11, 2013 (edited) Раньше для fair queuing по IP люди пользовались патчем ESFQ, но его так и не взяли в ядро. Сейчас там появилась дисциплина drr, которая в связке с фильтром flow может делать то же самое, что и ESFQ. См. man tc-drr и исходники. Другой документации нет. В dummynet из FreeBSD fair queuing по IP тоже реализован (ipfw queue X config mask FLOW_MASK). Там правила намного проще. Edited October 11, 2013 by photon Вставить ник Quote
sirmax Posted October 11, 2013 Posted October 11, 2013 Раньше для fair queuing по IP люди пользовались патчем ESFQ, но его так и не взяли в ядро. Сейчас там появилась дисциплина drr, которая в связке с фильтром flow может делать то же самое, что и ESFQ. См. man tc-drr и исходники. Другой документации нет. В dummynet из FreeBSD fair queuing по IP тоже реализован (ipfw queue X config mask FLOW_MASK). Там правила намного проще. esfq для новых ядер нет ? Вставить ник Quote
photon Posted October 12, 2013 Posted October 12, 2013 (edited) Вроде нет. На http://fatooh.org/esfq-2.6/ последнее обновление сделано для 2.6.24. Есть ссылка на cls_flow. С другой стороны, при большом желании такой патч можно сделать и самому, в сетевой подсистеме со времен Кузнецова мало что менялось. Edited October 12, 2013 by photon Вставить ник Quote
telecom Posted October 12, 2013 Posted October 12, 2013 после NiTr0 и мы выпилили esfq из своего ядра. До этого поддерживали патч в актуальном состоянии. Если сильно надо, посмотрю для какого ядра есть последняя версия. Вставить ник Quote
nuclearcat Posted October 14, 2013 Posted October 14, 2013 Кроме DRR уже появились такие вкусности как QFQ и fq_codel. Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.