srg555 Опубликовано 25 марта, 2012 · Жалоба Как расчитать максимальную скорость, которую можно установить в шейпере в зависимости от CONFIG_HZ? И что будет происходить, если задать скорость больше? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Alex/AT Опубликовано 25 марта, 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, тогда таймеры будут динамическими. Изменено 25 марта, 2012 пользователем Alex/AT Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
srg555 Опубликовано 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 задавать? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Alex/AT Опубликовано 25 марта, 2012 (изменено) · Жалоба Это tickless. В целом да - задавать можно любую, лишь бы у Вас для разных скоростей в пределах класса (включая субклассы) квант был одинаковый. Само собой, скорости семплируются только квантами, т.е. деление будет пропорционально кванту. Не помню - использует HTB HZ где-то для внутренних целей, или нет. Лучше задайте 1000 для подстраховки. В случае tickless всё равно интервал таймера будет подбираться, исходя из текущей ситуации. Изменено 25 марта, 2012 пользователем Alex/AT Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
srg555 Опубликовано 25 марта, 2012 · Жалоба Ясно, спасибо. Пересобрать ядро в силу ряда обстотельств нет возможности. Покопаю исходники htb, не подскажите как обычно добывается значение hz(название функции) ? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Alex/AT Опубликовано 25 марта, 2012 (изменено) · Жалоба Собственно на значение CONFIG_HZ HTB не завязан, но обработка в HTB впрямую завязана на jiffies (счетчик от таймера с частотой CONFIG_HZ). См. htb_dequeue и htb_do_events. Изменено 25 марта, 2012 пользователем Alex/AT Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Alex/AT Опубликовано 25 марта, 2012 (изменено) · Жалоба Вообще говоря, самым правильным советом Вам будет перейти на HFSC. HTB не очень хорошо работает в tickless-условиях, даже при том, что packet scheduler в современных ядрах переведен на интервальные таймеры. Всё равно HTB оперирует именно дискретными тиками, а не конкретными интервалами времени, т.е. реальные показатели процессинга будут варьироваться в зависимости от трафика / нагруженности системы. Изменено 25 марта, 2012 пользователем Alex/AT Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
kayot Опубликовано 27 марта, 2012 · Жалоба А зачем вообще эти несчастные таймеры трогать? Увеличивайте квант, благо даже максимальное значение 65000 отлично работает для скоростей от 1м до 100м.. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
bos9 Опубликовано 27 марта, 2012 · Жалоба htb вроде и само квант неплохо расчитывает разве не? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
sirmax Опубликовано 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? рабочим... Спасибо. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Alex/AT Опубликовано 27 марта, 2012 (изменено) · Жалоба У меня скрипты для классов и HFSC строятся модулем SSG на BRAS, если будет время - вытащу дебаг для одного из абонентов, покажу. Общее описание тут: http://linux-ip.net/articles/hfsc.en/ Если прочитать и понять, как оно работает - перейти с HTB на HFSC проблем не будет. Классовая иерархия всё та же самая, отличие только в названии шейпера и способе задания параметров. Изменено 27 марта, 2012 пользователем Alex/AT Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...