一句话:提出基于FPGA近内存可重构NIC的RPC加速架构Dagger,将RPC栈卸载到NIC并显著提升云微服务吞吐与延迟。
云服务从单体转向微服务后,细粒度小消息RPC在传统软件栈和外设NIC上开销高。Dagger提出一种基于FPGA的RPC硬件加速结构:将整个RPC栈卸载到FPGA NIC,用可配置内存互连而非PCIe与主机CPU紧耦合,并使加速结构可重构以适配不同微服务。评估显示,相比高度优化的软件栈和专用RDMA适配器,Dagger的每核RPC吞吐提升1.3-3.8倍,在4个CPU核、8线程下达到84 Mrps并保持µs级尾延迟;memcached和MICA KVS仅需最小代码改动即可移植,其中位和尾访问延迟分别降至2.8-3.5µs与5.4-7.8µs;8层航班值机微服务也验证了其端到端收益。
The ongoing shift of cloud services from monolithic designs to mi- croservices creates high demand for efficient and high performance datacenter networking stacks, optimized for fine-grained work- loads. Commodity networking systems based on software stacks and peripheral NICs introduce high overheads when it comes to delivering small messages. We present Dagger, a hardware acceleration fabric for cloud RPCs based on FPGAs, where the accelerator is closely-coupled with the host processor over a configurable memory interconnect. The three key design principle of Dagger are: (1) offloading the entire RPC stack to an FPGA-based NIC, (2) leveraging memory interconnects instead of PCIe buses as the interface with the host CPU, and (3) making the acceleration fabric reconfigurable, so it can accommodate the diverse needs of microservices. We show that the combination of these principles significantly improves the efficiency and performance of cloud RPC systems while preserving their generality. Dagger achieves 1.3 − 3.8× higher per-core RPC throughput compared to both highly-optimized software stacks, and systems using specialized RDMA adapters. It also scales up to 84 Mrps with 8 threads on 4 CPU cores, while maintaining state-of- the-art µs-scale tail latency. We also demonstrate that large third- party applications, like memcached and MICA KVS, can be easily ported on Dagger with minimal changes to their codebase, bringing their median and tail KVS access latency down to 2.8 − 3.5 us and 5.4 − 7.8 us, respectively. Finally, we show that Dagger is beneficial for multi-tier end-to-end microservices with different threading models by evaluating it using an 8-tier application implementing a flight check-in service.
DOI 原文 ·
@inproceedings{paperbot6146,
title = {Dagger: efficient and fast RPCs in cloud microservices with near-memory reconfigurable NICs},
author = {Nikita Lazarev and Shaojie Xiang and Neil Adit and Zhiru Zhang and Christina Delimitrou},
booktitle = {ASPLOS},
year = {2021},
doi = {10.1145/3445814.3446696}
}