Страница 1 из 1
HFSC
Добавлено: 2009-07-16 18:37:48
Михаил Гула
Разбираюсь с HFSC но не могу вкурить, как работают параметры bandwidth и linkshare. Понял только что это одно и тоже. Если указаны оба то используеться linkshare. Как эти параметры работают ??? Как сами по себе так и в комбинациях с realtime и upperlimit. С примерами и обьяснениями на пальцах. Спасибо.

Re: HFSC
Добавлено: 2009-07-16 19:19:18
paradox
на опеннете посмотрите статью
недвно появилась
Re: HFSC
Добавлено: 2009-07-16 20:07:37
Михаил Гула
paradox писал(а):на опеннете посмотрите статью
недвно появилась
Она не даёт ответа по вопрос
Re: HFSC
Добавлено: 2009-08-18 7:18:19
Михаил Гула
Так кто-нибудь разобрался на что влияет параметр bandwidth он же linkshare ??
Re: HFSC
Добавлено: 2009-08-18 8:01:56
mnz_
Михаил Гула писал(а):Так кто-нибудь разобрался на что влияет параметр bandwidth он же linkshare ??
Если дружите с английским, тут неплохо объясняется
https://calomel.org/pf_hfsc.html
Re: HFSC
Добавлено: 2009-08-19 0:00:13
Михаил Гула
Я эту статью перечитал 12 раз но так и не понял. Там про линкшару оооооооочень размыто написано.
Я по этому и прошу на пальцах и примере подробно своими словами.
Re: HFSC
Добавлено: 2009-08-19 0:00:52
Михаил Гула
Если вы из этой статьи догнали что такое линкшара, обьясните мне идиоту.
Re: HFSC
Добавлено: 2009-08-19 9:12:10
Niki
Код: Выделить всё
linkshare (m2)
........
The only reason you may want to use linkshare _instead of_ bandwidth is if you want to enable a nonlinear service curve.
Единственной причиной по которой вы можете захотеть использовать linkshare вместо bandwidh это если вы звхотели включить использование нелинейной "кривой" сервиса.
Код: Выделить всё
nonlinear service curve (NLSC or just SC)
....
The format for service curve specifications is (m1, d, m2). m2 controls the bandwidth assigned to the queue. m1 and d are optional and can be used to control the initial bandwidth assignment. For the first d milliseconds the queue gets the bandwidth given as m1, after wards the value given in m2.
Формат кривой сервиса указывается как (m1, d, m2). m2 контролирует ширину полосы пропускания закрепленной за очередью. м1 и д - опциональны для определения начальной полосы пропускания(видимо закрепленной за очередью). Для временного интервала равного d милисекунд очередь имеет ширину полосы пропускания определенную в параметре m1а по их истечению имеет полосу пропускания m2.
Это позволяет делать такие штуки: допустим веб страница весит 5 мегабайт (как в примере этой же статьи) текст грузится быстрее на скорости m1 а картинки и прочее уже на скорости m2, это позволит не сильно забивать канал при скачивании "прочего" обеспечивая тем самым более "свободный" канал для других хостов в сети.
PS:перевод вольный прошу не пинать :-)
Re: HFSC
Добавлено: 2009-08-21 5:39:48
Михаил Гула
Niki, вы наверно читать не умеете.
Вопрос задан конкретно про параметр "LINKSHARE" - нафиг он нужен и на что он влияет, а не про сервисную кривую.
Re: HFSC
Добавлено: 2009-08-21 22:50:56
mnz_home
Михаил Гула писал(а):Я по этому и прошу на пальцах и примере подробно своими словами.
Сейчас перешел на линукс, но попытаюсь вспомнить...

Сумма linkshare может превышать пропускную способность канала, сумма bandwidth - нет. То есть в примере
Код: Выделить всё
altq on rl0 bandwidth 256Mb hfsc queue {Q1,Q2,Q3}
queue Q1 hfsc (realtime 32Mb linkshare 50%)
queue Q2 hfsc (realtime 32Mb linkshare 50%)
queue Q3 hfsc (realtime 64Mb linkshare 100% default)
очередям гарантируется соответственно 32, 32, 64 мбит. Q1, Q2 будут пытаться заимствовать пропускную способность родительской очереди, но не более чем до 128 мбит. Q3 будет пытаться заимствовать пропускную способность до 256мбит (всю). Когда надо четко порезать по очередям (или нужен хорошо предсказумый результат) - нам нужен bandwidth (больше этого значения полоса "съесть" не может), когда полосу хотим попытаться распределять динамически - linkshare (аналог borrow в cbq).
Re: HFSC
Добавлено: 2009-08-24 16:00:22
Михаил Гула
mnz_home писал(а):Михаил Гула писал(а):Я по этому и прошу на пальцах и примере подробно своими словами.
Сейчас перешел на линукс, но попытаюсь вспомнить...

Сумма linkshare может превышать пропускную способность канала, сумма bandwidth - нет. То есть в примере
Код: Выделить всё
altq on rl0 bandwidth 256Mb hfsc queue {Q1,Q2,Q3}
queue Q1 hfsc (realtime 32Mb linkshare 50%)
queue Q2 hfsc (realtime 32Mb linkshare 50%)
queue Q3 hfsc (realtime 64Mb linkshare 100% default)
очередям гарантируется соответственно 32, 32, 64 мбит. Q1, Q2 будут пытаться заимствовать пропускную способность родительской очереди, но не более чем до 128 мбит. Q3 будет пытаться заимствовать пропускную способность до 256мбит (всю). Когда надо четко порезать по очередям (или нужен хорошо предсказумый результат) - нам нужен bandwidth (больше этого значения полоса "съесть" не может), когда полосу хотим попытаться распределять динамически - linkshare (аналог borrow в cbq).
Я хочу отметить, что какой бы не был bandwidth или linkshare он всегда заимствет больше чем написано и страмиться к максимально доступной цифре
прописаной в корне. В данном случае 256 мегабит, хотя линкшара указана на 128.
Re: HFSC
Добавлено: 2009-08-24 16:12:41
Михаил Гула
Плюс нужно добавить
что в очереди в обязательном порядке должен быть использхован параметр bandwidth
Те правила которые вы указали не рабоочие
При их запизивании пф говорит
pfctl: the sum of the child bandwidth higher than parent "root_em0"
Потому что если не указан параметр bandwidth он по умолчанию в очереди равен 100%
Ваша гипотеза не рабочая. Кто ещё ?
Re: HFSC
Добавлено: 2010-05-02 13:17:34
receptor
Какая ещё к чёрту гипотеза.
Вам предоставили обрывок документации к HFSC и всё работает так как документировано.
Пример из своего конфига
Код: Выделить всё
queue inet_out priority 1 bandwidth 1Mb hfsc(realtime 1Mb linkshare 50% upperlimit (10Mb 10000 1Mb) red)
queue prio_out priority 7 bandwidth 1Mb hfsc(realtime 1Mb linkshare 50% upperlimit 1Mb red)
параметр bandwidth должен всегда присутствовать, он определяет полосу, далее в скобках идёт описание как этот шедулёр будет работать.
realtime собственно гарантированная скорость
linkshare указывает сколько позволено брать или отдавать соседним очередям если есть свободная полоса
upperlimit предельная допустимая скорость если доступно, параметр может превышать скорость родительской очереди.