A cloud-scale per-flow backpressure system via FPGA-based heavy hitter detection

Virtual private clouds provide sharing resources to a massive number of tenants for economics of scale. In such clouds, off-the-shelf x86 boxes are widely deployed as network intermediate nodes. However, due to rapid growth of cloud traffic and significant slowdown of CPU improvement in recent years, although horizontal scaling is still leveraged, CPU overload and packet losses caused by heavy hitters are occasionally observed in production environment, which seriously damage tenant's SLAs. To address this, we propose a cloud-scale per-flow backpressure system designed in Alibaba Cloud. The basic idea is to (1) trigger the heavy-hitter flow acquisition at the intermediate node in an on-demand manner only when the CPU utilization exceeds a predefined threshold and (2) backpressure the identified heavy-hitter flow to the traffic source via rate limiting at sender's NIC or hypervisor. To handle the extremely large traffic rate of cloud traffic, we leverage a high-speed FPGA for heavy hitter detection acceleration. To accommodate highly concurrent flows in the cloud, we design a hierarchical memory system for accurate heavy hitter counting during a large time window. Under the per-flow backpressure mechanism, the rate of the heavy-hitter flow is accurately throttled while the rate of mice flows is completely unaffected during the backpressure.

[1]  Lawrence G. Roberts,et al.  Beyond Moore's Law: Internet Growth Trends , 2000, Computer.

[2]  Graham Cormode,et al.  An improved data stream summary: the count-min sketch and its applications , 2004, J. Algorithms.

[3]  A. Kivity,et al.  kvm : the Linux Virtual Machine Monitor , 2007 .

[4]  Prashant J. Shenoy,et al.  The Case for Enterprise-Ready Virtual Private Clouds , 2009, HotCloud.

[5]  Albert G. Greenberg,et al.  Data center TCP (DCTCP) , 2010, SIGCOMM '10.

[6]  Albert G. Greenberg,et al.  Ananta: cloud scale load balancing , 2013, SIGCOMM.

[7]  A. Greenberg,et al.  Ananta: cloud scale load balancing , 2013, SIGCOMM.

[8]  Laurent Mathy,et al.  Fast userspace packet processing , 2015, 2015 ACM/IEEE Symposium on Architectures for Networking and Communications Systems (ANCS).

[9]  Leonardo Linguaglossa,et al.  High-Speed Software Data Plane via Vectorized Packet Processing , 2018, IEEE Communications Magazine.

[10]  Jennifer Rexford,et al.  Fine-grained queue measurement in the data plane , 2019, CoNEXT.

[11]  Amin Vahdat,et al.  PicNIC , 2019, Proceedings of the ACM Special Interest Group on Data Communication.

[12]  Naveen Kr. Sharma,et al.  Backpressure Flow Control , 2019, BS.

[13]  Nate Foster,et al.  PicNIC: predictable virtualized NIC , 2019, SIGCOMM.

[14]  Neil C. Thompson,et al.  The decline of computers as a general purpose technology , 2021, Commun. ACM.