Jump to content
Калькуляторы

FreeBSD 6.4 net.inet.ip.dummynet.io_fast

Из релиз нотесов:

The dummynet(4) subsystem now supports fast mode operation which allows certain packets to bypass the dummynet scheduler. This can achieve lower latency and lower overhead when the packet flow is under the pipe bandwidth, and eliminate recursion in the subsystem. The new sysctl variable net.inet.ip.dummynet.io_fast has been added to enable this feature.

 

Как это работает кто-нить разбирался?

Share this post


Link to post
Share on other sites

А что не понятно-то? Идея в том, чтобы пакеты проходящие через dummynet могли fastforward'ится.

Share this post


Link to post
Share on other sites
А что не понятно-то? Идея в том, чтобы пакеты проходящие через dummynet могли fastforward'ится.
Как-то первая фраза более похожа на "Думминет теперь поддерживает режим быстрой обработки при которой определенные пакеты не задерживаютя для обработки думминетом".

Хотя мож мы об одном и том же говорим. Но меня интересует не риторика, а технические данные и реализация.

 

Типа при правилах

---

---

пакеты удовлетворяющие условиям ххх будут пролетать не задерживаясь. Конкретный пример, пожалуйста.

Share this post


Link to post
Share on other sites

when the packet flow is under the pipe bandwidth

 

Написано же. Если поток не доходит до потолка, механизм шейпирования вобще не применяется. Я так понял.

Share this post


Link to post
Share on other sites

Угу, похоже на правду. Ток тогда получается что фенька работает если "клиент" свой канал недогружает, что встречается редко, но игрокам самое то.

 

Share this post


Link to post
Share on other sites

У нас с четырьмя мегабитами частенько недогружают. Поработать бы сутки с нулевым значением и сутки с единичкой, сравнить статистику.

Share this post


Link to post
Share on other sites

кто то тестировал?

Share this post


Link to post
Share on other sites

net.inet.ip.dummynet.io_fast=0

57.03% dummynet

 

net.inet.ip.dummynet.io_fast=1

6.84% dummynet

Edited by 31337Ghost

Share this post


Link to post
Share on other sites

А с пингами как? У меня пинг растет при его включении в 2 раза гдето

 

Share this post


Link to post
Share on other sites

Поставь яндеховые дрова наконец. Уже ж в другой теме тебе писали.

У тебя на каждую сетевуху по одному ядру и они на 100% нагружены, а остальные ядра и до 50% недобирают.

Какие там еще пинги при перегруженом проце ??

Share this post


Link to post
Share on other sites
Поставь яндеховые дрова наконец. Уже ж в другой теме тебе писали.

У тебя на каждую сетевуху по одному ядру и они на 100% нагружены, а остальные ядра и до 50% недобирают.

Какие там еще пинги при перегруженом проце ??

А яндексовые дрова под 7.2|8.0 есть?

Share this post


Link to post
Share on other sites

Под 7.2 есть.

Share this post


Link to post
Share on other sites
иии? помогли дрова от яндекса?

Руки не дошли. Пока играю в поллинг. Вот ужо наиграюсь -- проверю. А что в этих дровах интересного кроме разброса ниточек по ядрам?

Share this post


Link to post
Share on other sites

У меня на 8.0-STABLE-201005 amd64 при:

net.inet.ip.dummynet.io_fast: 1

Счётчики показывают:

net.inet.ip.dummynet.io_pkt_drop: 106886552

net.inet.ip.dummynet.io_pkt_fast: 0

net.inet.ip.dummynet.io_pkt: 5210146253

Получается у меня вообще никто мимо шейпера не бегает ? Полосы от 1 Мбита и до 16 Мбит. Не думаю, что все полосы забиты до краёв. Параметр применяем ещё с 7.0, если не изменяет память, и никогда счётчик не был равен 0.

 

upd: на другом шейпере с FreeBSD 7.2-STABLE-200906 точно такая же петрушка :(

Share this post


Link to post
Share on other sites
upd: на другом шейпере с FreeBSD 7.2-STABLE-200906 точно такая же петрушка :(

 

FreeBSD 7.3-STABLE #0:

net.inet.ip.dummynet.io_pkt_drop: 14558307

net.inet.ip.dummynet.io_pkt_fast: 139517436

net.inet.ip.dummynet.io_pkt: 923458709

Share this post


Link to post
Share on other sites
upd: на другом шейпере с FreeBSD 7.2-STABLE-200906 точно такая же петрушка :(

 

FreeBSD 7.3-STABLE #0:

net.inet.ip.dummynet.io_pkt_drop: 14558307

net.inet.ip.dummynet.io_pkt_fast: 139517436

net.inet.ip.dummynet.io_pkt: 923458709

Хм... может мы где в правилах запутались :(

Если не сложно, киньте кусочек правил для одной трубы ?

Share this post


Link to post
Share on other sites

Если я правильно понял, то fast = ip_fastfwd - оно гонит пакеты прямиком в if_output, не заворачивая в netisr очередь и короче говоря много доп/лишней работы не делая, но пакеты не все могут идти через фаст, оно не работает для пакетов с опциями, броадкаста, мультикаста, пакетов от/к этому хосту.

Для все этих случаев пакеты уходят на ip_input, откуда после обработки уходит в netisr, который видимо вызывает ip_output и уже он отправляет в if_output.

 

 

net.inet.ip.dummynet.io_fast: 1
Полагаю кроме этого нужно в принципе включить фастфорвадинг:

net.inet.ip.fastforwarding: 1

Share this post


Link to post
Share on other sites

А почему бы тогда не сделать шейпер мостом, чтобы не было необходимости в маршрутизации?

Edited by photon

Share this post


Link to post
Share on other sites

А почему бы тогда не сделать шейпер мостом, чтобы не было необходимости в маршрутизации?

И как производительность в варианте с мостом??

Share this post


Link to post
Share on other sites

Должна быть выше, по идее, т.к. нет маршрутизации. Видел у знакомого мост-шейпер на 8-процессорной машине с FreeBSD, держит по 450 Мбит/с в обе стороны, пакетрейт около 100 kpps, загруженность процессоров менее 20%.

Edited by photon

Share this post


Link to post
Share on other sites

Должна быть выше, по идее, т.к. нет маршрутизации. Видел у знакомого мост-шейпер на 8-процессорной машине с FreeBSD, держит по 450 Мбит/с в обе стороны, пакетрейт около 100 kpps, загруженность процессоров менее 20%.

А правда, что аналог на линуксе меньше ресурсов требует (tc htb) ?

Share this post


Link to post
Share on other sites

А правда, что аналог на линуксе меньше ресурсов требует (tc htb) ?

Я бы так не сказал. При должном умении и правильном железе, везде можно добиться шейпинга на аппаратных скоростях. Однако, dummynet умеет решать лишь несколько определенных задач, в то время как QoS-подсистему в Linux можно настроить как угодно. Недостаток линуксового решения в том, что для него намного сложнее генерировать правила.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this