Load balancers are pervasively used inside today's clouds to scalably distribute network requests across data center servers. Given the extensive use of load balancers and their associated operating costs, several efforts have focused on improving their efficiency by implementing Layer-4 load-balancing logic within the kernel or using hardware acceleration. This work explores whether the more complex and connection-oriented Layer-7 load-balancing capability can also benefit from hardware acceleration. In particular, we target the offloading of load-balancing capability onto programmable SmartNICs. We fully leverage the cost and energy efficiency of SmartNICs using three key ideas. First, we argue that a full and complex TCP/IP stack is not required for Layer-7 load balancers and instead propose a lightweight forwarding agent on the SmartNIC. Second, we develop connection management data structures with a high degree of concurrency with minimal synchronization when executed on multi-core SmartNICs. Finally, we describe how the load-balancing logic could be accelerated using custom packet-processing accelerators on SmartNICs. We prototype Laconic on two types of SmartNIC hardware, achieving over 150 Gbps throughput using all cores on BlueField-2, while a single SmartNIC core achieves 8.7x higher throughput and comparable latency to Nginx on a single x86 core.
翻译:负载均衡器在当今云环境中被广泛用于将网络请求可扩展地分发到数据中心服务器。鉴于负载均衡器的广泛使用及其相关运营成本,多项研究致力于通过在内核中实现第四层负载均衡逻辑或使用硬件加速来提高其效率。本文探讨了更复杂且面向连接的第七层负载均衡能力是否也能从硬件加速中受益。具体而言,我们着眼于将负载均衡能力卸载到可编程智能网卡上。我们通过三个关键思想充分利用智能网卡的成本和能效优势。首先,我们认为第七层负载均衡器不需要完整的复杂TCP/IP协议栈,并提出在智能网卡上使用轻量级转发代理。其次,我们开发了具有高并发度的连接管理数据结构,在多核智能网卡上执行时同步开销最小。最后,我们描述了如何利用智能网卡上的自定义数据包处理加速器来加速负载均衡逻辑。我们在两种类型的智能网卡硬件上实现了简洁方案原型,在BlueField-2上使用所有核心实现了超过150 Gbps的吞吐量,而单个智能网卡核心的吞吐量比单个x86核心上的Nginx高8.7倍,延迟相当。