The State of the Art in Bufferbloat Testing and Reduction on Linux

Similar documents
Steady state, fairness and transient behaviour of modern AQMs

The Case for Comprehensive

ENDING THE ANOMALY ACHIEVING LOW LATENCY AND AIRTIME FAIRNESS IN WIFI

Inside Codel and Fq Codel

QUIC. Internet-Scale Deployment on Linux. Ian Swett Google. TSVArea, IETF 102, Montreal

Grandstream Networks, Inc. GWN7000 QoS - VoIP Traffic Management

Kathie Nichols CoDel. present by Van Jacobson to the IETF-84 Transport Area Open Meeting 30 July 2012 Vancouver, Canada

Reducing Lag under Load with FQ_Codel. Dave Taht Co-Founder, Bufferbloat.net

The Controlled Delay (CoDel) AQM Approach to fighting bufferbloat

Quality of Service Mechanism for MANET using Linux Semra Gulder, Mathieu Déziel

XCo: Explicit Coordination for Preventing Congestion in Data Center Ethernet

Network Management & Monitoring

Measuring Application's network behaviour

TCP in 5G mmwave Networks: Link Level Retransmissions. and MP-TCP

Linux Traffic Control

Advanced Computer Networking. CYBR 230 Jeff Shafer University of the Pacific QUIC

A Network-centric TCP for Interactive Video Delivery Networks (VDN)

Piece of CAKE: A Comprehensive Queue Management Solution for Home Gateways

Sebastian Zander, Grenville Armitage. Centre for Advanced Internet Architectures (CAIA) Swinburne University of Technology

Measuring and Modeling of Open vswitch Performance Implementation in KVM environment

46PaQ. Dimitris Miras, Saleem Bhatti, Peter Kirstein Networks Research Group Computer Science UCL. 46PaQ AHM 2005 UKLIGHT Workshop, 19 Sep

Kernel Korner. Analysis of the HTB Queuing Discipline. Yaron Benita. Abstract

Chapter 4. Routers with Tiny Buffers: Experiments. 4.1 Testbed experiments Setup

Lighting the Blue Touchpaper for UK e-science - Closing Conference of ESLEA Project The George Hotel, Edinburgh, UK March, 2007

Using Dummynet AQM - FreeBSD s CoDel, PIE, FQ-CoDel and FQ-PIE with TEACUP v1.0 testbed

The Future of High-Performance Networking (The 5?, 10?, 15? Year Outlook)

Traffic Characteristics of Bulk Data Transfer using TCP/IP over Gigabit Ethernet

High bandwidth, Long distance. Where is my throughput? Robin Tasker CCLRC, Daresbury Laboratory, UK

Description Approach Packet Loss Effect Traffic Control Experimentation Conclusions. Mice and Elephants. Ioannis Giannoualtos

September 2014 doc.: IEEE /1265r0 Fast Date:

DiffServ over MPLS: Tuning QOS parameters for Converged Traffic using Linux Traffic Control

TCP/misc works. Eric Google

ECE 697J Advanced Topics in Computer Networks

Transport Protocols for Data Center Communication. Evisa Tsolakou Supervisor: Prof. Jörg Ott Advisor: Lect. Pasi Sarolahti

Performance Evaluation of NEMO Basic Support Implementations

Dummynet AQM v0.1 CoDel and FQ-CoDel for FreeBSD s ipfw/dummynet framework

PIE: A lightweight latency control to address the buffer problem issue

Fundamental Questions to Answer About Computer Networking, Jan 2009 Prof. Ying-Dar Lin,

DiffServ over MPLS: Tuning QOS parameters for Converged Traffic using Linux Traffic Control

Disclaimer This presentation may contain product features that are currently under development. This overview of new technology represents no commitme

1. Arista 7124s Switch Report

Can Congestion-controlled Interactive Multimedia Traffic Co-exist with TCP? Colin Perkins

Optimizing your virtual switch for VXLAN. Ron Fuller, VCP-NV, CCIE#5851 (R&S/Storage) Staff Systems Engineer NSBU

estadium Project Lab 2: Iperf Command

Multimedia Communication. Project 6: Intelligent DiffServ

CSC 4900 Computer Networks: Network Layer

Why Your Application only Uses 10Mbps Even the Link is 1Gbps?

IX: A Protected Dataplane Operating System for High Throughput and Low Latency

Setting-up WAN Emulation using WAN-Bridge Live-CD v1.10

Implementing Active Queue Management at the home to reduce NBN speed demands

Multi-class Applications for Parallel Usage of a Guaranteed Rate and a Scavenger Service

Radon: Network QoS. Andrew Shewmaker Carlos Maltzahn Katia Obraczka Scott Brandt Ivo Jimenez. UC Santa Cruz Graduate Studies in Computer Science

Network Design Considerations for Grid Computing

Activity-Based Congestion Management for Fair Bandwidth Sharing in Trusted Packet Networks

Battlemesh Test Documentation Documentation

Week 7: Traffic Models and QoS

Data Center Networks and Switching and Queueing and Covert Timing Channels

Reliable File Transfer

A DiffServ transport network to bring 3G access to villages in the Amazon forest: a case study

Chapter 4 Network Layer: The Data Plane

TCP SIAD: Congestion Control supporting Low Latency and High Speed

Congestion Control for High Bandwidth-delay Product Networks. Dina Katabi, Mark Handley, Charlie Rohrs

QuickSpecs. HP Z 10GbE Dual Port Module. Models

Chair for Network Architectures and Services Prof. Carle Department of Computer Science Technische Universität München.

The effect of layer-2 store-and-forward devices. per-hop capacity estimation. Ravi S. Prasad, Constantinos Dovrolis

Improving Internet Congestion Control and Queue Management Algorithms. Wu-chang Feng March 17, 1999 Final Oral Examination

Advanced Lab in Computer Communications Meeting 6 QoS. Instructor: Tom Mahler

TCP Congestion Control Beyond Bandwidth-Delay Product for Mobile Cellular Networks

Comparing TCP performance of tunneled and non-tunneled traffic using OpenVPN. Berry Hoekstra Damir Musulin OS3 Supervisor: Jan Just Keijser Nikhef

BBR Congestion Control: IETF 100 Update: BBR in shallow buffers

Data center Networking: New advances and Challenges (Ethernet) Anupam Jagdish Chomal Principal Software Engineer DellEMC Isilon

Investigating the Use of Synchronized Clocks in TCP Congestion Control

CSCI-GA Operating Systems. Networking. Hubertus Franke

Lecture 3. The Network Layer (cont d) Network Layer 1-1

Measuring MPLS overhead

TCP LoLa Toward Low Latency and High Throughput Congestion Control

Optimizing Performance: Intel Network Adapters User Guide

ECE 435 Network Engineering Lecture 17

Lecture 21: Congestion Control" CSE 123: Computer Networks Alex C. Snoeren

Quality of Service Analysis for CloudMAC

Multipath QUIC: Design and Evaluation

Performance of Wireless IEEE e-Based Devices with Multiple Hardware Queues

Analysis. Group 5 Mohammad Ahmad Ryadh Almuaili

Designing a Resource Pooling Transport Protocol

TCP Throughput Testing

QoS on Low Bandwidth High Delay Links. Prakash Shende Planning & Engg. Team Data Network Reliance Infocomm

IBM POWER8 100 GigE Adapter Best Practices

Internet Engineering Task Force (IETF) Category: Informational. Juniper Networks May 2017

EECS 3214 Final Exam Winter 2017 April 19, 2017 Instructor: S. Datta. 3. You have 180 minutes to complete the exam. Use your time judiciously.

Path Awareness and Selection in the Socket Intents prototype. Theresa Enghardt TU Berlin

Performance and Scalability of WebRTC

CHAPTER 3 GRID MONITORING AND RESOURCE SELECTION

Internet data transfer record between CERN and California. Sylvain Ravot (Caltech) Paolo Moroni (CERN)

Optimizing TCP Receive Performance

Internet Layers. Physical Layer. Application. Application. Transport. Transport. Network. Network. Network. Network. Link. Link. Link.

Much Faster Networking

Experiments on TCP Re-Ordering March 27 th 2017

Dropping Packets in Ubuntu Linux using tc and iptables

Quality of Service Support for CloudMAC

Latency in DOCSIS Networks

Transcription:

The State of the Art in Bufferbloat Testing and Reduction on Linux Toke Høiland-Jørgensen Roskilde University IETF 86, 12th March 2013 1 / 31

Outline Introduction Recent changes in the Linux kernel Testing methodology and best practices Test results 2 / 31

Introduction 3 / 31

Spoiler Effects of bufferbloat mitigation - RRUL test 10 08 Latency during four TCP strea in each direction You could be here Ping () - fq_codel qdisc Ping () - sfq qdisc Ping () - codel qdisc Ping () - pfifo_fast qdisc Cumulative probability 06 04 02 You are here 00 10 3 Note the log scale 4 / 31

The research behind this Experiments done as part of university project Three computers networked in lab setup Switch the active qdisc and compare results Goal: Real-world measurements on shipped Linux kernel Test setup Test client Test server 100 mbit ethernet 10 mbit ethernet 5 / 31

Recent changes in the Linux kernel 6 / 31

Byte Queue Limits (BQL) Introduced in Linux 33, by Tom Herbert of Google Sits between traffic control subsystem and device drivers Requires driver support (ongoing effort) Keeps track of number of bytes queued in the driver Addresses variability of packet sizes (64 bytes up to 4KiB w/tso) Unneeded in the presence of software rate limiting 7 / 31

TCP Small Queues (TSQ) Introduced in Linux 36 by Eric Dumazet Enhancement to the TCP stack (ie above the traffic control layer) Makes the TCP stack aware of when packets leave the system Sets a configurable limit (default 128KiB) of bytes in transit in lower layers After this limit, keeps the packets at the TCP layer This allows for more timely feedback to the TCP stack 8 / 31

New queueing disciplines Straight CoDel implementation in the codel qdisc Enhancements to the Stochastic Fairness Queueing (sfq) qdisc Optional head drop, more hash buckets, no permutation Combination of CoDel and DRR fairness queueing in the fq_codel qdisc Prioritises thin flows This is currently the best bufferbloat mitigation qdisc in mainline Linux 9 / 31

Testing methodology and best practices 10 / 31

Testing methodology Basically: Load up the bottleneck link, measure latency Useful tools: netperf, iperf, ping, fping Use mtr to locate bottleneck hop Or use netperf-wrapper to automate tests! 11 / 31

The netperf-wrapper testing tool Python wrapper to benchmarking tools (mostly netperf) Runs concurrent tool instances, aggregates the results Output and intermediate storage is JSON Exports to CSV Graphing through python matplotlib Tests specified through configuration files (in Python) Common tests included (such as RRUL) Developed and tested on Linux One or two issues on FreeBSD (WiP) Install: pip install netperf-wrapper Netperf 26+ 12 / 31

The RRUL test Runs four concurrent TCP strea in each direction Each stream with different diffserv marking Simultaneously measures UDP and ICMP ping times Supports IPv4 and IPv6 Variants that measure v4 vs v6 and RTT fairness The four strea pretty reliably loads any link to capacity This is a simple and effective way of finding bufferbloat netperf-wrapper -H <test server> rrul Works well as a backdrop for testing other stuff The Chrome benchmark works well for websites 13 / 31

Best configuration practices Disable offloads (esp TSO/GSO) Modern CPUs can handle up to gigabit speeds without it No offloads means better interleaving lower latency Lower BQL limit BQL defaults developed and tuned at 1Gbit/s+ 1514 (ethernet MTU + header) works well up to 10Mbit/s 3028 up to 100Mbit/s But further work is needed in this area Make sure driver(s) are BQL-enabled BQL is Ethernet only, and not all drivers are updated Esp many SOCs have drivers without BQL 14 / 31

Pause frames and/or excess buffering 15 / 31 Best configuration practices (cont) If using netem to introduce latency, use a separate middlebox In particular, netem does not work in combination with other qdiscs Change qdiscs at the right place - at the bottleneck! Or use software rate limiting (eg htb) to move the bottleneck Beware of buffers at lower layers Non-Ethernet drivers (DSL etc) Buffering in error correction layers (eg 80211n, 3g, LTE) Even htb buffers an extra packet (fq)codel doesn t know about buffers at lower levels Beware the cheap switches

Test results 16 / 31

Two TCP strea + ping - pfifo_fast 10 3 Mbits/s pfifo_fast 0 0 30 40 50 60 70 Download bandwidth Upload bandwidth Ping () 17 / 31

Two TCP strea + ping - codel 10 3 Mbits/s codel 0 0 30 40 50 60 70 Download bandwidth Upload bandwidth Ping () 18 / 31

Two TCP strea + ping - sfq 10 3 Mbits/s 10 sfq 0 0 0 30 40 50 60 70 Download bandwidth Upload bandwidth Ping () 19 / 31

Two TCP strea + ping - fq_codel 10 3 Mbits/s 10 fq_codel 0 0 0 30 40 50 60 70 Download bandwidth Upload bandwidth Ping () 20 / 31

Two TCP strea + ping - comparison 10 3 10 3 Mbits/s Mbits/s pfifo_fast 0 0 30 40 50 60 70 10 3 10 codel 0 0 0 30 40 50 60 70 10 3 Mbits/s Mbits/s sfq 0 0 30 40 50 60 70 fq_codel 0 0 30 40 50 60 70 Download bandwidth Upload bandwidth Ping () 21 / 31

Two TCP strea + ping - CDF 10 08 Cumulative probability 06 04 02 two strea 00 0 0 30 40 50 60 70 Ping () - fq_codel qdisc Ping () - sfq qdisc Ping () - codel qdisc 22 / 31

RRUL test - pfifo_fast Mbits/s down 26 24 22 20 18 16 14 Mbits/s up 30 28 26 24 22 20 18 16 pfifo_fast 0 0 30 40 50 60 70 23 / 31

RRUL test - codel Mbits/s down Mbits/s up 28 26 24 22 20 18 16 14 30 28 26 24 22 20 18 16 codel 0 0 30 40 50 60 70 24 / 31

RRUL test - sfq Mbits/s down Mbits/s up 26 24 22 20 18 16 14 30 28 26 24 22 20 18 16 sfq 0 0 30 40 50 60 70 25 / 31

RRUL test - fq_codel Mbits/s down Mbits/s up 26 24 22 20 18 16 14 28 26 24 22 20 18 fq_codel 0 0 30 40 50 60 70 26 / 31

RRUL test - comparison Mbits/s down Mbits/s up 26 24 22 20 18 16 14 30 28 26 24 22 20 18 16 Mbits/s up Mbits/s down 28 26 24 22 20 18 16 14 30 28 26 24 22 20 18 16 Mbits/s up Mbits/s down 26 24 22 20 18 16 14 30 28 26 24 22 20 18 16 pfifo_fast 0 0 30 40 50 60 70 Mbits/s up Mbits/s down 26 24 22 20 18 16 14 28 26 24 22 20 18 codel 0 0 30 40 50 60 70 sfq 0 0 30 40 50 60 70 fq_codel 0 0 30 40 50 60 70 27 / 31

RRUL test - CDF 10 08 Cumulative probability 06 04 02 RRUL 00 0 0 30 40 50 60 70 80 Ping () - fq_codel qdisc Ping () - sfq qdisc Ping () - codel qdisc 28 / 31

CDF UDP flood 10 08 Cumulative probability 06 04 02 00 UDP flood 10 3 10 4 Ping () - fq_codel qdisc Ping () - sfq qdisc Ping () - codel qdisc 29 / 31

References BQL: https://lwnnet/articles/454390/ netperf: http://wwwnetperforg/netperf/ netperf-wrapper: https://githubcom/tohojo/netperf-wrapper Paper on experiments: http://akirarucdk/~tohojo/bufferbloat/bufferbloat-paperpdf RRUL test spec draft: https://githubcom/dtaht/debloat/blob/master/spec/rruledoc Best practices: https://wwwbufferbloatnet/projects/codel/wiki/ Best_practices_for_benchmarking_Codel_and_FQ_Codel My email address: toke@tokedk 30 / 31

Questions? Questions? Comments? 31 / 31