[Codel] missing part of section 6.2 of draft-nichols-tsvwg-codel-02
Kathleen Nichols
nichols at pollere.com
Tue Mar 11 18:32:29 EDT 2014
It has come to my attention that part of section 6.2 of the draft is
missing, apparently due
to passing through several programs in order to conform to the holy
Internet Draft format.
Since the missing part is quite interesting, here it is.
When people without time to mess around with this archaic stuff stop
doing Internet Drafts, the IETF will then only have drafts by people
with time to mess around with this
archaic stuff.
Here is how it should read (points a, b, and c were missing):
6.2 CoDel in the datacenter
Nandita Dukkipati’s team at Google was quick to realize that the CoDel
building blocks could be applied to bufferbloat problems in datacenter
servers, not just to Internet routers. The Linux CoDel queueing
discipline (Qdisc) was adapted in three ways to tackle this bufferbloat
problem.
a) The default CoDel action was modified to be a direct feedback from
Qdisc to the TCP layer at dequeue. The direct feedback simply reduces
TCP’s congestion window just as congestion control would do in the event
of drop. The scheme falls back to ECN marking or packet drop if the TCP
socket lock could not be acquired at dequeue.
b) Being located in the server makes it possible to monitor the actual
RTT to use as CoDel’s interval rather than making a “best guess” of RTT.
The CoDel interval is dynamically adjusted by using the maximum TCP
round-trip time (RTT) of those connections sharing the same
Qdisc/bucket. In particular, there is a history entry of the maximum RTT
experienced over the last second. As a packet is dequeued, the RTT
estimate is accessed from its TCP socket. If the estimate is larger than
the current CoDel interval, the CoDel interval is immediately refreshed
to the new value. If the CoDel interval is not refreshed for over a
second, it is decreased it to the history entry and the process
repeated. The use of the dynamic TCP RTT estimate lets interval adapt to
the actual maximum value currently seen and thus lets the controller
space its drop intervals appropriately.
c) Since the mathematics of computing the set point are invariant, a
target of 5% of the RTT or CoDel interval was used here.
Non-data packets were not dropped as these are typically small and
sometimes critical control packets. Being located on the server, there
is no concern with misbehaving users scamming such a policy as there
would be in an Internet router.
In several data center workload benchmarks, which are typically bursty,
CoDel reduced the queueing latencies at the Qdisc, and thereby improved
the mean and 99 percentile latencies from several tens of milliseconds
to less than one millisecond. The minimum tracking part of the CoDel
framework proved useful in disambiguating “good” queue versus “bad”
queue, particularly helpful in controlling Qdisc buffers that are
inherently bursty because of TCP Segmentation Offload.
More information about the Codel
mailing list