How Linux Community Fixed Bufferbloat?

How Linux Community Fixed Bufferbloat?

How Linux community fixed Bufferbloat? Stephen Hemminger [email protected] #LinuxPiter BufferbloatBufferbloat ● What is the problem ● What causes the problem ● Solutions – Demonstration ● Recent Progress NetworkNetwork PerformancePerformance Fairness Throughput Latency Mbits/sec Round Trip Time HowHow badbad isis it?it? WhyWhy isis worseworse now?now? ● No longer in FTP universe ● TCP Initial Window Size = 10 ● Advanced TCP algorithms ● Network Offload packet trains ● Bad benchmarks ● Router/switch memory is cheap ● Everyone fears dropping packets HeadHead ofof LineLine blockingblocking QueuingQueuing TheoryTheory BasicsBasics utilization servicerate averagetimeinqueue= 1- utilization From Fred Baker: Bufferbloat! Graphic courtesy Sprint, Apricot 2004 Netalyzr:Netalyzr: DownstreamDownstream Netalyzr:Netalyzr: UpstreamUpstream TCPTCP throughputthroughput dynamicsdynamics effectivewindow meanthroughput = t meanroundtriptime u p h Bottleneck Capacity g u o r “knee” Queue “cliff” h T Depth e l b a r u s a e M g n i s a e r c n I Increasing TCP Window From Fred Baker: Bufferbloat! BlameBlame LinuxLinux ● Windows XP – Maximum window 64k ● Windows 7 – Bandwidth limit to 80 mbits ● Android – Receive window limited BlameBlame thethe customercustomer ● Customers call support ● Applications are using more bandwidth ● Block and charge WhyWhy Queueing?Queueing? PriorityPriority Queue:Queue: TheoryTheory PriorityPriority Queue:Queue: RealityReality HierarchicalHierarchical TokenToken BucketBucket RandomRandom EarlyEarly DetectDetect ExplicitExplicit CongestionCongestion NotificationNotification PACKETS IdealIdeal ActiveActive QueueQueue ManagementManagement ● Fair – All flows get some bandwidth ● Simple – No tuning ● Easy to deploy – No special hardware, no protocol changes ● Reasonable – Won't create multi-second latency StocasticStocastic FairFair QueueQueue CodelCodel PIEPIE CakeCake CoDel Fair Queue Priority Back to Reality BenchmarkBenchmark issuesissues ● Bad ● Good – Bytes/sec – Throughput + – Packes/sec Latency – Latency – Multiple connections – Real not simulated BetterBetter toolstools ● DSLreport's – http://www.dslreports.com/speedtest/ ● ICSI netalyzr – http://netalyzr.icsi.berkeley.edu/ ● Flent: The Flexible Network Tester – https://flent.org/ – RRUL - Real time Response Under Load DSLReportsDSLReports speedtestspeedtest 5 sec delay!! FIFOFIFO –– thethe defaultdefault Ping 1sec! Upload Download Høiland-Jørgensen T., Battling Bufferbloat StochasticStochastic FairFair QueueQueue Høiland-Jørgensen T., Battling Bufferbloat ControlledControlled DelayDelay -- codelcodel Høiland-Jørgensen T., Battling Bufferbloat FairFair QueueQueue ControlledControlled DelayDelay Høiland-Jørgensen T., Battling Bufferbloat RecentRecent OnceOnce youyou startstart looking,looking, BufferbloatBufferbloat cancan bebe everywhereeverywhere ● Edge – Home router ● Provider ● Network ● Accelerators – Caches – Load balancers,... ● Servers LinuxLinux BufferbloatBufferbloat fixes:fixes: 2011-20162011-2016 ● Linux 3.3: Byte Queue Limits ● Linux 3.4 RED bug fixes & IW10 added & SFQRED ● Linux 3.5 Fair/Flow Queuing packet scheduling (fq_codel, codel) ● Linux 3.7 TCP small queues (TSQ) ● Linux 3.12 TSO/GSO improvements ● Linux 3.13 Host FQ + Pacing (sch_fq) ● Linux 3.15 Change to microseconds from milliseconds throughout networking kernel ● Linux 3.17 Network Batching API ● The Linux stack is now mostly “pull through”, where it used to be “push”, and looks nothing like it did 6 years ago. ● At least a dozen other improvements I forget ● Linux 4.8 – TCP BBR … (and BSD just got fq_codel!) Basically – everything – except WiFi (and lte) can be debloated now. – And we just made a big dent in WiFi BufferbloatBufferbloat inin Wi-FiWi-Fi 1+sec1+sec latencylatency LinuxLinux 4.44.4 SubSub 40-ms40-ms LinuxLinux 4.9?4.9? HowHow isis BufferbloatBufferbloat SolvedSolved onon Linux?Linux? ● Queuing disciplines – Codel, PIE, ... ● Linux internal – BQL, FQ, Pacing ● Enable good defaults – ecn – fq_codel Questions? Thank you Stephen Hemminger @networkplumber [email protected] Bufferbloat resources Bufferbloat.net: http://bufferbloat.net Email Lists: http://lists.bufferbloat.net CeroWrt: http://www.bufferbloat.net/projects/cerowrt Other talks: http://mirrors.bufferbloat.net/Talks Jim Gettys Blog – http://gettys.wordpress.com A big thanks to the bloat mailing list, Jim, Kathie, Van, Dave, Eric, ISC, and all the other the CeroWrt/OpenWrt contributors .

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    43 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us