
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 .
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages43 Page
-
File Size-