Help and Support
Ask a question, report a problem, request a feature...
<<  Back To Forum

Review of existing BW Priority algorithm

by Bugmagnet on 2014/05/28 01:14:43 AM    
Working with this over the last few days, I noticed that the setting variables can be very aggressive.

Given I am seeding 600+ torrents with 100+ active connections,

When I sorted my seeds by B/s out, I saw that a torrent set to "Above Normal" (AN) BW Priority with just 1 peer was drawing 70% of my total UL BW. The other 100+ connected users shared the remaining 30% of my UL capacity. That all varied of course.  Sometimes there were 2 or 3 torrents AN torrents at the top. Strangely, I noticed that the same user that was drawing 70% for that torrent dropped out of the top spot and for several minutes mixed in the 'normal' fray level, drawing just 2-3 % of my UL BW resources. Then, after many minutes, it again jumped to the top though drawing "only" 20-25% of my UL capacity.

My concern here is that this was caused by a very modest, 1 level increase in the BW Priority setting. I have witnessed that High, Very High and Ultra High are obviously even more aggressive. perhaps overly so, in reallocating BW resources.

Would a single user cap option setting be useful? say 20% max?
by Sailor24 on 2014/05/28 09:57:50 AM    
You are missing the greatest variable. Internet connections. Internet connections and s path changes do exactly what you are describing even if everything is set to normal. But yes setting to AN can be bigger advantage than you might want so also set a reasonable out flow limit.
by Pete on 2014/05/28 09:58:07 AM    
This is from my observations only, I may be wrong.

Priority Groups reserve bandwidth for all tasks in the group. If you only use two groups: Normal and Above Normal, the whole AN group will get 2/3 of total bandwidth limit and Normal group will get remaining 1/3. So if only one peer in AN is active, he can get 2/3 of your bandwidth. However if only one peer in Normal is active, he can get 1/3 of your bandwidth, so it's possible that he will be downloading faster than anyone from AN group.

It's a bit more complicated if you use more Priority Groups. I made a simple diagram to show how it works:
http://i.imgur.com/FGDEwnC.png
Normal gets 2/3 of total bandwidth. BN, L, VL and UL together get remaining 1/3 of bandiwdth limit. BN gets 2/3 of that 1/3. L, VL and UL get 1/3 of that 1/3 and so on. Higher settings work the same way.

I think this system is simple, elegant and it works fine. For less aggressive bandwidth priorities try Peer Allowance.
by Bugmagnet on 2014/05/28 03:27:29 PM    
Sailor24..I am not sure I am understanding...
What "internet connections" are you referring to and how does that impact the BW priority setting?

What are "s path changes"?

The only thing I see that might be related is Settings/Network/Connections/Max Peer per transfer which I have set to 50. Is that it? or is there something I am missing?

By "out flow limit" I assume you are referring to Bandwidth/Limit Outgoing KiB/s  right? What is "reasonable" and how does this affect the BW Priority allocation?
by Bugmagnet on 2014/05/28 03:37:47 PM    
Pete, very interesting observations.
I'll have to start testing based on that.
If the algorithm works as you suggested, it may be a overly aggressive, but I'll have to test for sure.  I never thought about the priority group as a whole getting metered and that that fact could have unexpected results based on number of active clients in a group...veddi interesting.


One thing I just discovered...you can assign a BW Priority to a category group... but when doing so, I don't see the BW Priority changing for the individual torrents in that group. So I am befuddled about how exactly that works in practice. more research and exploration.
by Sailor24 on 2014/05/30 03:36:16 PM    
Simplest first. Internet connections and path change relates how a packet gets to you. If you are receiving from me, each packet I sent will not follow the path of the the last packet. There will be optimization by servers that neither of our computers has any thing to say about. If we are both in N.A. The packets will spread from north to south at the mid point between and converge at the receiver. I put one on the east coast and one on the west. Sort of look like an eye.

Basically they can travel pretty quick and if need be take a detour to avoid a slow down. Understand though that the path is in constant change. Not so simple if it is traveling through an ocean. The number of pathways are limited and there are slowdowns. When things slow the path must change more dramatically. As simple as that sounds it is not. Short of writing a essay I just have to leave it there.

If I set something to above normal then I set a cap in bandwidth out going limit.. Basically priority is your place in line. If only one thing is set to AN then it will always be first. I usually don't run into problems because I have many users set to AN. I rarely set a torrent to AN but set lots to BN. From what I have seen not a lot more favor is given if you set it to UH if only one is set higher. But I have a crappy upload speed so hard to tell. If only one or too is set you must set a limit because there is nothing to balance a favorable or poor connection.
by Bugmagnet on 2014/06/01 04:56:48 AM    
Maybe I should have asked, what are "s paths" - I understand connections and internet routing, that it (usually) uses the best path to transfer packets. I just never hear the term "s path"... or was that a typo?

My understanding is any BW priorities set will not be applied unless the set limit is reached. I never thought about giving a user priority as we seldom know who the user is. So mu use revolves around my assigning some arbitrary BW Priority level to torrents themselves, based on some personal social significance factor.

As is, it seems to work ok, except it seems too aggressive.  If I have 100 peers connected and downloading, I'd prefer the BW allocation not to be so skewed towards the top 5 or so. Yes give some advantage...that is what the BW Priority is for, but we have 9 levels so I would think the difference between levels could be somewhat less than it is. When a torrent is elevated a single level to say AN, I would not then wish to allocate 67% of my total UL capacity to that user or category. I would think such a drastic preferences would be reserved for Ultra High. Even then I would want a single user to grab that much. Just maybe some fine tuning of the algorithm.
by Pete on 2014/06/01 10:36:45 AM    
Bugmagnet, try using Peer Allowances instead, they are far less aggressive than Priority Groups. Additionally you can fine tune allowances levels yourself with Customize Menu under Bandwidth menu.
by Sailor24 on 2014/06/01 12:55:17 PM    
Not sure I understand how exactly the priority system works or is suppose to work.
From your post:My understanding is any BW priorities set will not be applied unless the set limit is reached.
From me: Not what I have experienced, nothing to do with limits. It is more like this.
Experience says it is like a waiter and who they serve first. So if there is only one vip he gets 70% of the first serves. So by going from AN to the next level you tell another waiter " this guy is a VIP take care of him". THE KITCHEN LIMITS EVERYTHING (THE PROGRAM). It can only produce so much food. You can also say to the waiters one at a time to not pay attention to this table I.E. BN and lower. This assumes you have 4 waiters serving all your clients. Peer priority would be saying to the waiter , except for this guy, he is important.

There is a particular torrent you want to push so set it to AN and then ask yourself how much bandwidth should it get? 20% so you up at 2 Mb (from posts) so set 40 Kb as your cap. My case I see a downloader that is clearly not connected to others so I just set him to AN and it will run it's coarse and be done.

I am not trying to seed forever. My seeding efforts are for stalled torrents. So I only push torrents to complete them. My hope is someone that completes will seed it for the long term. Not me. This is a whole other topic of how to complete stalled torrents, that is another post.

Path is significant. Partly an assumption. From me, most of my connections go east. They hit the pipelines to Euro and are off. I rarely get any speed from Russia or China and fail to connect to peers. Every once and a awhile the east pipes are plugged so, the path changes, the servers send more of my queues( if that is the right word) west. This happens once a week. Bingo then all of a sudden my torrents that are seeded from there come to life 8,14, 20 seeds, I will have seen zero peers for a week. These are DHT or maybe pex hits. I know this because the trackers all say seeds 0 and leeches 1, that would be me. If they are pex then I seem to get lucky once a week. I assume DHT because of the path change and I get to different servers. It still could be pex. It has to do with who is first on the path.

I know of the east west switch thing from when I had a website and the ease of something etc don't want to explain. This might be unique to Canada but doubt it.

Like said peer allocation is much better and easier because first and foremost any mistakes go away once the peer is finished a download.
by Bugmagnet on 2014/06/03 05:48:56 AM    
Sailor.. to experience it, try this:

1] seed as many torrents as you can.
2] Assign some elevated or reduced BW priority to lots of the torrents you are seeding.
3] turn off the upload band width limit, temporarily
4] note what your upload bw is.  say 50 KiB/s watch the BW graph for several minutes to see how steady it is.
5] sort the torrents you are seeding by the B/s OUT column, with larger BW on top
6] note the spread of BW for the torrents

Now...

7]go back to Settings/Bandwidth/limit outgoing and set it to a very high number, far more than what you can actually upload, a=say 100,000 KiB/s
8] not that the BW spread between torrents is not much different that when the outgoing limit is disabled.
9] go back and set the Outgoing BW limit to 1/2 of your actual capacity. If it was 50 KiB/s, set the limit to 25 KiB/s
10] look again at the BW spread between the various torrents you are seeding.

I think under these conditions, where you are applying an Outgoing limit that is really limiting something by being less than your actual capacity, the spread of the BW will be markedly different, with those at the top getting a far higher percentage than those below.

As to applying the BW Priority to users, no thanks. I can't be constantly selecting certain users to be temporarily privileged. As you said, as soon as they finish that download, that setting is voided and would need to be reset daily to have any effect. No.. Setting the BW Priority for each torrent sticks  - set it and forget it - That does not need constant monitoring or adjusting. It remains on auto pilot until I decide to change it.

Pete, in his post above, has alerted me to some actual settings under the "Customize menu" that I was heretofore oblivious to...as yet I haven't studied it enough to tinker with the variables there, but will as time permits.
by Sailor24 on 2014/06/07 06:27:08 AM    
Not sure if I understand your point. You realize when you turn the BW limits off you disable the BW priority system, maybe that is part of what you were trying to get at?????

I am never going to seed a lot of torrents at this address. I only have 100 KB up or is it Kb. None the less I have about 100 torrents with 33 up at a time but the demand is limited so I only have 5 or so active at a time. So everyone gets 20 KB per torrent. All those are set to BN and being constant seeds. My files have very few seeds likely only one or 2 are available at a time. They need to get the files complete in a day or two or will quit. That is just a waste of my limited upload ability.

I use the feature for downloading mainly. There is a client or two out there that if you set them to AN they seem to set you to AN and this makes for fast downloads on congested torrents.
by Bugmagnet on 2014/06/10 01:07:08 AM    
follow it step by step

the point is that if the limit is set, but to a number higher than can actually be reached, the effect is different than when your actual capability (and the demand) is greater than the limit you set.

If you are not bumping the limit, then the spread of your UL BW is closer. But when you are actually pushing against the limit, then the assignment of priority has a markedly increased effect.




This web site is powered by Super Simple Server