conga distributed congestion aware load balancing for
play

CONGA: Distributed Congestion-Aware Load Balancing for Datacenters - PowerPoint PPT Presentation

CONGA: Distributed Congestion-Aware Load Balancing for Datacenters Mohammad Alizadeh Tom Edsall, Sarang Dharmapurikar, Ramanan Vaidyanathan, Kevin Chu, Andy Fingerhut, Vinh The Lam , Francis Matus, Rong Pan, Navindra Yadav, George Varghese


  1. CONGA: Distributed Congestion-Aware Load Balancing for Datacenters Mohammad Alizadeh Tom Edsall, Sarang Dharmapurikar, Ramanan Vaidyanathan, Kevin Chu, Andy Fingerhut, Vinh The Lam ★ , Francis Matus, Rong Pan, Navindra Yadav, George Varghese § ★ § 1

  2. Motivation DC networks need large bisection bandwidth for distributed apps (big data, HPC, web services, etc) Single-rooted tree Core ¡ Ø High oversubscription Agg ¡ Access ¡ 1000s ¡of ¡server ¡ports ¡ 2

  3. Motivation DC networks need large bisection bandwidth for distributed apps (big data, HPC, web services, etc) Multi-rooted tree [Fat-tree, Leaf-Spine, …] Ø Full bisection bandwidth, achieved via multipathing Spine ¡ Leaf ¡ 1000s ¡of ¡server ¡ports ¡ 3

  4. Motivation DC networks need large bisection bandwidth for distributed apps (big data, HPC, web services, etc) Multi-rooted tree [Fat-tree, Leaf-Spine, …] Ø Full bisection bandwidth, achieved via multipathing Spine ¡ Leaf ¡ 1000s ¡of ¡server ¡ports ¡ 4

  5. Multi-rooted != Ideal DC Network Ideal DC network: Big output-queued switch 1000s ¡of ¡server ¡ports ¡ Ø No internal bottlenecks è predictable Ø Simplifies BW management [EyeQ, FairCloud, pFabric, Varys, …] 5

  6. Multi-rooted != Ideal DC Network Ideal DC network: Multi-rooted tree Big output-queued switch Can’t build it L ≈ ¡ 1000s ¡of ¡server ¡ports ¡ 1000s ¡of ¡server ¡ports ¡ Ø No internal bottlenecks è predictable Possible Ø Simplifies BW management bottlenecks [EyeQ, FairCloud, pFabric, Varys, …] 6

  7. Multi-rooted != Ideal DC Network Ideal DC network: Multi-rooted tree Big output-queued switch Can’t build it L ≈ ¡ 1000s ¡of ¡server ¡ports ¡ 1000s ¡of ¡server ¡ports ¡ Ø No internal bottlenecks è predictable Ø Simplifies BW management Need precise load balancing [EyeQ, FairCloud, pFabric, Varys, …] 7

  8. Today: ECMP Load Balancing Pick among equal-cost paths by a hash of 5-tuple Ø Approximates Valiant load balancing Ø Preserves packet order H( f ) ¡% ¡3 ¡= ¡0 ¡ 8

  9. Today: ECMP Load Balancing Pick among equal-cost paths by a hash of 5-tuple Ø Approximates Valiant load balancing Ø Preserves packet order Problems: - Hash collisions (coarse granularity) H( f ) ¡% ¡3 ¡= ¡0 ¡ 9

  10. Today: ECMP Load Balancing Pick among equal-cost paths by a hash of 5-tuple Ø Approximates Valiant load balancing Ø Preserves packet order Problems: - Hash collisions (coarse granularity) - Local & stateless (v. bad with asymmetry due to link failures) 10

  11. Dealing with Asymmetry Handling asymmetry needs non-local knowledge 11

  12. Dealing with Asymmetry Handling asymmetry needs non-local knowledge 40G ¡ 40G ¡ 40G ¡ 40G ¡ 40G ¡ 40G ¡ 12

  13. Dealing with Asymmetry Handling asymmetry needs non-local knowledge 40G ¡ 40G ¡ 40G ¡ 40G ¡ 40G ¡ 13

  14. Dealing with Asymmetry Scheme ¡ Thrput ¡ ECMP ¡ ¡ 30G ¡ (Local ¡Stateless) ¡ 40G ¡ (UDP) ¡ 30G ¡ Local ¡Cong-­‑Aware ¡ Global ¡Cong-­‑Aware ¡ 40G ¡ 40G ¡ 40G ¡ 40G ¡ 40G ¡ (TCP) ¡ 14

  15. Dealing with Asymmetry: ECMP Scheme ¡ Thrput ¡ ECMP ¡ 60G ¡ 30G ¡ (Local ¡Stateless) ¡ 40G ¡ (UDP) ¡ 30G ¡ Local ¡Cong-­‑Aware ¡ Global ¡Cong-­‑Aware ¡ 40G ¡ 10G ¡ 40G ¡ 40G ¡ 20G ¡ 40G ¡ 40G ¡ (TCP) ¡ 15

  16. Dealing with Asymmetry: Local Congestion-Aware Scheme ¡ Thrput ¡ ECMP ¡ 60G ¡ 30G ¡ (Local ¡Stateless) ¡ 40G ¡ (UDP) ¡ 30G ¡ Local ¡Cong-­‑Aware ¡ Global ¡Cong-­‑Aware ¡ 40G ¡ 10G ¡ 40G ¡ 40G ¡ Interacts ¡poorly ¡with ¡ 20G ¡ 40G ¡ TCP’s ¡control ¡loop ¡ 40G ¡ (TCP) ¡ 16

  17. Dealing with Asymmetry: Local Congestion-Aware Scheme ¡ Thrput ¡ ECMP ¡ 60G ¡ 30G ¡ (Local ¡Stateless) ¡ 40G ¡ (UDP) ¡ 30G ¡ Local ¡Cong-­‑Aware ¡ 50G ¡ Global ¡Cong-­‑Aware ¡ 40G ¡ 10G ¡ 40G ¡ 40G ¡ Interacts ¡poorly ¡with ¡ 10G ¡ 40G ¡ TCP’s ¡control ¡loop ¡ 40G ¡ (TCP) ¡ 17

  18. Dealing with Asymmetry: Global Congestion-Aware Scheme ¡ Thrput ¡ ECMP ¡ 60G ¡ 30G ¡ (Local ¡Stateless) ¡ 40G ¡ (UDP) ¡ 30G ¡ Local ¡Cong-­‑Aware ¡ 50G ¡ Global ¡Cong-­‑Aware ¡ 40G ¡ 10G ¡ 40G ¡ 40G ¡ 10G ¡ 40G ¡ 40G ¡ (TCP) ¡ 18

  19. Dealing with Asymmetry: Global Congestion-Aware Scheme ¡ Thrput ¡ ECMP ¡ 60G ¡ 30G ¡ (Local ¡Stateless) ¡ 40G ¡ (UDP) ¡ 30G ¡ Local ¡Cong-­‑Aware ¡ 50G ¡ Global ¡Cong-­‑Aware ¡ 70G ¡ 40G ¡ 5G ¡ 40G ¡ 40G ¡ 35G ¡ 40G ¡ 40G ¡ (TCP) ¡ 19

  20. Dealing with Asymmetry: Global Congestion-Aware Scheme ¡ Thrput ¡ ECMP ¡ 60G ¡ 30G ¡ (Local ¡Stateless) ¡ 40G ¡ (UDP) ¡ 30G ¡ Local ¡Cong-­‑Aware ¡ 50G ¡ Global ¡Cong-­‑Aware ¡ 70G ¡ 40G ¡ 5G ¡ Global CA > ECMP > Local CA 40G ¡ 40G ¡ 35G ¡ 40G ¡ Local congestion-awareness 40G ¡ can be worse than ECMP (TCP) ¡ 20

  21. Global Congestion-Awareness (in Datacenters) Datacenter Latency microseconds Opportunity Topology simple, regular Traffic volatile, bursty Challenge 21

  22. Global Congestion-Awareness (in Datacenters) Datacenter Latency microseconds Simple & Opportunity Stable Topology simple, regular Traffic volatile, bursty Challenge Responsive Key Insight: Use extremely fast, low latency distributed control 22

  23. CONGA in 1 Slide 1. Leaf switches (top-of-rack) track congestion to other leaves on different paths in near real-time 2. Use greedy decisions to minimize bottleneck util Fast feedback loops between leaf switches, directly in dataplane L0 ¡ L1 ¡ L2 ¡ 23

  24. CONGA’S DESIGN 24

  25. Design CONGA operates over a standard DC overlay (VXLAN) Ø Already deployed to virtualize the physical network VXLAN encap. L0 è L2 ¡ H1 è H9 ¡ L0 è L2 ¡ H1 è H9 ¡ L0 ¡ L1 ¡ L2 ¡ H1 ¡ H2 ¡ H3 ¡ H4 ¡ H5 ¡ H6 ¡ H7 ¡ H9 ¡ H8 ¡ 25

  26. Design: Leaf-to-Leaf Feedback Track path-wise congestion metrics (3 bits) between each pair of leaf switches Rate Measurement Module measures link utilization Path ¡ 0 ¡ 1 ¡ 2 ¡ 3 ¡ Dest ¡Leaf ¡ L1 ¡ L2 ¡ CongesPon-­‑To-­‑Leaf ¡ Table ¡@L0 ¡ 0 ¡ 1 ¡2 ¡3 ¡ L0 ¡ L1 ¡ L2 ¡ H1 ¡ H2 ¡ H3 ¡ H4 ¡ H5 ¡ H6 ¡ H7 ¡ H9 ¡ H8 ¡ 26

  27. Design: Leaf-to-Leaf Feedback Track path-wise congestion metrics (3 bits) between each pair of leaf switches L0 è L2 ¡ L0 è L2 ¡ pkt.CE ç max(pkt.CE, link.util) Path=2 ¡ Path=2 ¡ Path ¡ Path ¡ CE=0 ¡ CE=5 ¡ 0 ¡ 1 ¡ 2 ¡ 3 ¡ 0 ¡ 1 ¡ 2 ¡ 3 ¡ Dest ¡Leaf ¡ Src ¡Leaf ¡ 5 L1 ¡ L0 ¡ L2 ¡ L1 ¡ CongesPon-­‑From-­‑Leaf ¡ CongesPon-­‑To-­‑Leaf ¡ Table ¡@L2 ¡ Table ¡@L0 ¡ L0 è L2 ¡ L0 è L2 ¡ 0 ¡ 1 ¡2 ¡3 ¡ Path=2 ¡ Path=2 ¡ CE=0 ¡ L0 ¡ L1 ¡ L2 ¡ CE=5 ¡ H1 ¡ H2 ¡ H3 ¡ H4 ¡ H5 ¡ H6 ¡ H7 ¡ H9 ¡ H8 ¡ 27

  28. Design: Leaf-to-Leaf Feedback Track path-wise congestion metrics (3 bits) between each pair of leaf switches Path ¡ Path ¡ 0 ¡ 1 ¡ 2 ¡ 3 ¡ 0 ¡ 1 ¡ 2 ¡ 3 ¡ Dest ¡Leaf ¡ Src ¡Leaf ¡ 5 L1 ¡ L0 ¡ 5 L2 ¡ L1 ¡ CongesPon-­‑From-­‑Leaf ¡ CongesPon-­‑To-­‑Leaf ¡ Table ¡@L2 ¡ Table ¡@L0 ¡ L0 è L2 ¡ L2 è L0 ¡ 0 ¡ 1 ¡2 ¡3 ¡ FB-­‑Path=2 ¡ Path=2 ¡ FB-­‑Metric=5 ¡ CE=0 ¡ L0 ¡ L1 ¡ L2 ¡ H1 ¡ H2 ¡ H3 ¡ H4 ¡ H5 ¡ H6 ¡ H7 ¡ H9 ¡ H8 ¡ 28

  29. Design: LB Decisions Send each packet on least congested path flowlet [Kandula et al 2007] Path ¡ 0 ¡ 1 ¡ 2 ¡ 3 ¡ Dest ¡Leaf ¡ 5 3 7 2 L1 ¡ 1 1 4 5 L2 ¡ L0 è L1: p * = 3 CongesPon-­‑To-­‑Leaf ¡ L0 è L2: p * = 0 or 1 Table ¡@L0 ¡ 0 ¡ 1 ¡2 ¡3 ¡ L0 ¡ L1 ¡ L2 ¡ H1 ¡ H2 ¡ H3 ¡ H4 ¡ H5 ¡ H6 ¡ H7 ¡ H9 ¡ H8 ¡ 29

  30. Why is this Stable? Stability u sually requires a sophisticated control law (e.g., TeXCP, MPTCP, etc) Dest ¡Leaf ¡ Source ¡Leaf ¡ 30

  31. Why is this Stable? Stability u sually requires a sophisticated control law (e.g., TeXCP, MPTCP, etc) Dest ¡Leaf ¡ Source ¡Leaf ¡ (few microseconds) Feedback Latency Adjustment Speed (flowlet arrivals) Near-zero latency + flowlets è stable 31

  32. How Far is this from Optimal? bottleneck routing game Given traffic demands [ λ ij ]: (Banner & Orda, 2007) ! ∈ !"#$% ! ! max with CONGA ! ∈ !"#$% ! ! ! ∈ !"#$%&'" max min Price of Anarchy L0 ¡ L1 ¡ L2 ¡ H1 ¡ H2 ¡ H3 ¡ H4 ¡ H5 ¡ H6 ¡ H7 ¡ H9 ¡ H8 ¡ 32

Recommend


More recommend