Страница 1 из 1
Dummynet
Добавлено: 2009-08-11 16:36:39
ivan__
Прочитал статью
http://www.lissyara.su/?id=1967. Появился вопрос, анологична ли такая запись
Код: Выделить всё
pipe 1 config bw 10Mbit/s queue 60 gred 0.002/10/30/0.1
queue 1 config pipe 1 mask src-ip 0xffffffff queue 60 gred 0.002/10/30/0.1
с такой
Код: Выделить всё
pipe 1 config bw 10Mbit/s mask src-ip 0xffffffff queue 60 gred 0.002/10/30/0.1
И для чего одну очередь направляют в трубу?
Re: Dummynet
Добавлено: 2009-08-11 16:50:53
terminus
Не аналогично.
В первом примере создаются динамические очереди (для каждого IP отправителя своя), а потом все эти созданные очереди заводятся в одну 10 мбит трубу. Это дает возможность зарезать скорость на трубе в 10 мбит, и честно распределить трафик между очередями при конкуренции, так как у них одинаковый вес/приоритет.
Во втором примере для каждого IP отправителя будет создана труба в 10 мбит. Если у вас канал в интернет как раз и есть 10 мбит, то при таком разкладе никакого шейпинга не будет, а клиенты станут "драться" за пропускнею способность.
Re: Dummynet
Добавлено: 2009-08-11 16:59:06
ivan__
Спасибо, теперь понял.
А что означает первый параметр gred 0.002?
Re: Dummynet
Добавлено: 2009-08-11 17:20:08
terminus
http://forum.lissyara.su/viewtopic.php? ... 61&p=87941
http://www.icir.org/floyd/REDparameters.txt
При настройках gred присутсвует некоторый шаманизм. Параметры (w_q/min_th/max_th/max_p) 0.002/10/30/0.1 подбираются как:
0.002 - не трогать, он лучший
10 - "на глазок". это минимальный размер queue при котором еще не будет патерь пакетов
30 - выставляется как предыдуший*3: 10*3=30
0.1 - не трогать, он лучший
итоговый размер queue выставляется как max_th*2: 30*2=60
Фишка в том, что если выставить очень большой queue то будут сильные задержки на медленых каналах, а если слишком маленький то плохо будут обрабатываться краткосрочные всплески трафика...
Мне "на глазок" показалось, что queue=60 для 10 мбит вполне нормально, поэтому так пример составил.
Re: Dummynet
Добавлено: 2010-08-27 17:27:52
gonzo111
terminus пасиб за ссылку
1)
а чем отличается
Код: Выделить всё
${fwcmd} pipe 1 config bw 1970Kbit/s queue 60 gred 0.002/10/30/0.1
${fwcmd} queue 2 config pipe 1 weight 70 mask src-port 0xffff queue 60 gred 0.002/10/30/0.1
от
Код: Выделить всё
${fwcmd} pipe 1 config bw 1970Kbit/s queue 60 gred 0.002/10/30/0.1
${fwcmd} queue 3 config pipe 1 weight 70 mask src-port 0xffff
?
2)
Код: Выделить всё
00001: 1.970 Mbit/s 0 ms 64 sl. 0 queues (1 buckets)
GRED w_q 0.001999 min_th 16 max_th 32 max_p 0.099991
q00001: weight 90 pipe 1 50 sl. 32 queues (64 buckets) droptail
mask: 0x00 0x00000000/0x0000 -> 0x00000000/0xffff
BKT Prot ___Source IP/port____ ____Dest. IP/port____ Tot_pkt/bytes Pkt/Byte Drp
Pkt/Byte ? это что такое ?
нету тулзы видеть ipfw pipe list в динамике?
3)
buckets размер_хеш-таблицы
Задает размер хеш-таблицы, используемой для хранения различных очередей. Стандартное значение, 64, задается переменной sysctl(8) net.inet.ip.dummynet.hash_size, и может быть в диапазоне от 16 до 1024.
buckets для чего то используется?
Re: Dummynet
Добавлено: 2010-08-27 17:50:00
terminus
gonzo111 писал(а):
1)
а чем отличается
${fwcmd} pipe 1 config bw 1970Kbit/s queue 60 gred 0.002/10/30/0.1
${fwcmd} queue 2 config pipe 1 weight 70 mask src-port 0xffff queue 60 gred 0.002/10/30/0.1
от
${fwcmd} pipe 1 config bw 1970Kbit/s queue 60 gred 0.002/10/30/0.1
${fwcmd} queue 3 config pipe 1 weight 70 mask src-port 0xffff
red/gred это механизм управления очередью пакетов (буфером). он есть как у труб так и у очередей.
отличие в том, что во втором случае он будет с настройками по-умолчанию.
gonzo111 писал(а):
2)
00001: 1.970 Mbit/s 0 ms 64 sl. 0 queues (1 buckets)
GRED w_q 0.001999 min_th 16 max_th 32 max_p 0.099991
q00001: weight 90 pipe 1 50 sl. 32 queues (64 buckets) droptail
mask: 0x00 0x00000000/0x0000 -> 0x00000000/0xffff
BKT Prot ___Source IP/port____ ____Dest. IP/port____ Tot_pkt/bytes Pkt/Byte Drp
Pkt/Byte ? это что такое ?
нету тулзы видеть ipfw pipe list в динамике?
Код: Выделить всё
while true do
clear
ipfw pipe list
sleep 3
done
gonzo111 писал(а):
3)
buckets размер_хеш-таблицы
Задает размер хеш-таблицы, используемой для хранения различных очередей. Стандартное значение, 64, задается переменной sysctl(8) net.inet.ip.dummynet.hash_size, и может быть в диапазоне от 16 до 1024.
buckets для чего то используется?
шех-таблица используеься для быстрого поиска значения в списке. если очередей/труб очень много, то имеет смысл ее увеличить.
(
http://ru.wikipedia.org/wiki/Хеш-таблица
http://www.codenet.ru/progr/alg/sort_search/has.php )
Re: Dummynet
Добавлено: 2010-08-28 16:17:19
gonzo111
пасибо
1)
по первому вопросу
я так понимаю gred/red это алгоритм при перегрузки какой то из конкурирующей очереди отброса пакетов
у меня предположение что
Ведь внутри одной очереди согласно маске по ip (или по порту) идет распределение канала равными частями
${fwcmd} queue 2 config pipe 1 weight 70 mask src-port 0xffff queue 60 gred 0.002/10/30/0.1
может это как раз и задается что применять red/gred для клиентов внутри очереди?
2)
а задать что у этого клиента с меньшим приоритетом будет канал минимум 128 кбит/с из 2мбит/с никак нельзя?*
только приблизительно подсчитав пропорции weigt относительно остальных очередей что ли ?
Re: Dummynet
Добавлено: 2010-08-30 15:51:01
gonzo111
Код: Выделить всё
#!/bin/sh
while (true) do
clear
ipfw queue show 1
#ipfw pipe show 1
sleep 3
done
как юзать
что то не понял,
не пашет сортировка
Re: Dummynet
Добавлено: 2010-08-30 16:06:57
gonzo111
ipfw -t -d show 1-10
в динамике вах-вах