On Feb 10, 2017, at 9:49 AM, Jonathan Morton <chromatix99@gmail.com> wrote:


On 10 Feb, 2017, at 10:04, Pete Heist <peteheist@gmail.com> wrote:

I look forward to the throughput shifts being solved, where I see results like this:

http://www.drhleny.cz/bufferbloat/cake_hd-eth-ap_100ms_80mbit/index.html

That basically looks like it’s run out of CPU, so there’s hard choices to make over CPU allocation.  Cake isn’t responsible for that allocation, though it *might* be possible to optimise its use of the CPU a little further.

If you can obtain a CPU profile of that workload on that hardware, that might help to direct those efforts.

- Jonathan Morton

I’d be surprised if that were a CPU problem in this case, as that test was run with Cake on a 2.4 GHz Core 2 Duo, not so new, but far more powerful than a typical embedded CPU. Here’s the CPU info:

http://www.drhleny.cz/bufferbloat/hostinfo/mbp_cpuinfo.txt

Here are the results at various bitrates (all half-duplex rate limiting on this CPU). I find it easiest to just open them in multiple browser tabs and keyboard shift between them to compare:

http://www.drhleny.cz/bufferbloat/cake_hd-eth-ap_10mbit/index.html

http://www.drhleny.cz/bufferbloat/cake_hd-eth-ap_20mbit/index.html

http://www.drhleny.cz/bufferbloat/cake_hd-eth-ap_30mbit/index.html

http://www.drhleny.cz/bufferbloat/cake_hd-eth-ap_40mbit/index.html

http://www.drhleny.cz/bufferbloat/cake_hd-eth-ap_50mbit/index.html

http://www.drhleny.cz/bufferbloat/cake_hd-eth-ap_60mbit/index.html

http://www.drhleny.cz/bufferbloat/cake_hd-eth-ap_70mbit/index.html

http://www.drhleny.cz/bufferbloat/cake_hd-eth-ap_75mbit/index.html

http://www.drhleny.cz/bufferbloat/cake_hd-eth-ap_80mbit/index.html

http://www.drhleny.cz/bufferbloat/cake_hd-eth-ap_85mbit/index.html

http://www.drhleny.cz/bufferbloat/cake_hd-eth-ap_90mbit/index.html

http://www.drhleny.cz/bufferbloat/cake_hd-eth-ap_100mbit/index.html

There are strange shifts at 30 Mbit, 40 Mbit and 70 Mbit, but I think this hardware should be able to handle those speeds. It’s interesting that the throughput shifts don’t seem to affect the latency.

Compare that to the results for HTB+fq_codel, which doesn’t show such shifts:

http://www.drhleny.cz/bufferbloat/fq_codel_hd-eth-ap_10mbit/index.html

http://www.drhleny.cz/bufferbloat/fq_codel_hd-eth-ap_20mbit/index.html

http://www.drhleny.cz/bufferbloat/fq_codel_hd-eth-ap_30mbit/index.html

http://www.drhleny.cz/bufferbloat/fq_codel_hd-eth-ap_40mbit/index.html

http://www.drhleny.cz/bufferbloat/fq_codel_hd-eth-ap_50mbit/index.html

http://www.drhleny.cz/bufferbloat/fq_codel_hd-eth-ap_60mbit/index.html

http://www.drhleny.cz/bufferbloat/fq_codel_hd-eth-ap_70mbit/index.html

http://www.drhleny.cz/bufferbloat/fq_codel_hd-eth-ap_75mbit/index.html

http://www.drhleny.cz/bufferbloat/fq_codel_hd-eth-ap_80mbit/index.html

http://www.drhleny.cz/bufferbloat/fq_codel_hd-eth-ap_85mbit/index.html

http://www.drhleny.cz/bufferbloat/fq_codel_hd-eth-ap_90mbit/index.html

http://www.drhleny.cz/bufferbloat/fq_codel_hd-eth-ap_100mbit/index.html

But if you still think that could be the CPU, I can try to get a CPU profile, if you can direct me on how to do that for Cake…

Pete