Ork Yason Опубликовано 13 декабря, 2008 · Жалоба есть писюковый роутер на нем через ТС настроен шейпинг... встал вопрос, какую дисциплину использовать, что минимизировать нагрузку на процессор нарезка на приблизительно полтысячи пользователей, для каждого создается такой вот набор правил: tc class replace dev eth1 parent $tc_parent classid 1:$code_user htb rate 1kbit ceil ${ceil}kbit quantum 2000 tc qdisc add dev eth1 parent 1:$code_user handle $code_user: sfq perturb 10 tc filter replace dev eth1 protocol ip parent 1:0 prio 5 handle $code_user fw classid 1:$code_user ... tc class replace dev eth0 parent $tc_parent classid 1:$code_user htb rate 1kbit ceil ${ceil}kbit quantum 2000 tc qdisc add dev eth0 parent 1:$code_user handle $code_user: sfq perturb 10 tc filter replace dev eth0 protocol ip parent 1:0 prio 5 handle $code_user fw classid 1:$code_user ... Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
nuclearcat Опубликовано 13 декабря, 2008 · Жалоба У вас "узким местом" будет фильтр на MARK, а не дисциплина. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ork Yason Опубликовано 13 декабря, 2008 · Жалоба хм... я читал, что айпитейблз "есть" мало процессора... ю32 - говорят еще больше есть как тогда мне быть? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
AlKov Опубликовано 13 декабря, 2008 · Жалоба хм... я читал, что айпитейблз "есть" мало процессора... ю32 - говорят еще больше есть как тогда мне быть? FreeBSD+Radius+mpd5+ng_car спасут Отца Русской демократии. ;)У меня данная связка держит полторы сотни он-лайн зверей с персональным шейпом (именно шейп, не рейт-лимит) на каждом. Говорят, что без напряга потащит 500 и более зверей.. На пиюковом рутере только нарезаю полосы для тарифных планов. Ну Вы наверное читали тут. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ivan Rostovikov Опубликовано 13 декабря, 2008 · Жалоба Вот только, что (на той неделе) разбилался с таким случаем. iptables - метит пакеты. Далее соовт. фильтр и 1 класс HTB. 1500 клиентов. Тормоза... Узким местом оказалась цепочка из 3000 правил iptables -t mangle Порезал на подсети. Теперь все летает. Xeon 2Г Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ork Yason Опубликовано 13 декабря, 2008 · Жалоба а подробней можно?! в теории как это будет выглядеть Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ivan Rostovikov Опубликовано 14 декабря, 2008 · Жалоба Было: /sbin/iptables -t mangle -A FORWARD -s $IP -j MARK --set-mark $SMARK /sbin/iptables -t mangle -A FORWARD -d $IP -j MARK --set-mark $DMARK 1500 клиентов и соответственно 3000 строк. Результат - поток в 100Мб/s укладывал XEON 2Г с "крутыми" интеловскими сетевухами НАГЛУХО. Временами такой бридж не мог пропускать более 50-60 Мб при задержках 2-3 секунды на отдельных пакетах. Что конечно неприемлимо. Решение: sn_list="10.129.0.0 10.100.0.0 10.100.1.0 10.0.0.0" ..... и так много /sbin/iptables -t mangle -F FORWARD for i in $sn_list do /sbin/iptables -t mangle -A FORWARD -s $i/24 -j SUBNET-$i /sbin/iptables -t mangle -A FORWARD -d $i/24 -j SUBNET-$i done /sbin/iptables -t mangle -A FORWARD -j SUBNET-OTHER insert_rule() { sn=`echo $1 | sed -r "s/\.[0-9]+$/.0/"` fl=0 for i in $sn_list do if [ $i = $sn ] then /sbin/iptables -t mangle -A SUBNET-$sn -d 0/0 -s $1 -j MARK --set-mark $2 /sbin/iptables -t mangle -A SUBNET-$sn -s 0/0 -d $1 -j MARK --set-mark $3 fl=1 fi done if [ $fl = 0 ] then /sbin/iptables -t mangle -A SUBNET-OTHER -d 0/0 -s $1 -j MARK --set-mark $2 /sbin/iptables -t mangle -A SUBNET-OTHER -s 0/0 -d $1 -j MARK --set-mark $3 fi } Возможно код скрипта не оптимален, но суть отражает. Цепочка SUBNET-OTHER создана для подсетей, которые возможно забыл внести в список sn_list Разбиение на подсети /24 позволило сильно не заботится о дальнейшем росте числа абонентов. Теперь загрузка при потоке 100Мб: # uptime 14:10:33 up 12 days, 19:04, 1 user, load average: 0.00, 0.01, 0.00 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ork Yason Опубликовано 14 декабря, 2008 · Жалоба т.е. я правильно понял, что каждой подсети была создана новая цепочка и траффик туда завернут тогда вопрос, количество марков не изменилось, они лишь разнесеные по разным цепочкам... почему от этого становицо легче процу? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ivan Rostovikov Опубликовано 14 декабря, 2008 · Жалоба Потому, что при линейной цепочке пакет проходил 3000 правил. А при "древовидной" схеме - максимум ~500 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ork Yason Опубликовано 14 декабря, 2008 · Жалоба ну, скажем, я был не уверен в столь интеллектуальности iptables... если он знает в какой цепочке искать - эт хорошо ок, благодарю, бум думать, как бы поправильней сделать цепочек... Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Мартен Опубликовано 14 декабря, 2008 · Жалоба вопрос по сути сводится к переходу от линейного поиска к индексированному. стоит взглянуть на ipset Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ivan Rostovikov Опубликовано 15 декабря, 2008 (изменено) · Жалоба ipset для маркировки не применим. Я уже обьяснял в другом топике. >если он знает в какой цепочке искать... iptables сам ничего незнает :-) Куда Вы его направите, туда он и пойдет. Изменено 15 декабря, 2008 пользователем Ivan Rostovikov Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
sirmax Опубликовано 15 декабря, 2008 · Жалоба насчет 150 клиентов на фре - на accel-pptp c tc с индивидуальными скоростями из радиуса до 500 сессий от 128 до 2048 кбит. проц celeron 2.8 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...