Ограничение скорости для ip адреса
есть шлюз который пропускает абонентов в интернет
был настроен iptables и iproute2 для ограничения скоростей (htb или cbq)
все впринцепе работало нормально до того момента как увеличилось число абонентов
тогда канал расширили со 100 до 300 мегабит
но по факту в часы пик загрузка канала была на уровне 110 мегабит
началось следующее один из процессов ksoftirq занимал в top 100% после попытки разнести сетевухи по разным процам
картина изменилась но не сильно в итоге если я удаляю правила ограничения скоростей то процессор разгружается
а загрузка канала тогда составляет как раз положенные 300 мегабит
может ли ктонибудь посоветовать с помощю чего можно ограничивать скорость абонентам или может я просто не так пользую iproute2
tc qdisc add dev eth0 root handle 1: htb tc class add dev eth0 parent 1: classid 1:1 htb rate 300mbps
для каждого абонента
/sbin/tc class add dev eth0 parent 1:1 classid 1:(id абонента) htb rate 256bit ceil (СКОРОСТЬ)kbit prio 0 /sbin/tc filter add dev eth0 parent 1:0 protocol ip pref (id абонента) u32 match ip dst (ИП абонента) classid 1:(id абонента)
абонентов около 1500
- Для комментирования войдите или зарегистрируйтесь
Проц какой? Сетевые? У меня
Проц какой? Сетевые?
У меня тоже прилично полос определено, правда, я fw правило использую. Особых проблем не испытываю, но, правда, у меня 2 сервера на ~2300 абонентов.
у меня тоже на самом деле у
у меня тоже на самом деле у мен ятоже два сервера просто на втором седят прмые адреса и adsl абоненты
всего человек 500 там соответственно проблем нет
а даже если бы и были то сервера отличаются друг от друга только версией ядра
процы 2 X Xeon 2 ГГц 2 гига оперативы сетевухи Интел гигабитные онбордные
на самом деле я уже писал здесь на форуме про эту проблему... просто не понимал что проблемы
именно связанны с оограничением скорости
http://www.gentoo.ru/node/16996
Нужно поставить oprofile,
Нужно поставить oprofile, посмотреть, что именно ест softirq больше всего. Для такой конфигурации нагрузка смешная, у нас на такой нагрузке Core2Duo стоял с обычной асусной десктопной мамой. Поначалу были проблемы с softirq, решили оптимизацией правил iptables и фильтров htb.
Кстати, вот это (выделено
Кстати, вот это (выделено жирным):
/sbin/tc class add dev eth0 parent 1:1 classid 1:(id абонента) htb rate 256bit ceil (СКОРОСТЬ)kbit prio 0[]
несколько смущает. Зачем такой маленький rate? При таком раскладе htb у вас будет всегда считать, есть ли возможность отдать ceil или нет. Т.е. - созданы такие условия, что rate превышен постоянно. Уж если есть необходимость в rate != ceil, то значение rate должно быть более вменяемо, ну хотя бы 32Kbit, а лучше 64Kbit.
Кстати, насколько много фильтров одновременно ограничивают полосу во время большой загрузки?
rate == ceil?
А как избежать условия rate != ceil? Чтобы управлять трафиком суммарный по всем абонентам rate не должен превышать общей пропускной способности канала. Так как тарифы в 1-10Мбит не редкость, rate всегда != ceil.
Я же не говорил, что его надо
Я же не говорил, что его надо избегать :) Но rate 256bit - это уж совсем перебор. Вы представьте себе, как будет вести себя htb, как только клиент хоть что-нибудь потянет? У меня сейчас общий канал 120Мбит/с, и значение rate для любой полосы нигде не стоИт ниже 128Kbit.
2300*128=это почти 300 Мбит, но все равно все прекрасно работает, потому что даже в самый что ни на есть пик не работают все одновременно. Как показывает практика (у нас) - из 2300 в на пике нагрузки активно ограничивается не более 300-350 полос. Да и "полочки" на канале не наблюдается, ибо если хоть иногда бывает "полочка" - значит, канал надо однозначно расширять.
Подход к суммарным rate с такой точностью, ИМХО, оправдан только в том случае, если каждая полоса гарантированно берет то, что ей причитается ежедневно, и если суммарная емкость полос равна общей емкости канала.
Хотя - каждый, естественно, решает сам, как и что ему расчитывать и настраивать. Я всего лишь высказал свое мнение, основанное на собственном же опыте.
alexpro написал(а): Я же не
я поменяю сегодня rait и посмотрю...
на сколько я помню тот ман (или как я его понял) особенно не пренципиально что там стоит за исключением того что в сумме не должно
привышать возможного
а если поможет изменение rait то тогда мне не понятна в разница между 256bit и 256Kbit т.к. я её в любом случае привышаю включая большей ceil ...
если бы параметр rait не был бы обязательным я его бы вообще не ставил
Все-таки советую
Все-таки советую воспользоваться oprofile. Ведь помимо htb, на сервере наверняка применяется iptables? А iptables тоже любит кушать softirq.
rate - это параметр, задающий скорость потока, выделяемого в класс. Ceil задает максимально возможную скорость потока, которую может получить класс в случае, если ее есть возмножность выделить из родительских классов. Если парамерт ceil не указывать вообще, то ceil будет равен rate, т.е. - параметр ceil не является обязательным.
Рекомендую хотя бы несколько дней в пиковое время посмотреть на то, сколько классов активно ограничивают скорость. Это тоже поможет в оптимизации нагрузки. Мощности железа должно хватить. Ну, и еще раз, не стОит пренебрегать iptables.
с iptables я смотрел в своё
с iptables я смотрел в своё время были такие-же проблемы в итоге ушол просто от разрешающих правил
поставил только запреты....
а в итоге все стало ещё проще.... абонентам стали отключать интрнет на ближайшем свиче третьего уровня
а в iptables в цепи FORWARD порядка пяти правил
Hashing filters
Не очень ясно, как и что у вас настроено. Попробуйте покурить на тему:
http://lartc.org/howto/lartc.adv-filter.hashing.html
Что касается rait и cailна
Что касается rait и cail
на соколько я помню когда писал скрипт загрузки я читал ман и там было написанно что rait
это гарантированная скорость а ceil это максимально возможная скорость для класса
для каждого абонента создается класс и фильтр команды написанны в первом сообщении
если мне память не изменяет то команды садрал с опеннета
Oprofile поставил как начнется нагрузка буду смотреть что происходит
Если поставил oprofile, оно и
Если поставил oprofile, оно и сейчас уже будет приблизительно видно, кто и сколько ест.
Не магу до конца разобраться
Не магу до конца разобраться на что смотреть в oprofile
Не могли бы вы подсказать...
Ядро собирали сами? Если нет,
Ядро собирали сами? Если нет, то надо собрать самому, и загрузиться с него.
Потом
Это по-простому. Если сложнее, надо курить документацию и гуглить. Рассказывать - это целую статью писать надо.
ядро пересобрал ещё когда
ядро пересобрал ещё когда ставил
я в коммандах запутался
все работает ...
u32_classify я так понял больше всего сейчас кушает....
а к чему он относится к фильтрации для ограничении скорости?
Вот буквально
Вот буквально сейчас
ksoftirqd/3 - 78%
при отключенных ограничениях
при отключенных ограничениях скоростях показатели opreport
не изменились
немного изменил фильтр сделал так
сейчас вроде час пик ksoftirqd/* не более 5 процентов и у абонентов скорость по тарифу ...
посмотрим что будет, но я честно говоря сомневаюсь