Jump to content
Калькуляторы

расчет аплинка

Господа!делитесь опытом кто как рассчитывает аплинк, у меня магистрал один правило 1/10 не работает, уже давно 1/6 всю рабочие дни канал почти свободный но начиная с пятницы по понедельник ...опа все начинают онлайн фильмы смотреть короче выгребают по полной,пробовал UDP резать начинают танкисты звонить все бы нечего но когда трафик до упора начинаются затыки у одних качает у других даже странички не открываются приходится в ручную ограничивать скорость в шейпере чтобы не упералось в максимальную скорость, (NAS Mikrotik AH1100) тарифы от 1 до 4 мбт,

Share this post


Link to post
Share on other sites

а на чем шейпер построен? simple или tree?

Share this post


Link to post
Share on other sites

PCQ шейпер перед корневой веткой шейпера пробовали ставить? С ограничением на величину чуть меньшую ширине вашего канала.

Share this post


Link to post
Share on other sites

нет не пробовали, как это сделать?

Share this post


Link to post
Share on other sites

нет не пробовали, как это сделать?

 

Сделайте что-то типа:

/queue type add kind=pcq name=_dALL pcq-burst-rate=0 pcq-burst-threshold=0 \
   pcq-burst-time=10s pcq-classifier=dst-address pcq-dst-address-mask=32 \
   pcq-dst-address6-mask=128 pcq-limit=500 pcq-rate=0 pcq-src-address-mask=\
   32 pcq-src-address6-mask=128 pcq-total-limit=9000000

добавьте перед вашими шейперами шейпер с этим queue type и max limit для него сделайте чуть меньше ширины вашего канала. Не забудьте сделать для ваших шейперов парентом этот queue, а в него не забудьте добавить Packet Marks всех ваших шейперов.

Share this post


Link to post
Share on other sites

сделали все так, как описано выше. но трафик считается в 2 раза больше чем проходит через vlan. может быть это из-за того, что у нас через один порт гоняется все? можно ли канал просто указать в 2 раза больше?

Share this post


Link to post
Share on other sites

2 автор а параметр limit-at указан? если указан как получили данный параметр?

Share this post


Link to post
Share on other sites

нет, не указан.. только max limit.

 

ну так укажите. это параметр гарантированной полосы для группы

 

ну конечно, что он актуален только если у вас несколько тарифов/шейперов

 

у мя это дело в автомате считается и значение правиться раз в 5 минут.

и не бывает такого что кому то не хватает полосы

Share this post


Link to post
Share on other sites

а поподробнее можно про автоматический подсчет? как его реализовать? считается в зависимости от загруженности канала?

Share this post


Link to post
Share on other sites

считается в зависимости от загруженности канала?

нет, канал у вас есть и он фиксированный, если вышестоящий пров нормальный

 

limit-at считается в зависимости от кол-ва юззверей активных

 

 

##### please set options ####

:local TreeList "Start_down, Midl_down, Max_down, High_down";

:local ChannelSpeed "100";

#####################

 

:local TotalChannelSpeed;

:local Factor;

:set ChannelSpeed ($ChannelSpeed*1000000);

 

:log info "------------SHOW INFO-----------";

#Need speed, Total speed

:local ArrayQueueTree [:toarray $TreeList];

:foreach ArrayQueueTreeVal in=$ArrayQueueTree do={

:foreach QueueTreeVal in=[/queue tree find] do={

:local QueueTreeName [/queue tree get number=[$QueueTreeVal] name]

:if ($QueueTreeName=$ArrayQueueTreeVal) do={

:local PCQActiveUser [/queue tree get number=[$QueueTreeVal] pcq-queues]

:local PCQName [/queue tree get number=[$QueueTreeVal] queue]

:local PCQRate [/queue type get [$PCQName] pcq-rate]

:local NeedSpeed ($PCQRate*$PCQActiveUser);

:log info ($QueueTreeName." -- active: ".$PCQActiveUser.", pcq: ".$PCQName.", needspeed: ".$NeedSpeed/1000000);

:set TotalChannelSpeed ($NeedSpeed+$TotalChannelSpeed);

 

}

}

}

:set TotalChannelSpeed ($TotalChannelSpeed/1000000);

:set Factor ($ChannelSpeed/$TotalChannelSpeed);

:log info "Total speed: $TotalChannelSpeed Mbit";

:log info "Factor: $Factor";

 

#LIMIT-AT

:log info "------------SET LIMIT-AT-----------";

:foreach ArrayQueueTreeVal in=$ArrayQueueTree do={

:foreach QueueTreeVal in=[/queue tree find] do={

:local QueueTreeName [/queue tree get number=[$QueueTreeVal] name]

:if ($QueueTreeName=$ArrayQueueTreeVal) do={

:local PCQActiveUser [/queue tree get number=[$QueueTreeVal] pcq-queues]

:local PCQName [/queue tree get number=[$QueueTreeVal] queue]

:local PCQRate [/queue type get [$PCQName] pcq-rate]

:local NeedSpeed ($PCQRate*$PCQActiveUser);

:local LimitAT (($NeedSpeed*$Factor)/1000000);

 

:local LimitAtMbit ($LimitAT/1000000);

:local LimitAtKbit ($LimitAT/1000);

:set LimitAtMbit ($LimitAtMbit."M");

:set LimitAtKbit ($LimitAtKbit."K");

:local ChannelSpeedKbit (($ChannelSpeed/1000)."k");

 

:log info "$QueueTreeName -- Limit-At: $LimitAtKbit, Max-Limit: $ChannelSpeedKbit ";

queue tree set "$QueueTreeName" limit-at=$LimitAtKbit max-limit=$ChannelSpeedKbit

 

}

}

}

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

где

 

:local TreeList "Start_down, Midl_down, Max_down, High_down"; это имена веток шейпера

:local ChannelSpeed "100"; - это max limit , только заметил этот параметр нуна было брать с мах limit основного ствола, но т.к. своего ума нет для создания такого заказывал

 

если нужно распишу логику на пальцах хотя это сложно )))))

раньше держал в экселе, и там считал усредненно

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this