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

Максимальная скорость шейпера в зависимости от CONFIG_HZ linux 2.6

Как расчитать максимальную скорость, которую можно установить в шейпере в зависимости от CONFIG_HZ? И что будет происходить, если задать скорость больше?

Share this post


Link to post
Share on other sites

С HFSC разницы (за исключением точности квантования) быть не должно, поскольку HFSC использует сами временные интервалы для расчета пропускания. HTB/TBF сильно завязаны на таймеры (пополнение bucket'ов), и использует байтовые кванты, т.е. придется подбирать квант. С HTB в общем случае - квант*HZ - предел. Т.е. при кванте в 4000 байт и HZ=100 предел = 4000*100 = 400000 байт, или 3.2 Мбит. При HZ=1000 и кванте в 4000 - 32 Мбит, дальше надо повышать квант. Само собой, квант в HTB влияет на точность семплирования, скорости "ниже" кванта в пределах класса шейпировать HTB правильно не получится. Вообще для серверов, пропускающих трафик, чем выше HZ - тем лучше, ну и если есть возможность использовать tickless kernel - лучше используйте tickless, тогда таймеры будут динамическими.

Edited by Alex/AT

Share this post


Link to post
Share on other sites
CONFIG_NO_HZ=y

# CONFIG_HZ_100 is not set

CONFIG_HZ_250=y

# CONFIG_HZ_300 is not set

# CONFIG_HZ_1000 is not set

CONFIG_HZ=250

CONFIG_MACHZ_WDT=m

 

Это tickless или 250? Если tickless, то можно любую скорость в htb задавать?

Share this post


Link to post
Share on other sites

Это tickless.

В целом да - задавать можно любую, лишь бы у Вас для разных скоростей в пределах класса (включая субклассы) квант был одинаковый. Само собой, скорости семплируются только квантами, т.е. деление будет пропорционально кванту.

Не помню - использует HTB HZ где-то для внутренних целей, или нет. Лучше задайте 1000 для подстраховки. В случае tickless всё равно интервал таймера будет подбираться, исходя из текущей ситуации.

Edited by Alex/AT

Share this post


Link to post
Share on other sites

Ясно, спасибо. Пересобрать ядро в силу ряда обстотельств нет возможности. Покопаю исходники htb, не подскажите как обычно добывается значение hz(название функции) ?

Share this post


Link to post
Share on other sites

Собственно на значение CONFIG_HZ HTB не завязан, но обработка в HTB впрямую завязана на jiffies (счетчик от таймера с частотой CONFIG_HZ). См. htb_dequeue и htb_do_events.

Edited by Alex/AT

Share this post


Link to post
Share on other sites

Вообще говоря, самым правильным советом Вам будет перейти на HFSC. HTB не очень хорошо работает в tickless-условиях, даже при том, что packet scheduler в современных ядрах переведен на интервальные таймеры.

Всё равно HTB оперирует именно дискретными тиками, а не конкретными интервалами времени, т.е. реальные показатели процессинга будут варьироваться в зависимости от трафика / нагруженности системы.

Edited by Alex/AT

Share this post


Link to post
Share on other sites

А зачем вообще эти несчастные таймеры трогать? Увеличивайте квант, благо даже максимальное значение 65000 отлично работает для скоростей от 1м до 100м..

Share this post


Link to post
Share on other sites

htb вроде и само квант неплохо расчитывает разве не?

Share this post


Link to post
Share on other sites

С HFSC разницы (за исключением точности квантования) быть не должно, поскольку HFSC использует сами временные интервалы для расчета пропускания. HTB/TBF сильно завязаны на таймеры (пополнение bucket'ов), и использует байтовые кванты, т.е. придется подбирать квант. С HTB в общем случае - квант*HZ - предел. Т.е. при кванте в 4000 байт и HZ=100 предел = 4000*100 = 400000 байт, или 3.2 Мбит. При HZ=1000 и кванте в 4000 - 32 Мбит, дальше надо повышать квант. Само собой, квант в HTB влияет на точность семплирования, скорости "ниже" кванта в пределах класса шейпировать HTB правильно не получится. Вообще для серверов, пропускающих трафик, чем выше HZ - тем лучше, ну и если есть возможность использовать tickless kernel - лучше используйте tickless, тогда таймеры будут динамическими.

а не поделитесь примером HFSC? рабочим...

Спасибо.

Share this post


Link to post
Share on other sites

У меня скрипты для классов и HFSC строятся модулем SSG на BRAS, если будет время - вытащу дебаг для одного из абонентов, покажу.

 

Общее описание тут: http://linux-ip.net/articles/hfsc.en/

 

Если прочитать и понять, как оно работает - перейти с HTB на HFSC проблем не будет.

Классовая иерархия всё та же самая, отличие только в названии шейпера и способе задания параметров.

Edited by Alex/AT

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