FAB: Towards Flow-aware Bu fg er Sharing in Programmable Switches Maria Apostolaki Joint work with Laurent Vanbever & Manya Ghobadi
An old story…
An old story… Fan-in causing queue built-up … Switch … Senders Receivers
An old story… Fan-in causing drops Drops … Switch … Senders Receivers
An old story… Drops increase Flow Completion Times Drops … Switch … High SLA Drops tail FCT violations
An old story… Multiple approaches to address this issue Active Queue Management Drops … TCP Version Switch Scheduling …
An old story… Multiple approaches to address this issue Active Queue Management Drops … TCP Version Switch Scheduling …
An old story… Multiple approaches to address this issue Active Queue Management Drops … TCP Version Switch Scheduling …
An old story… Multiple approaches to address this issue Active Queue Management Drops … TCP Version Switch Scheduling …
Bu fg er management : the algorithm according to which ports/queues of a device share a common bu fg er
Bu fg er management : the algorithm according to which ports/queues of a device share a common bu fg er Most of today’s devices have a shared bu fg er to absorb bursts
How many packets can each port store in the common bu fg er? … Switch …
How many packets can each port store in the common bu fg er? remaining excessive packets will be dropped … Switch …
How many packets can each port store in the common bu fg er? remaining excessive packets will be dropped … Switch Let’s give… … …half of the bu fg er to each port! …small fraction to each port!
FAB: Towards Flow-aware Bu fg er Sharing in Programmable Switches Joint work with Laurent Vanbever & Manya Ghobadi
Outline Background FAB Initial Results Practicality
Outline Background FAB Initial Results Practicality
Three common bu fg er management techniques with pros & cons Complete Partitioning: works for balanced tra ffj c wastes bu fg er otherwise statically allocated bu fg er space per port Complete Sharing: works for unbalanced tra ffj c benefits long flows unrestricted bu fg er space per port Dynamic Sharing: adapts fairly to load fraction ( α ) of remaining bu fg er per port ignores queue content
Three common bu fg er management techniques with pros & cons Complete Partitioning: works for balanced tra ffj c wastes bu fg er otherwise statically allocated bu fg er space per port Complete Sharing: works for unbalanced tra ffj c benefits long flows unrestricted bu fg er space per port Dynamic Sharing: adapts fairly to load fraction ( α ) of remaining bu fg er per port ignores queue content
Three common bu fg er management techniques with pros & cons Complete Partitioning: works for balanced tra ffj c wastes bu fg er otherwise statically allocated bu fg er space per port Complete Sharing: works for unbalanced tra ffj c benefits long flows unrestricted bu fg er space per port Dynamic Sharing: adapts fairly to load fraction ( α ) of remaining bu fg er per port ignores queue content
Three common bu fg er management techniques with pros & cons Complete Partitioning: works for balanced tra ffj c wastes bu fg er otherwise statically allocated bu fg er space per port Complete Sharing: works for unbalanced tra ffj c benefits long flows unrestricted bu fg er space per port Dynamic Sharing: adapts fairly to load fraction ( α ) of remaining bu fg er per port ignores queue content
Back to our story… Simulation Results … Switch … Senders Receivers
Simulation Results Shared bu fg er can host up to 180 packets 180 packets … Switch … Senders Receivers
Simulation Results Long flows will consume as much bu fg er as there is available 180 Long Flows # pkts bu fg ered 135 90 … 45 port 1 0 Switch 0 0.4 0.8 1.2 Time (sec) … Senders Receivers
Short flows will attempt to instantaneously store Simulation Results at most 75 packets in the shared bu fg er 180 Long Flows # pkts bu fg ered 135 90 … 45 port 1 0 Switch 0 0.4 0.8 1.2 Time (sec) port 2 Short Flows 80 # pkts bu fg ered 60 40 … 20 0 0 0.4 0.8 1.2 Time (sec) Senders Receivers
Three common bu fg er management techniques with pros & cons Complete Partitioning: works for balanced tra ffj c wastes bu fg er otherwise statically allocated bu fg er space per port Complete Sharing: works for unbalanced tra ffj c benefits long flows unrestricted bu fg er space per port Dynamic Sharing: adapts fairly to load fraction ( α ) of remaining bu fg er per port ignores queue content
Complete Partitioning: static bu fg er space per port = 10 packets 100 100 80 80 # Pkts in Buffer # Pkts in Bu � er # Pkts in Bu � er 60 60 40 40 20 20 0 0 2x10 8 2x10 8 4x10 8 4x10 8 6x10 8 6x10 8 8x10 8 8x10 8 1x10 9 1x10 9 1.2x10 9 1.2x10 9 0.2 0.4 0.6 0.6 0.8 1 Time (s) 0 0 Time (ns) Time (ns)
Receiver of long flows bu fg ers up to 10 packets 100 100 80 80 # Pkts in Buffer # Pkts in Bu � er # Pkts in Bu � er 60 60 40 40 20 20 0 0 2x10 8 2x10 8 4x10 8 4x10 8 6x10 8 6x10 8 8x10 8 8x10 8 1x10 9 1x10 9 1.2x10 9 1.2x10 9 0.2 0.4 0.6 0.6 0.8 1 Time (s) 0 0 Time (ns) Time (ns)
Receiver of long flows bu fg ers up to 10 packets 100 80 # Pkts in Buffer # Pkts in Bu � er 60 40 20 0 2x10 8 4x10 8 6x10 8 8x10 8 1x10 9 1.2x10 9 0.2 0.4 0.6 0.8 1 Time (s) 0 Time (ns)
Receiver of long flows bu fg ers up to 10 packets used by 5% port 1 100 Unused 95% 80 # Pkts in Buffer # Pkts in Bu � er 60 40 20 0 2x10 8 4x10 8 6x10 8 8x10 8 1x10 9 1.2x10 9 0.2 0.4 0.6 0.8 1 Time (s) 0 Time (ns)
Receiver of short flows bu fg ers up to 10 packets 100 80 # Pkts in Buffer # Pkts in Bu � er 60 40 20 0 2x10 8 4x10 8 6x10 8 8x10 8 1x10 9 1.2x10 9 0.2 0.4 0.6 0.8 1 Time (s) 0 Time (ns)
Receiver of short flows bu fg ers up to 10 packets 100 100 80 80 # Pkts in Buffer # Pkts in Bu � er # Pkts in Bu � er 60 60 40 40 20 20 0 0 2x10 8 2x10 8 4x10 8 4x10 8 6x10 8 6x10 8 8x10 8 8x10 8 1x10 9 1x10 9 1.2x10 9 1.2x10 9 0.2 0.4 0.6 0.8 1 Time (s) 0 0 Time (ns) Time (ns)
Bu fg er is 90% empty used by 5% 5% port 2 100 100 Unused 90% 80 80 # Pkts in Buffer # Pkts in Bu � er # Pkts in Bu � er 60 60 40 40 20 20 0 0 2x10 8 2x10 8 4x10 8 4x10 8 6x10 8 6x10 8 8x10 8 8x10 8 1x10 9 1x10 9 1.2x10 9 1.2x10 9 0.2 0.4 0.6 0.8 1 Time (s) 0 0 Time (ns) Time (ns)
Bu fg er is 90% empty, yet the burst is not absorbed 5% 5% 100 90% 80 Burst Size # Pkts in Buffer # Pkts in Bu � er 60 40 20 0 2x10 8 4x10 8 6x10 8 8x10 8 1x10 9 1.2x10 9 0.2 0.4 0.6 0.8 1 Time (s) 0 Time (ns)
Three common bu fg er management techniques with pros & cons Complete Partitioning: works for balanced tra ffj c wastes bu fg er otherwise statically allocated bu fg er space per port Complete Sharing: works for unbalanced tra ffj c benefits long flows unrestricted bu fg er space per port Dynamic Sharing: adapts fairly to load fraction ( α ) of remaining bu fg er per port ignores queue content
Three common bu fg er management techniques with pros & cons Complete Partitioning: works for balanced tra ffj c wastes bu fg er otherwise statically allocated bu fg er space per port Complete Sharing: works for unbalanced tra ffj c benefits long flows unrestricted bu fg er space per port Dynamic Sharing: adapts fairly to load fraction ( α ) of remaining bu fg er per port ignores queue content
Complete Sharing: unrestricted bu fg er space per port 200 180 160 # Pkts in Buffer 140 # Pkts in Bu � er 120 100 80 60 40 20 0 2x10 8 0.2 4x10 8 0.4 6x10 8 0.6 8x10 8 0.8 1x10 9 1 1.2x10 9 Time (s) 0 Time (ns)
Long flows use all bu fg er 200 180 160 # Pkts in Buffer 140 # Pkts in Bu � er 120 100 80 60 40 20 0 2x10 8 0.2 4x10 8 0.4 6x10 8 0.6 8x10 8 0.8 1x10 9 1 1.2x10 9 Time (s) 0 Time (ns)
Long flows use all bu fg er 200 200 180 180 160 160 # Pkts in Buffer 140 140 # Pkts in Bu � er # Pkts in Bu � er 120 120 100 100 80 80 60 60 40 40 20 20 0 0 2x10 8 2x10 8 0.2 4x10 8 4x10 8 0.4 6x10 8 6x10 8 0.6 8x10 8 8x10 8 0.8 1x10 9 1x10 9 1 1.2x10 9 1.2x10 9 Time (s) 0 0 Time (ns) Time (ns)
Long flows use all bu fg er 200 200 180 180 100% 160 160 # Pkts in Buffer 140 140 # Pkts in Bu � er # Pkts in Bu � er 120 120 100 100 80 80 60 60 40 40 20 20 0 0 2x10 8 2x10 8 0.2 4x10 8 4x10 8 0.4 6x10 8 6x10 8 0.6 8x10 8 8x10 8 0.8 1x10 9 1x10 9 1 1.2x10 9 1.2x10 9 Time (s) 0 0 Time (ns) Time (ns)
Upon arrival, the burst finds the bu fg er fully occupied 200 200 180 180 160 160 # Pkts in Buffer 140 140 # Pkts in Bu � er # Pkts in Bu � er 120 120 100 100 80 80 60 60 40 40 20 20 0 0 2x10 8 2x10 8 0.2 4x10 8 4x10 8 0.4 6x10 8 6x10 8 0.6 8x10 8 8x10 8 0.8 1x10 9 1x10 9 1 1.2x10 9 1.2x10 9 Time (s) 0 0 Time (ns) Time (ns)
Recommend
More recommend