用智能网卡加速有状态网络应用,显著降低CPU占用。
Cora: Accelerating Stateful Network Applications with SmartNICs
- 基于精准性能模型自动优化应用在智能网卡上的部署方案。
- 相同吞吐下节省94%的CPU核心,性能提升44.9%至82.3%。
- 能动态适应流量变化,适合高并发网络服务场景。
随着网络应用性能要求提升,将有状态网络应用卸载到智能网卡已成为趋势,以提升性能并降低总体拥有成本。然而,由于状态操作复杂、资源消耗大以及流量与状态间的复杂关系,直接按状态或流量划分会导致次优方案,引发更高CPU使用率甚至丢包。本文提出Cora,一个针对智能网卡加速主机的编译器与运行时系统。Cora编译器引入每个智能网卡的精确性能模型,并采用高效编译算法搜索最优卸载方案;运行时可监控流量动态,自适应调整以最小化CPU使用。Cora基于Netronome Agilio和BlueField 2智能网卡实现。评估显示,在相同吞吐目标下,Cora可减少高达94.0%的CPU核心使用,比基线方案多1.9倍;在相同资源约束下,网络功能加速44.9%-82.3%。运行时系统能适应流量变化,持续保持低CPU占用。
原文摘要 · Abstract (English)
With the growing performance requirements on networked applications, there is a new trend of offloading stateful network applications to SmartNICs to improve performance and reduce the total cost of ownership. However, offloading stateful network applications is non-trivial due to state operation complexity, state resource consumption, and the complicated relationship between traffic and state. Naively partitioning the program by state or traffic can result in a suboptimal partition plan with higher CPU usage or even packet drops. In this paper, we propose Cora, a compiler and runtime that offloads stateful network applications to SmartNIC-accelerated hosts. Cora compiler introduces an accurate performance model for each SmartNIC and employs an efficient compiling algorithm to search the offloading plan. Cora runtime can monitor traffic dynamics and adapt to minimize CPU usage. Cora is built atop Netronome Agilio and BlueField 2 SmartNICs. Our evaluation shows that for the same throughput target, Cora can propose partition plans saving up to 94.0% CPU cores, 1.9 times more than baseline solutions. Under the same resource constraint, Cora can accelerate network functions by 44.9%-82.3%. Cora runtime can adapt to traffic changes and keep CPU usage low.
Thank you to arXiv for use of its open access interoperability. PaperDance 不是 arXiv 官方产品;中文卡片由大模型生成,请以原文为准。