srg555 Posted March 25, 2012 Posted March 25, 2012 Как расчитать максимальную скорость, которую можно установить в шейпере в зависимости от CONFIG_HZ? И что будет происходить, если задать скорость больше? Вставить ник Quote
Alex/AT Posted March 25, 2012 Posted March 25, 2012 (edited) С 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 March 25, 2012 by Alex/AT Вставить ник Quote
srg555 Posted March 25, 2012 Author Posted March 25, 2012 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 задавать? Вставить ник Quote
Alex/AT Posted March 25, 2012 Posted March 25, 2012 (edited) Это tickless. В целом да - задавать можно любую, лишь бы у Вас для разных скоростей в пределах класса (включая субклассы) квант был одинаковый. Само собой, скорости семплируются только квантами, т.е. деление будет пропорционально кванту. Не помню - использует HTB HZ где-то для внутренних целей, или нет. Лучше задайте 1000 для подстраховки. В случае tickless всё равно интервал таймера будет подбираться, исходя из текущей ситуации. Edited March 25, 2012 by Alex/AT Вставить ник Quote
srg555 Posted March 25, 2012 Author Posted March 25, 2012 Ясно, спасибо. Пересобрать ядро в силу ряда обстотельств нет возможности. Покопаю исходники htb, не подскажите как обычно добывается значение hz(название функции) ? Вставить ник Quote
Alex/AT Posted March 25, 2012 Posted March 25, 2012 (edited) Собственно на значение CONFIG_HZ HTB не завязан, но обработка в HTB впрямую завязана на jiffies (счетчик от таймера с частотой CONFIG_HZ). См. htb_dequeue и htb_do_events. Edited March 25, 2012 by Alex/AT Вставить ник Quote
Alex/AT Posted March 25, 2012 Posted March 25, 2012 (edited) Вообще говоря, самым правильным советом Вам будет перейти на HFSC. HTB не очень хорошо работает в tickless-условиях, даже при том, что packet scheduler в современных ядрах переведен на интервальные таймеры. Всё равно HTB оперирует именно дискретными тиками, а не конкретными интервалами времени, т.е. реальные показатели процессинга будут варьироваться в зависимости от трафика / нагруженности системы. Edited March 25, 2012 by Alex/AT Вставить ник Quote
kayot Posted March 27, 2012 Posted March 27, 2012 А зачем вообще эти несчастные таймеры трогать? Увеличивайте квант, благо даже максимальное значение 65000 отлично работает для скоростей от 1м до 100м.. Вставить ник Quote
bos9 Posted March 27, 2012 Posted March 27, 2012 htb вроде и само квант неплохо расчитывает разве не? Вставить ник Quote
sirmax Posted March 27, 2012 Posted March 27, 2012 С 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? рабочим... Спасибо. Вставить ник Quote
Alex/AT Posted March 27, 2012 Posted March 27, 2012 (edited) У меня скрипты для классов и HFSC строятся модулем SSG на BRAS, если будет время - вытащу дебаг для одного из абонентов, покажу. Общее описание тут: http://linux-ip.net/articles/hfsc.en/ Если прочитать и понять, как оно работает - перейти с HTB на HFSC проблем не будет. Классовая иерархия всё та же самая, отличие только в названии шейпера и способе задания параметров. Edited March 27, 2012 by Alex/AT Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.