[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [SOLVED] Ограничение максимальной скорости по IP



В Птн, 01/02/2008 в 09:37 -0500, Nicholas пишет:
> Покотиленко Костик wrote:
> > Так сложнее получается. Чем мне не нравится править классы HTB, так это
> > постоянным пересчётом a1=a11+a12+a13... Конечно, понятно, что это один
> > раз надо сделать, но,
> 
> каждая команда делает 256 правил автоматом (`seq 1 254` - для примера )
> 
> for i in `seq 1 254`; do echo "tc class add dev eth0 parent 1:  classid 
> 1:$i htb rate 64kbps ceil 128kbps burst 150k" >> tc.conf; done;
> 
> >  опять же, придётся забить кучу классов, большая
> > часть из которых будет простаивать, а следовательно, придётся ещё думать
> > как не используемую ширину канала одалживать
> 
> это делает htb автоматом - вы можете указать каждому клиенту свою 
> минимальную и максимальную ширину, можно максимальную не указывать 
> (ceil) - htb разделит дополнительную скорость пропорционально.
> Если суммарная выделенная клиентам ширина канала, наоборот, больше 
> реальной - htb тоже все пересчитает пропорционально  (при нагрузке, а 
> пока клиентов мало всем даст столько сколько в правиле для клиента 
> прописанно).
> 
> Вы можете делать "деревья" - root сделать 1:, первую ветвь 1:888 для 
> обычных поьзователей и вторую для анлимит 1:777
> 
> http://www.opennet.ru/docs/RUS/LARTC/x1075.html#THEQDISCFAMILYROOTSHANDLESSIBLINGSANDPARENTS
>  
> 
> tc qdisc add dev eth0 root handle 1: htb default  1 
> 
> tc class add dev eth0 parent 1: classid 1:9999 htb rate 2mbit burst 15k 
> 
> tc class add dev eth0 parent 1:9999 classid 1:888 htb rate 1mbit ceil 
> 1mbit burst 15k
> tc class add dev eth0 parent 1:9999 classid 1:777 htb rate 1mbit ceil 
> 1mbit burst 15k
> 
> 
> и определять общую скорость для всех пользователей группы + для каждого 
> пользователя в группе.
> 
> tc class add dev eth0 parent 1:777 classid 1:71 htb rate 128kbit ceil 
> 256kbit burst 15k
> ...
> tc class add dev eth0 parent 1:777 classid 1:7254 htb rate 128kbit ceil 
> 256kbit burst 15k и т.д.
> 
> в этом примере комада для создания правила будет тоже с семеркой перед 
> "номером хоста" (1-254)
> for i in `seq 1 254`; do echo "tc class add dev eth0 parent 1:777 
> classid 1:7$i htb rate 128kbps ceil 256kbps burst 150k" >> tc.conf; done;
> 
> надо сказать что 4 правила для каждого из 255 ip для двух подситей 
> (4*255*2=2040) совсем не "грузят" htb.
> 
> С уважением, Николай.
> 
> PS
> 
> rrd tool как раз и ведет статистику, а графики рисует по требованию.
> Основная идея - снимать статистику удобнее именно tc (htb) - наименее 
> затратный и наиболее точный способ (так как это не "грузит" процессор вы 
> можете ее снимать как угодно часто).
> 
> tc -s -d qdisc show dev eth0 

Принцип ясен, спасибо за пример!

-- 
Покотиленко Костик <casper@meteor.dp.ua>


Reply to: