bill001g :
That option is mostly to prevent buffer bloat. It can fix problems for data like VoIP and games that have critical timing issues because it prevents TCP streams from hogging a link.
It does not fix the problem of UDP based file transfer like torrent . It also does not really give any type of data priority. It more or less gives everyone average.
What it mostly works for is TCP data transfers that tend to create the buffer bloat issue. It is forcing data to be lost rather that delayed which in turn allows the TCP session to detect this loss and reduce the rate they request data. This also causes packet loss in the UDP streams rather than delay. It works best when there are only a small number of tcp streams a large number still each get their so called fair share.
It really depends what your problem is. If you have torrent running there is little you can do to limit that because it is designed to get around limitations even by ISP.
Generally the method that works the best is to set a maximum rate for all other traffic that you do not want priority. If you had a 10m connection and you limit it to 6m for all non important traffic it would leave 4m for your important traffic. Again it really only works well for TCP traffic UDP is greatly dependent on the application and even some TCP server stack implementations are not always limited if they are tuned to be very aggressive on the tcp window size.
Bufferbloat is the entire issue, it's why VoIP and games "feel laggy". VoIP and UDP based games handle loss quite well, but they do not handle latency and jitter well.
Cake should replace HTB and fq_codel in the next year. It's almost done, then it's just a matter of getting merged in. Unlike fq_Codel, Cake has perfect flow isolation in all tested good-actor benchmarks and loadtests. May not work correctly under a DDOS. This means games and VoIP should, in theory, have less than a few ms of additional latency or jitter, and no loss, assuming there is actually enough bandwidth.