Shaping for dummies
-
Hello All
First thanks to everyone who contributes and supports Pf
it truely creates an awsome deviceThat said… time to beg for some assistance
I am having great difficulty getting a grasp on the whole traffic shaping thing
its my own shortcoming but normally I can eventually find and follow/ figure things out
by finding some instructions on the net but
I have searched and read everything I can find and it seems to be difficult for even a veteran to understand let alone a novice
there does not seem to be any simple to follow instructions outlining the basics of HFSC
and que structure or a means of basic rules for determining efficient que settingsI tried dsusans spreed sheet but nearly lost the rest of my hair trying to make sense of it all
m1 m2 red ecn I thought my head might explodeI have been through all the wiki and forum info I can find and as I try various things I read
I continually get errors regarding the sum of the child exceeding the parent ect..after I try them
I have used the wizard but as I have read these settings are not particullarly optimal for things like qwanacks ect..I am using 1.2-RELEASE
The box is built on a AMD Athlon(tm) XP 2000+ with 1.5 Gig of ram
my connection is 12meg dwn/1.6 upWould anyone be so kind as to recommend what I should use in the default queues values
I have the default ones listed below that show after completing the wizard
( I have played with only the percent values on a few trying to get rid of the error and it is now error free but it does not seem to be performing as well as I would expect it too given my connection speed)
Justcant seem to hit on a way to set qwanacks to be error free at the recommended
wiki shaping page setting of 60-65%0 No 1520 Kb qwanRoot
0 No 11400 Kb qlanRoot
1 Yes 5 % qwandef
1 Yes 1 % qlandef
ACK 7 No 45 % qwanacks
ACK 7 No 40 % qlanacks
7 No 10 % qVOIPUp
7 No 10 % qVOIPDown
RED ECN 1 No 1 % qP2PUp
RED ECN 1 No 1 % qP2PDown
5 No 10 % qGamesUp
5 No 10 % qGamesDown
RED ECN 4 No 25 % qOthersUpH
RED ECN 4 No 30 % qOthersDownH
RED ECN 2 No 1 % qOthersUpL
RED ECN 2 No 1 % qOthersDownLAny information on this black art and how to properly configure shaping
or an explanation of it laymens terms would be most graciously appreciatedThanks & Best Regards
MD
-
Its pretty simple :)
bandwidth is the same as linkshare this is a best effort schduling meaning it will try to satisfy this value but does not guarantee that it cannot go higher or lower.
realtime is a lower limit it does guarantee that traffic on this queue will not go below the configured limit. These queues are served first of all others meaning that these queues have the highest priority over others.
upperlimit is just as the name says an upper limit for the queue. Let say you have configured a queue with bandwidth 512Kbit/s and you do not want this queue to use more than 712Kbit/s of available bandwidth. That's where you can use upperlimit.
Combining these three alltogether is not your scope i guess.
Recommandation for a setup.
Data/Packets that are sensitive to delays like VoIP, video,…. always go to a queue that has realtime configured(at least m2 part of it)
Data/Packets that need to have a certain amount of bandwidth like http, email go to queues with linkshare set(at least m2)
Data/Packets that can slow down the link or that need to be controlled or not surpass a certain limit are setuped with upperlimit(at least m2 set).RED/ECN/ are just technologies to avoid congestion at your router.
RED tries to drops packets to aviod congestion while ECN tries to notify the interested parties of congestion might occur and they need to slow. -
I forgot the values:
For your q{lan,wan}ack i would go
linkshare m2 = 80% realtime m2 = 40% -
Thank You for the nice description Ermal
that explains the service curve section to me nicely
and from your information I am sure I will be able to configure thoseif you could tolerate a couple more dummie questions it would be helpfull
What are qwandef and qlandef I see them listed but do not understand
what they refer to
ques like p2p up and down or voip up/ down are self explanitory as to
what bandwidth they limit but qwandef and qlandef not so muchGoing by your values for q(lan,wan) ack you specify the m2s
but not the main Bandwidth category ( the one at the top )
Should I have just left all those at the wizard values and then
only adjust the Service Curve section values for my que preferencesIf not Could you recommend decent starting percentage values for me to use
on my ques in the bandwidth column so I can start with that and tweak them as neededThank You for taking the time to reply
I know your a busy guy and a major contributor to pf
so your patience explaining this to me truely is appreciated -
The "bandwidth" up top will be overriden by the "realtime" value, so it's not really representative. You should set it to the same as the realtime values so that you can properly evaluate your queues from the main Queues screen, that's all.
qwanDef and qlanDef are the default queues. Packets that are not matched to other queues will go there. It should be set lower than your prioritary queues, but higher than your penalty queues (if you have any, like P2P). -
Hi stechnique
I always seem to get parent/child errors cant seem to get away from them
even setting Ermals recommended q{lan,wan}ack values of
linkshare 80% m2 realtime m2 = 40% generated a similar error
I cant seem to get qwanacks or qlanacks to 40% without any errorsI am using the wizards gererated default ques as listed above
if someone were to list what decent error free starting values
Should be set in the bandwidth column for each que I think
it would be most helpful
although as you said
The "bandwidth" up top will be overriden by the "realtime" value
So mayby I am concerning to much with it
but I definately cant get it to be the same as
the realtime value without any errorsWould it be better to not use a percentage values at all and actually
specify it in terms of KbIt seems like such a basic principle on the surface
having ques and X bandwith alloted to each of them
Then steering specific traffic to each que according to its priorityI understand what I would like to acomplish but I am failing
horribly at making it all happenObjectives I would like to achieve:
que for voip of say 128 down 64 up max
Small game que of say 512 down 128 up max
p2p que of 256 down 64 up max
Fast dns and ping times
ack with high enough settings to allow full speed downloads if bandwidth is available
Maintain Web and email performance above all else
Decent performance with streaming audio and video media like you tube ect.
Catch all for anything else sent to p2p queThanks for your time and assistance guys
-
que for voip of say 128 down 64 up max
Small game que of say 512 down 128 up max
p2p que of 256 down 64 up maxIf your goal is fixed bitrates, why are you trying to setup queues with percentages?
Set your queues to those values… -
Well yeah the GUI in 1.2 might give you some glitches on the flexibility of th eshaper.
That's why it was improved in 1.3.q{wan,lan}def as stechnique said is just the queue that hold the traffic that is not catched by the other queues.
Whe you set both bandwidth and realtime its that if realtime is statisfied bandwidth will not be used otherwise realtime will be satisfied and the queue will have a chance to get more bandwidth through linkshare. So its not totally 'overwritten' its more like cumulative.
IMHO you can get very confused with HFSC surely if you begin mixing the service curves.
But some simple words:
If you mix realtime and linkshare it means basically that you need realtime bandwidth allocated to this traffic and after we have the minimum guarantee than let linkshare give us some more available one.
If you mix realtime and upperlimit, not really any meaning.
If you mix linkshare with upperlimit you get a best effort scheduling with an upperlimit but not a lower one.
If you mix realtime, linkshare and upperlimit you get a range of bandwidth allocated for this traffic but just lower limit guaranteed since you cannot guarantte the upperlimit will be always be reached just that it want go higher than that.
I do not see other uses of the combinations other than playing with m1,d and m2 which surely is not what you are after.Hope it helps.
-
I forgot again,
for bandwidth just live the defaults of the wizards and just fill//clear the service curve parts.
-
stechnique
well the goal was to approximate this with percentages
uasing a percentile seemed easier I only specified the values above
because I thought that may be better since the percentage values
are giving me such a hard time ( thinking by specifiying it I can make shure
the math of the child ques doesnt exceed 100% of the parent ques )
which should fix the errors I getErmal that is a most helpful explanation
hopefully this may help some others as wellThank you muchly