[Bloat] Graph of bloat

Alan Jenkins alan.christopher.jenkins at gmail.com
Wed Jul 8 15:09:13 EDT 2015


On 08/07/15 17:29, Jan Ceuleers wrote:
> On 08/07/15 18:11, Jan Ceuleers wrote:
>> On 08/07/15 17:55, Dave Taht wrote:
>>> That is a very interesting graph! Does ntp adjust system time backward
>>> based on getting nearly all it's samples with well over a 1/2 second
>>> of induced delay?
>> If there is a consistent asymmetrical delay then yes.
> Let me qualify that "yes".
>
> Normally ntpd will ensure that the system time as observed by the kernel
> and applications always increases monotonically. The exception is where
> the system time differs too much from what ntpd considers to be the
> correct time and where ntpd is given permission to step the time (e.g.
> using the -g command-line switch). In this case ntpd can step backwards.

<googles>.  Ouch, I see Dave's point, I had hoped it was unfounded.

You don't mean -g, that applies to startup (the "panic threshold" offset 
of 1000 seconds).  Note startup also waits 900 seconds before allowing a 
step, explicitly in case of transient bufferbloat.

You mean "ntpd is given permission to step the time, by *not* passing -x".

    Normally, the time is slewed if the offset is less than the step
    threshold, which is 128 ms by default, and stepped if above the
    threshold.

(ow ow ow)

    [The -x] option sets the threshold to 600 s, which is well within
    the accuracy window to set the clock manually. Note: Since the slew
    rate of typical Unix kernels is limited to 0.5 ms/s, each second of
    adjustment requires an amortization interval of 2000 s. Thus, an
    adjustment as much as 600 s will take almost 14 days to complete.


I also looked at phk's blog for the ntimed project again. Apparently 
everyone filters ntp samples, which suggests massive delays would need 
to affect more than one sample/poll interval. But I don't know how many 
more than one, or what patterns it would filter in general.  (Would it 
miss bufferbloat less than some X but greater than the 128ms 
threshold?).  Apparently the filters are the hard part - makes sense but 
sounds like hard work to analyze.

http://phk.freebsd.dk/time/20141024.html

> What I meant in my previous message is that ntpd's idea of true time is
> arrived at based on the assumption that the network delay is the same in
> both directions to its servers. So if there is a systematically
> different delay in one direction relative to the other then this
> assumption falls down and ntpd's assessment of true time will be skewed.
>
> The huff-n-puff filter helps in cases where the asymmetry in the delay
> is not systematic, e.g. where the upstream channel does not suffer from
> bufferbloat.

I see that's a tinker option which is not enabled by default, requires 
manual tuning, is documented as experimental and being designed for 
dialup :-P.  IOW in a way it's less about bloat awareness and more the 
general problem with NTP (like other projects) being under-resourced 
global infrastructure...

PHK's post definitely suggests he's aware of asymmetry in delay events 
and exploiting it in the Ntimed filters.  OTOH the graphs there don't 
seem to represent much bufferbloat.  Maybe he could benefit from seeing 
Hal's awesome graph (and for context, the equally awesome graphs at 
http://www.dslreports.com/speedtest/results/bufferbloat).

Alan
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.bufferbloat.net/pipermail/bloat/attachments/20150708/1d102913/attachment-0002.html>


More information about the Bloat mailing list