LINUX.ORG.RU
ФорумAdmin

htbinit, cbqinit


0

0

Есть htbinit, вот конфиг CEIL=64Kbit RATE=6Kbit BURST=6K LEAF=sfq PRIO=3 RULE=62.16.16.128/26,192.168.0.1 RULE=62.16.16.128/26,192.168.0.38 RULE=62.16.16.128/26,192.168.0.49 .... В общей сумме строк RULE= в файле около 3000 Ограничение работает, нареканий нет. Пользователи получают свои 7-8 кбайт/сек и все нормально. Но заметил другое.... Когда шейпер поднят - общая скорость на интерфейсе падает с 9.0 мег/сек до 1.8 мег/сек. Данный комп используется еще как и файлопомойка, и пользователям совсем не нравится, чпо при 100 мбитах/сек они видят всего мегобайт..... Подскажите как оптимизировать? Или другой вариант нарезки канала? Надо ограничить полосу для нескольких dest IP, от около 1000 подсетей source IP С использованием cbqinit теже траблы.....


а че за камп то ?

и кстати , файлопомоймку не стоит держать на том кампе на котором режется трафик , это типа у вас еще и шлюз/роутер ?

Резать трафик надо на одной машине , а ваша файлопомойка должна жить на другой .

anonymous
()

> Подскажите как оптимизировать?
С помощью tc filter задавать правильные фильтры, которые классифицировали бы в shaper только нужный трафик (внешний, а не локальный).

spirit ★★★★★
()
Ответ на: комментарий от anonymous

Машинка Атлон 1700+ Вторую машинку нет возможности поставить, место и ресурсы не позволяют.

Keen16
() автор топика
Ответ на: комментарий от spirit

Можно пример правильных tc filter? Щас сделано так: tc qdisc del dev eth0 root tc qdisc add dev eth0 root handle 1 htb default 0 tc class add dev eth0 parent 1: classid 1:2 htb rate 256Kbit burst 2k tc class add dev eth0 parent 1:2 classid 1:10 htb rate 7Kbit ceil 64Kbit burst 7K prio 3 tc qdisc add dev eth0 parent 1:10 handle 10 sfq perturb 10 tc filter add dev eth0 parent 1:0 protocol ip prio 100 u32 match ip src 62.16.16.128/26 match ip dst 192.168.0.15 classid 1:10 И вот таких строчек с tc filter порядка 3000

Keen16
() автор топика
Ответ на: комментарий от Keen16

А что такое 62.16.16.128/26 ? Как выглядит трафик, который нужно шейпить, и тот, который не нужно (src/dst: IP, port, ...) ?

> таких строчек с tc filter порядка 3000
Ого, и чем они отличаются ? Адресами в "match ip dst 192.168.0.15" ?

spirit ★★★★★
()
Ответ на: комментарий от spirit

В общем расскажу всю ситуацию.

В Украине существует точка обмена трафиком UA-IX. К ней подключено около 1000 подсетей.

Так вот мне надо ограничить трафик с этих подсетей на несколько пользователей в моей локальной сети. Ограничить нужно только UA-IX, все что не UA-IX - не трогать.

Теперь понятно? Есть предложения?

Keen16
() автор топика
Ответ на: комментарий от spirit

>Ого, и чем они отличаются ? Адресами в "match ip dst 192.168.0.15" ?

Вообще-то все они отличаются ip src и немного ip dst.

Тоесть ip src= 1000 подсетей И ip dst=3 адресса. И каждому dst адрессу нужно ограничить скорость от src.

Keen16
() автор топика
Ответ на: комментарий от Keen16

>И каждому dst адрессу нужно ограничить скорость от src.

Всмысле, чтоб локальный трафик для этих адресов все же был на 100мб, или что?

fagot ★★★★★
()
Ответ на: комментарий от fagot

>Всмысле, чтоб локальный трафик для этих адресов все же был на 100мб, или что?

Да, локальный трафик - 100 мбит. Мир (Инет) на максимальной скорости от канала, а сам UA-IX на какой-то определенной. К примеру 64кбит.

Keen16
() автор топика
Ответ на: комментарий от Keen16

Хорошо, а к серверу клиенты обращаются на какой IP ? Т.е. какой IP у карточки, на которой "файлопомойка", случайно ли не из 62.16.16.128/26 сети (или других, прописанных в tc filter) ?
Я имею в виду, не подпадает ли случайно сам сервер под те правила так, что при поднятом шейпере он шейпит не только внешние соединения, но и внутренние ?

spirit ★★★★★
()
Ответ на: комментарий от spirit

Нет, он не шейпит. ИП у сервака 192.168.0.254 Рассказываю ситуацию заного:

Когда шейпер не загружен - я наблюдаю скорость скачивания 9.5 мег в сек. ИП у меня 192.168.0.1

Далее, делаю конфиг в котором прописано: RULE=62.16.16.128/26,192.168.0.15

И таких строк порядка 1000, только везде IP SRC разные. И прописиваю скорость этому ограничению в 7 кбайт/сек.

В Итоге: Когда я качаю с сервака фильм с любого ИП - я уже вижу скорость в 4.8 метра/сек, лажу в нете с любого ИП - получаю весь канал. Лажу в нете с 192.168.0.15 - получаю весь канал везде, кроме тех подсетей, что прописаны в RULE=

Но мне не нравится, что локальная скорость упала с 9.5 мег/сек до 4.8 при загрузке шейпера....

Но это еще не самое страшное. Если я создаю 3-4 конфига для шейпера. Тоесть все теже ip src, только уже меняются ip dst. Так скорость на интерфейсе падает уже до 1.8 мега/сек.

Тоесть у меня такое чувство, что шейпер просто ядро нагружает и оно не успевает справлятся.....

Сервак: Атлон ХР 1700+, 2048 рама, 1.5 терабайта винты. Что делать????

Keen16
() автор топика
Ответ на: комментарий от Keen16

> и оно не успевает справлятся.....
Вполне возможно. А нельзя ли попытаться как-нибудь оптимизировать правила, например, с помощью fwmark в iptables или так, как описано тут: http://lartc.org/howto/lartc.adv-filter.hashing.html

spirit ★★★★★
()
Ответ на: комментарий от Keen16

>ядро нагружает и оно не успевает справлятся..

а ты оставь 100 правил и попробуй :) Если дело в нагрузке, ты об этом узнаешь :)

fagot ★★★★★
()
Ответ на: комментарий от fagot

Дело именно в нагрузке. Если 1000 правил - скорость 4.5 метра., Ставлю 4000 скорость падает до 1-го метра.

Так вопрос в том, как это оптимизировать? Через hashkey я что-то не понял как..... Можеш обьясните?

Keen16
() автор топика
Ответ на: комментарий от Keen16

А можно более точно описать как должен ограничиваться трафик ? На сколько я понял - есть 3 клиента, каждому из них нужно снизить скорость до определенного значения при доступе к той или иной подсети UA-IX. При доступе к одной и той же сети каждому клиенту нужно снизить скорость до одного и того же значения или до разных ? Каждому клиенту отдельно выделяется полоса (зачем тогда sfq ? лучше [p|b]_fifo) или всем троим общая на каждую подсеть UA-IX ?

spirit ★★★★★
()
Ответ на: комментарий от spirit

Правильно понял. Вообще каждому пользователю нужно снизить скорость к разному значению. К примеру первому 64 кбит. Второму 128, Третему 256. Но вообще покажите, это на примере хоть одного пользователя....

Просто когда даже одному пользователю ограничиваеш UA-IX, так скорость на локальном интерфейсе уже падает с 9.5 метра до 4.8.

Тоесть мне надо сделать, что б шейпер не влиял на локалку и мир (Инет), а ограничивал только УА-ИХ....

Keen16
() автор топика
Ответ на: комментарий от Keen16

> Просто когда даже одному пользователю ограничиваешь
Тогда скорее всего придется ставить отдельный router, т.к. вряд ли получится оптимизировать 3000 разных записей.
Можно конечно попробовать, но не думамю, что это поможет:
сделать в iptables 3 таблицы (по таблице для каждого user-а):

iptables -t mangle -A POSTROUTING -d user1 -j user1_chain

iptables -t mangle -A user1_chain -s UA-IX_net1 -j MARK --set-mark 1
iptables -t mangle -A user1_chain -s UA-IX_net2 -j MARK --set-mark 2
...

tc filter add dev eth0 parent 1:0 protocol ip prio 100 handle 1 fw flowid 1:11
tc filter add dev eth0 parent 1:0 protocol ip prio 100 handle 2 fw flowid 1:12
...
Т.е. постараться сделать так, чтоб кол-во проверок или их качество (то, как они нагружают систему) было как можно меньшим.

spirit ★★★★★
()
Ответ на: комментарий от spirit

Мдя. С марками тоже ничего не помогло. При создании чепочки на одного пользователя и при ограничении скорости через марки, все равно скорость падает. Но в этот раз еще больше....

Keen16
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.