fq_codel is fq_codel from linux mainline, usually configured with a
300 byte quantum.

codel is linux codel

ns2_codel is derived from a smoother decay curve than codel from
patches posted on kathie's website.

nfq_codel is derived from ns2_codel, with an enhancement that rotates
the flow list on every packet,
thus behaving more like sfq_codel.

In at least one variant of cero a month or two back, I eliminated the
maxpacket check in nfq_codel
for which my hope was to not have to fiddle with the target. It helped
somewhat but also led to more
loss when I felt it shouldn't. I think I have a gentler version of
that but haven't implemented it. I would
really like to not have to fiddle with the target... but am growing
resigned to the idea that a real
solution incorporates the rate shaper directly into the Xfq_codel
algorithm so as to autotune it,
and perhaps reduce the number of flows under control.

(The original version of fq_codel (linux 3.5) suffered from the
horizontal standing queue problem,
where each flow at low speeds added more latency. (but low rate flows
were never dropped). I still
struggle with this tradeoff)

One thing to note in rich's graphs is flow preservation is better at
the lower speeds - you have more
of the measurement flows survive longer. This is something you'll also
see in nfq_codel.

I think rich's upstream and measurement stream results will be better
with target 20ms on egress. They will still plot -p all_scaled
badly, and to get a decent plot would require reprocessing with the -p
totals plot type.


On Sun, Mar 2, 2014 at 1:51 PM, Aaron Wood <[email protected]> wrote:
> Is there a writeup on each of the fq_codel variants?
>
> -Aaron
>
> Sent from my iPhone
>
>> On Mar 2, 2014, at 22:41, Dave Taht <[email protected]> wrote:
>>
>> Nice work!
>>
>> I have a problem in that I can't remember if target autotuning made it
>> into that release or not.
>>
>> Coulde you do a tc -s qdisc show dev ge00 on your favorite of the
>> above and paste? I still think
>> target is still too low on the egress side with the current calculation.
>>
>> Secondly, now that you have a setting you like, trying pie, codel, and
>> ns2_codel also would be interesting.
>>
>> efq_codel is currently uninteresting. Wasn't clear if you were using
>> nfq_codel or fq_codel throughout.
>>
>>
>>> On Sun, Mar 2, 2014 at 1:18 PM, Rich Brown <[email protected]> wrote:
>>> I took some time this weekend, and ran careful speed and latency tests on 
>>> the CeroWrt 3.10.28-16 build. I have a much better understanding of how all 
>>> this works, both in theory and in practice. Here's an executive summary of 
>>> the overall test procedure with lots of details below.
>>>
>>> Adjusting CeroWrt's configured up- and download rates in the SQM page 
>>> affects both the actual data transfer rates as well as the latency. If you 
>>> set the values too low, CeroWrt will enforce that bottleneck, and the 
>>> transfer rates will be lower than you could attain on your link. If you 
>>> configure them too high, though, the transfer rates may look better, but 
>>> the latency can go off the charts. Here's how I arrived at a good balance.
>>>
>>> Test Conditions:
>>>
>>> - Running tests from my MacBook Pro, 10.9.2.
>>> - Wi-Fi off; ethernet cable direct to Netgear WNDR3700v2 with CeroWrt 
>>> 3.10.28-16.
>>> - DSL service from Fairpoint, nominally "7 Mbps down/768kbps up".
>>> - DSL Modem sync rate (the actual rate that bits enter/leave my house) is 
>>> 7616kbps down; 864kbps up. The line is apparently fairly clean, too.
>>> - Base ping time to the nearest router at ISP (via traceroute) is 29-30 
>>> msec.
>>> - To minimize other traffic, I turned off most of the computers at home, 
>>> and also quit my mail client (which is surprisingly chatty).
>>>
>>> The Tests:
>>>
>>> I ran two different tests: netperf-wrapper with the RRUL test, and 
>>> speedtest.net. These give very different views of performance. RRUL really 
>>> stresses the line using multiple simultaneous up and download streams. 
>>> Speedtest.net is a consumer test that only tests one direction at a time, 
>>> and for a short time. We want to look good with both.
>>>
>>> For the RRUL tests, I invoked netperf-wrapper like this: netperf-wrapper 
>>> rrul -p all_scaled -l 60 -H atl.richb-hanover.com -t text-shown-in-chart
>>> For the Speedtest.net tests, I used their web GUI in the obvious way.
>>>
>>> For both tests, I used a script (pingstats.sh, see my next message) to 
>>> collect the ping times and give min, max, average, median, and 10th and 
>>> 90th percentile readings.
>>>
>>> Test Procedure:
>>>
>>> I ran a series of tests starting with the up/down link rates spelled out by 
>>> Sebastian Moeller's amazingly detailed note last week. See 
>>> https://lists.bufferbloat.net/pipermail/cerowrt-devel/2014-February/002375.html
>>>  Read it carefully. There's a lot of insight available there.
>>>
>>> The initial configuration was 6089/737 down/up, with the (nearly default) 
>>> values for Queue Discipline (nfq_codel, simple.qos, ECN on for ingress; 
>>> NOECN for egress, auto for both ingress and egress latency targets), and 
>>> ATM link layer with 44 bytes of overhead.
>>>
>>> With those initial configuration values, latency was good but the speeds 
>>> were disappointing. I then re-ran the tests with CeroWrt configured for 
>>> higher up/down link speeds to see where things broke.
>>>
>>> Things got better and better with increasing link rates until I hit 
>>> 7600/850 - at that point, latency began to get quite large. (Of course, 
>>> with SQM disabled, the latency got dreadful.)
>>>
>>> There was an anomaly at 7000/800 kbps. The 90th percentile and max numbers 
>>> jumped up quite a lot, but went *down* for the next test in the sequence 
>>> when I increased the upload speed to 7000/830. I ran the experiment twice 
>>> to confirm that behavior.
>>>
>>> I should also note that in the course of the experiment, I re-ran many of 
>>> these tests. Although I did not document each of the runs, the results 
>>> (speedtest.net rates and the pingstats.sh values) were quite consistent and 
>>> repeatable.
>>>
>>> Conclusion:
>>>
>>> I'm running with CeroWrt 3.10.28-16 configured for down/up 7000/830, 
>>> (nearly) default Queue Discipline and ATM+44 bytes of overhead. With these 
>>> configurations, latency is well in hand and my network is pretty speedy.
>>>
>>> We need to figure out how to explain to people what to expect re: the 
>>> tradeoff between "faster speeds" that show up in Speedtest.net (with 
>>> accompanying crappy performance) and slightly slower speeds with a *way* 
>>> better experience.
>>>
>>> The data follows...
>>>
>>> Rich
>>>
>>> ================================================================
>>>
>>> RRUL Tests:  The charts associated with these RRUL runs are all available 
>>> at http://richb-hanover.com/rrul-tests-cerowrt-3-10-28-16/
>>>
>>> 6089/737:
>>>        Min: 28.936 10pct: 29.094 Avg: 40.529 Median: 37.961 90pct: 52.636 
>>> Max: 77.171 Num pings: 77
>>>
>>> 6200/750:
>>>        Min: 28.715 10pct: 29.298 Avg: 41.805 Median: 39.826 90pct: 57.414 
>>> Max: 72.363 Num pings: 77
>>>
>>> 6400/800:
>>>        Min: 28.706 10pct: 29.119 Avg: 39.598 Median: 38.428 90pct: 52.351 
>>> Max: 69.492 Num pings: 78
>>>
>>> 6600/830:
>>>        Min: 28.485 10pct: 29.114 Avg: 41.708 Median: 39.753 90pct: 57.552 
>>> Max: 87.328 Num pings: 77
>>>
>>> 7000/800:
>>>        Min: 28.570 10pct: 29.180 Avg: 46.245 Median: 42.684 90pct: 62.376 
>>> Max: 169.991 Num pings: 77
>>>        Min: 28.775 10pct: 29.226 Avg: 43.628 Median: 40.446 90pct: 60.216 
>>> Max: 121.334 Num pings: 76 (2nd run)
>>>
>>> 7000/830:
>>>        Min: 28.942 10pct: 29.285 Avg: 44.283 Median: 45.318 90pct: 58.002 
>>> Max: 85.035 Num pings: 78
>>>        Min: 28.951 10pct: 29.479 Avg: 43.182 Median: 41.000 90pct: 57.570 
>>> Max: 74.964 Num pings: 76 (2nd run)
>>>
>>> 7600/850:
>>>        Min: 28.756 10pct: 29.078 Avg: 55.426 Median: 46.063 90pct: 81.847 
>>> Max: 277.807 Num pings: 84
>>>
>>> SQM Disabled:
>>>        Min: 28.665 10pct: 29.062 Avg: 1802.521 Median: 2051.276 90pct: 
>>> 2762.941 Max: 4217.644 Num pings: 78
>>>
>>> ================================================================
>>>
>>> Speedtest.net: First values are the reported down/up rates in the Speedtest 
>>> GUI
>>>
>>> 6089/737:
>>>        5.00/0.58
>>>        Min: 28.709 10pct: 28.935 Avg: 33.416 Median: 31.619 90pct: 38.608 
>>> Max: 49.193 Num pings: 45
>>>
>>> 6200/750:
>>>        5.08/0.58
>>>        Min: 28.759 10pct: 29.055 Avg: 33.974 Median: 32.584 90pct: 41.938 
>>> Max: 46.605 Num pings: 44
>>>
>>> 6400/800:
>>>        5.24/0.60
>>>        Min: 28.447 10pct: 28.826 Avg: 34.675 Median: 31.155 90pct: 41.285 
>>> Max: 81.503 Num pings: 43
>>>
>>> 6600/830:
>>>        5.41/0.65
>>>        Min: 28.868 10pct: 29.053 Avg: 35.158 Median: 32.928 90pct: 44.099 
>>> Max: 51.571 Num pings: 44
>>>
>>> 7000/800:
>>>        5.73/0.62
>>>        Min: 28.359 10pct: 28.841 Avg: 35.205 Median: 33.620 90pct: 43.735 
>>> Max: 54.812 Num pings: 44
>>>
>>> 7000/830:
>>>        5.74/0.65 (5.71/0.62 second run)
>>>        Min: 28.605 10pct: 29.055 Avg: 34.945 Median: 31.773 90pct: 42.645 
>>> Max: 54.077 Num pings: 44
>>>        Min: 28.649 10pct: 28.820 Avg: 34.866 Median: 32.398 90pct: 43.533 
>>> Max: 69.288 Num pings: 56 (2nd run)
>>>
>>> 7600/850:
>>>        6.20/0.67
>>>        Min: 28.835 10pct: 28.963 Avg: 36.253 Median: 34.912 90pct: 44.659 
>>> Max: 54.023 Num pings: 48
>>>
>>> SQM Disabled:
>>>        6.46/0.73
>>>        Min: 28.452 10pct: 28.872 Avg: 303.754 Median: 173.498 90pct: 
>>> 499.678 Max: 1799.814 Num pings: 45
>>> _______________________________________________
>>> Cerowrt-devel mailing list
>>> [email protected]
>>> https://lists.bufferbloat.net/listinfo/cerowrt-devel
>>
>>
>>
>> --
>> Dave Täht
>>
>> Fixing bufferbloat with cerowrt: 
>> http://www.teklibre.com/cerowrt/subscribe.html
>> _______________________________________________
>> Cerowrt-devel mailing list
>> [email protected]
>> https://lists.bufferbloat.net/listinfo/cerowrt-devel



-- 
Dave Täht

Fixing bufferbloat with cerowrt: http://www.teklibre.com/cerowrt/subscribe.html
_______________________________________________
Cerowrt-devel mailing list
[email protected]
https://lists.bufferbloat.net/listinfo/cerowrt-devel

Reply via email to