VASIA! Опубликовано 10 января, 2008 (изменено) · Жалоба Доброго времени суток, вот потребовалось ограничить скорость скачи по ftp. Тк сам я linux тока осваиваю, а роутер сделан именно на нем, то экспирименты ставить не хочется вот и обращаюсь к вам за консультацией. Вообщем задача такая ограничить скорость скачки по ftp в обе стороны. Входящий трафик на скорости 6 мбит исходящий на скорости 4 мбита. Общая пропускная способность канала 10 мбит. Для классификации выбрал дисциплину Hierarchical Token Bucket (НТВ). вот что я набрасал конфигурацию, посмотрите и подправте где что неверно... Конфиг привел для ограничения только входящего трафика, то же самое планируется сделать и на другом интерфейсе для исходящего... # tc qdisc add dev eth1 root handle 1: htb default 20 # tc class add dev eth1 parent 1: classid 1:1 htb rate 10mbit burst 15k # tc class add dev eth1 parent 1:1 classid 1:10 htb rate 10mbit burst 15k # tc class add dev eth1 parent 1:1 classid 1:20 htb rate 6mbit ceil 10mbit burst 15k Автор рекомендует устанавливать дисциплину SFQ для этих классов: # 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 Добавим фильтры, которые будут выполнять классификацию трафика: # U32="tc filter add dev eth1 protocol ip parent 1:0 prio 1 u32" # $U32 match ip sport 20 0xffff flowid 1:20 Вопросы по поводу кончига сразу же( пример рбал из статьи Linux Advanced Routing & Traffic Control HOWTO): 1) Раз я работаю с HTB зачем автор статьи рекомендует ставить SFQ ? 2) Как сильно будет сказываться классификация трафика на загрузке процессора(машина слабая стоит) И может имеет смысл просто без классификации трафик по этому порту резать.. Изменено 12 января, 2008 пользователем VASIA! Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
nuclearcat Опубликовано 10 января, 2008 · Жалоба 1)SFQ(как и FIFO) это qdisc, они применяются когда траффик превышает установленный в классе (HTB) лимит. 2)Все зависит от кучи деталей. Насколько слабая машина стоит? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
VASIA! Опубликовано 10 января, 2008 · Жалоба Скажем так слабая очень, но енто временно и ограничение сокрости временно, но необходимо. Воббщем целерон 566, 128 оперативы... Да, по первому пункту можно поподробнее. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
puh Опубликовано 10 января, 2008 · Жалоба ограничить средствами самого ftp сервера не получается? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
nuclearcat Опубликовано 10 января, 2008 · Жалоба По первому пункту. Скажем указали вы 10Мбит... и полоса превышена. Все что превысило 10Мбит будет складываться в qdisc. A)Если qdisc - FIFO - и скажем указано bfifo limit 100000 (буфер 100 Кбайт) то по возможности байты будут отдаваться со скоростью не превышающей 10Мбит в том же порядке как и пришли. Если количество сбуферизованых данных превысит буфер - пакеты будут дропаться (это нестрашно, просто заставить TCP снизить скорость). 2)Если qdisc SFQ - то при превышении 10Мбит - 128 пакетов будут складываться в буфер, но SFQ будет отдавать их не в том порядке как они пришли, а пытаться распределять равномерно между "потоками". Т.е. если скажем качает юзер 1 и юзер 2, он попытается раздавать равномерно данные между обоими и не давать одному из них захватить полосу. Это в теории, но в практике лучше присмотреться к ESFQ, который эту задачу выполняет лучше. Целерон 566 с горкой хватит для ваших 10Мбит. Если конечно на него еще куча задач не навешана. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
VASIA! Опубликовано 10 января, 2008 · Жалоба ограничить средствами самого ftp сервера не получается? входящий то трафик с фтп какием образом)) фтп то разные и хозяева у них разные, а ограничить скорость надо мне)) По первому пункту. Скажем указали вы 10Мбит... и полоса превышена. Все что превысило 10Мбит будет складываться в qdisc.A)Если qdisc - FIFO - и скажем указано bfifo limit 100000 (буфер 100 Кбайт) то по возможности байты будут отдаваться со скоростью не превышающей 10Мбит в том же порядке как и пришли. Если количество сбуферизованых данных превысит буфер - пакеты будут дропаться (это нестрашно, просто заставить TCP снизить скорость). 2)Если qdisc SFQ - то при превышении 10Мбит - 128 пакетов будут складываться в буфер, но SFQ будет отдавать их не в том порядке как они пришли, а пытаться распределять равномерно между "потоками". Т.е. если скажем качает юзер 1 и юзер 2, он попытается раздавать равномерно данные между обоими и не давать одному из них захватить полосу. Это в теории, но в практике лучше присмотреться к ESFQ, который эту задачу выполняет лучше. Целерон 566 с горкой хватит для ваших 10Мбит. Если конечно на него еще куча задач не навешана. СПС за ответ, значит буду читать еще про ESFQ. Только мне так никто ничего и не сказал,верно ли описал конфиг, все ли верно.... Да, а в случае с ESFQ как конфиг будет выглядить,если не сложно опишите или сцылку на енто дело... Насчет целерона...на нем еще подсчет трафика и доступ в интернет по VPN вообщем при скорости 10 мбит, если по полной прокачивать то он тупо виснет,даже удаленно на него зайти не могу, VPN отваливается и пинг подскакивает..вообщем не хватает мозгов, не может протерминировать, надо менять машину... Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
nuclearcat Опубликовано 11 января, 2008 · Жалоба если виснет - это возможно не связано с перегрузкой, а баг дров какие сетевухи стоят? какое ядро (версия)? в порядке ли вентилятор? покажите cat /proc/interrupts (прерывания) ESFQ например выглядит так tc qdisc add dev ${DEV} parent 1:270 handle 270: esfq perturb 30 depth 65536 divisor 14 limit 256 hash ctorigdst Но его надо уметь собирать, не очень тривиальная задача Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
VASIA! Опубликовано 11 января, 2008 · Жалоба Какое-то время года пол назад обнаружил что вентилятор не работал, сколько не работал не известно,но вообщем уже заменен и вроде фунциклирует -сетевухи акорп на чипсете Realtek RTL8139 -версия ядра 2.4.32 -interrupts : CPU0 0: 319664957 XT-PIC timer 1: 2 XT-PIC keyboard 2: 0 XT-PIC cascade 8: 1 XT-PIC rtc 9: 267317588 XT-PIC acpi etho0 11: 0 XT-PIC usb-uchi 12: 307848885 XT-PIC eth1 14: 3949946 XT-PIC ide0 NMI: 0 LOC: 0 ERR: 0 MIS: 0 Вот.... Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
nuclearcat Опубликовано 11 января, 2008 · Жалоба Ядро старовато для начала. 9 прерывание делится с acpi, это нехорошо. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
VASIA! Опубликовано 11 января, 2008 · Жалоба да...старый дистр стоит...я и говорю что скоро усе будет меняться, но пока что есть, то есть.... а что значит 9 прерываний acpi енто что значит?! да..насчет конфига ктонить выскажитесь,все верно описанно под мою задачу....да..и где потом можно будет эти правила редпктировать,если мне понадобится что либо изменить.. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
VASIA! Опубликовано 12 января, 2008 · Жалоба Граждане..почему-то не работает шейпинг....вводил все как написано в конфиге а ограничения не срабатывали,в чем причина,может кто что подскажет.. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
VASIA! Опубликовано 12 января, 2008 · Жалоба Все,с шейпингм разобрался..спасибо всем за ответы... в моем случае команда ceil была лишняя... Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...