EyeQ : (An engineer’s approac h to ) Taming network performance unpredictability in the Cloud. Vimal. Mohammad Alizadeh Balaji Prabhakar David Mazières. Changhoon Kim Albert Greenberg. What are we depending on?. Many customers don’t even realise network issues:
Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.
EyeQ:(An engineer’s approach to)Taming network performance unpredictabilityin the Cloud
don’t even realise network issues:
Just “spin up more VMs!”
Makes app more network dep.
5 Lessons We’ve Learned Using AWS
… in the Netflix data centers, we have a high capacity, super fast, highly reliable
network. This has afforded us the luxury of designing around chatty APIs to remote systems. AWS networking has more variable latency.
Overhaul appsto deal with variability
Multi-tenancy: To increase cluster utilisation
Provisioning the Warehouse
CPU, memory, disk
Can we achieve this?
Customer X specifies
the thickness of each pipe.
No traffic matrix.
Tenant X’s Virtual Switch
Tenant Y’s Virtual Switch
1 Long lived
Bursty UDP session
(1) Drops in network: servers don’t see true demand
(2) Elusive TCP (back-off) makes true demand detection harder
Single Switch: Headroom
What about a network?
N x 10G
Shared pipeLimit to 9G
(1) Uniform capacity across racks
(2) Over-subscription only at
Load balancing: ECMP, etc.
Admissibility: e2e congestion control (EyeQ)
Aggregate rate < 10Gbps
Congestion free Fabric
Aggregate rate > 10Gbps
Fabric gets congested
Load balancing + Admissibility =
Hotspot free network core
[VL2, FatTree, Hedera, MicroTE]
Adaptive Rate Limiters
One Big Switch
+ Bandwidth headroom
+ Admissibility at millisec timescales
= Network as one big switch
= Bandwidth sharing at edge
Linux, Windows implementation for 10Gbps
~1700 lines C code
http://github.com/jvimal/perfiso_10g (Linux kmod)
No documentation, yet.