Перейти к содержимому
Калькуляторы

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

С 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, тогда таймеры будут динамическими.

Изменено пользователем Alex/AT

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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 задавать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Это tickless.

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

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

Изменено пользователем Alex/AT

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Изменено пользователем Alex/AT

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

Изменено пользователем Alex/AT

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

С 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? рабочим...

Спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

 

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

 

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

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

Изменено пользователем Alex/AT

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.