<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><br class=""><div><blockquote type="cite" class=""><div class="">On Feb 10, 2017, at 9:49 AM, Jonathan Morton <<a href="mailto:chromatix99@gmail.com" class="">chromatix99@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div class=""><br class=""><blockquote type="cite" class="">On 10 Feb, 2017, at 10:04, Pete Heist <<a href="mailto:peteheist@gmail.com" class="">peteheist@gmail.com</a>> wrote:<br class=""><br class="">I look forward to the throughput shifts being solved, where I see results like this:<br class=""><br class=""><a href="http://www.drhleny.cz/bufferbloat/cake_hd-eth-ap_100ms_80mbit/index.html" class="">http://www.drhleny.cz/bufferbloat/cake_hd-eth-ap_100ms_80mbit/index.html</a><br class=""></blockquote><br class="">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.<br class=""><br class="">If you can obtain a CPU profile of that workload on that hardware, that might help to direct those efforts.<br class=""><br class=""> - Jonathan Morton<br class=""></div></div></blockquote><br class=""></div><div>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:</div><div><br class=""></div><div><a href="http://www.drhleny.cz/bufferbloat/hostinfo/mbp_cpuinfo.txt" class="">http://www.drhleny.cz/bufferbloat/hostinfo/mbp_cpuinfo.txt</a></div><div><br class=""></div><div>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:</div><div><br class=""></div><div><a href="http://www.drhleny.cz/bufferbloat/cake_hd-eth-ap_10mbit/index.html" class="">http://www.drhleny.cz/bufferbloat/cake_hd-eth-ap_10mbit/index.html</a></div><div><br class=""></div><div><a href="http://www.drhleny.cz/bufferbloat/cake_hd-eth-ap_20mbit/index.html" class="">http://www.drhleny.cz/bufferbloat/cake_hd-eth-ap_20mbit/index.html</a></div><div><br class=""></div><div><a href="http://www.drhleny.cz/bufferbloat/cake_hd-eth-ap_30mbit/index.html" class="">http://www.drhleny.cz/bufferbloat/cake_hd-eth-ap_30mbit/index.html</a></div><div><br class=""></div><div><a href="http://www.drhleny.cz/bufferbloat/cake_hd-eth-ap_40mbit/index.html" class="">http://www.drhleny.cz/bufferbloat/cake_hd-eth-ap_40mbit/index.html</a></div><div><br class=""></div><div><a href="http://www.drhleny.cz/bufferbloat/cake_hd-eth-ap_50mbit/index.html" class="">http://www.drhleny.cz/bufferbloat/cake_hd-eth-ap_50mbit/index.html</a></div><div><br class=""></div><div><a href="http://www.drhleny.cz/bufferbloat/cake_hd-eth-ap_60mbit/index.html" class="">http://www.drhleny.cz/bufferbloat/cake_hd-eth-ap_60mbit/index.html</a></div><div><br class=""></div><div><a href="http://www.drhleny.cz/bufferbloat/cake_hd-eth-ap_70mbit/index.html" class="">http://www.drhleny.cz/bufferbloat/cake_hd-eth-ap_70mbit/index.html</a></div><div><br class=""></div><div><a href="http://www.drhleny.cz/bufferbloat/cake_hd-eth-ap_75mbit/index.html" class="">http://www.drhleny.cz/bufferbloat/cake_hd-eth-ap_75mbit/index.html</a></div><div><br class=""></div><div><a href="http://www.drhleny.cz/bufferbloat/cake_hd-eth-ap_80mbit/index.html" class="">http://www.drhleny.cz/bufferbloat/cake_hd-eth-ap_80mbit/index.html</a></div><div><br class=""></div><div><a href="http://www.drhleny.cz/bufferbloat/cake_hd-eth-ap_85mbit/index.html" class="">http://www.drhleny.cz/bufferbloat/cake_hd-eth-ap_85mbit/index.html</a></div><div><br class=""></div><div><a href="http://www.drhleny.cz/bufferbloat/cake_hd-eth-ap_90mbit/index.html" class="">http://www.drhleny.cz/bufferbloat/cake_hd-eth-ap_90mbit/index.html</a></div><div><br class=""></div><div><a href="http://www.drhleny.cz/bufferbloat/cake_hd-eth-ap_100mbit/index.html" class="">http://www.drhleny.cz/bufferbloat/cake_hd-eth-ap_100mbit/index.html</a></div><div><br class=""></div><div>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.</div><div><br class=""></div><div>Compare that to the results for HTB+fq_codel, which doesn’t show such shifts:</div><div><br class=""></div><div><a href="http://www.drhleny.cz/bufferbloat/fq_codel_hd-eth-ap_10mbit/index.html" class="">http://www.drhleny.cz/bufferbloat/fq_codel_hd-eth-ap_10mbit/index.html</a></div><div><br class=""></div><div><a href="http://www.drhleny.cz/bufferbloat/fq_codel_hd-eth-ap_20mbit/index.html" class="">http://www.drhleny.cz/bufferbloat/fq_codel_hd-eth-ap_20mbit/index.html</a></div><div><br class=""></div><div><a href="http://www.drhleny.cz/bufferbloat/fq_codel_hd-eth-ap_30mbit/index.html" class="">http://www.drhleny.cz/bufferbloat/fq_codel_hd-eth-ap_30mbit/index.html</a></div><div><br class=""></div><div><a href="http://www.drhleny.cz/bufferbloat/fq_codel_hd-eth-ap_40mbit/index.html" class="">http://www.drhleny.cz/bufferbloat/fq_codel_hd-eth-ap_40mbit/index.html</a></div><div><br class=""></div><div><a href="http://www.drhleny.cz/bufferbloat/fq_codel_hd-eth-ap_50mbit/index.html" class="">http://www.drhleny.cz/bufferbloat/fq_codel_hd-eth-ap_50mbit/index.html</a></div><div><br class=""></div><div><a href="http://www.drhleny.cz/bufferbloat/fq_codel_hd-eth-ap_60mbit/index.html" class="">http://www.drhleny.cz/bufferbloat/fq_codel_hd-eth-ap_60mbit/index.html</a></div><div><br class=""></div><div><a href="http://www.drhleny.cz/bufferbloat/fq_codel_hd-eth-ap_70mbit/index.html" class="">http://www.drhleny.cz/bufferbloat/fq_codel_hd-eth-ap_70mbit/index.html</a></div><div><br class=""></div><div><a href="http://www.drhleny.cz/bufferbloat/fq_codel_hd-eth-ap_75mbit/index.html" class="">http://www.drhleny.cz/bufferbloat/fq_codel_hd-eth-ap_75mbit/index.html</a></div><div><br class=""></div><div><a href="http://www.drhleny.cz/bufferbloat/fq_codel_hd-eth-ap_80mbit/index.html" class="">http://www.drhleny.cz/bufferbloat/fq_codel_hd-eth-ap_80mbit/index.html</a></div><div><br class=""></div><div><a href="http://www.drhleny.cz/bufferbloat/fq_codel_hd-eth-ap_85mbit/index.html" class="">http://www.drhleny.cz/bufferbloat/fq_codel_hd-eth-ap_85mbit/index.html</a></div><div><br class=""></div><div><a href="http://www.drhleny.cz/bufferbloat/fq_codel_hd-eth-ap_90mbit/index.html" class="">http://www.drhleny.cz/bufferbloat/fq_codel_hd-eth-ap_90mbit/index.html</a></div><div><br class=""></div><div><a href="http://www.drhleny.cz/bufferbloat/fq_codel_hd-eth-ap_100mbit/index.html" class="">http://www.drhleny.cz/bufferbloat/fq_codel_hd-eth-ap_100mbit/index.html</a></div><div><br class=""></div><div>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…</div><div><br class=""></div><div>Pete</div><div><br class=""></div></body></html>