Understanding RDMA Microarchitecture Resources for Performance Isolation

通过耗尽RDMA的共享微架构,一个租户能对另一个租户施加大幅性能影响。 文章分析了RDMA的各种操作对性能的不同影响,并开发了一个测试套件来复现不同种类的影响(其实是攻击)。

本文旨在系统地了解RNIC微架构资源对性能隔离的影响。 文章提出了一个模型,表示RDMA操作如何使用RNIC资源。 利用这个模型,文章开发了一个测试套件来评估RDMA性能隔离解决方案,该测试套件可以在各种情况下击破所有现有的隔离方案。

开源:https://github.com/host-bench/husky

Background

RDMA Overview

这个讲的还挺不错的。

Why RDMA Performance Isolation is Hard?

这一节提出了三个可能的资源竞争位置

  1. Interconnect Context Memory Cache
  2. Work Queue Entry cache
  3. Memory Translation Table和Memory Protection Table

论文给它们起名叫microarchitecture resources。 以前的许多工作已经确定了这些微架构资源对RDMA应用性能的一些影响。 然而,这些努力是从应用开发者的角度来研究微架构资源的。 在性能下降后,他们找出瓶颈资源,寻求更有效的方法来使用数据动词,并相应地修改他们的应用。

然而,在公有云中,云提供商对租户的应用程序没有控制权。 因此,租户可以随心所欲地消耗RNIC的微架构资源,甚至是恶意的。 因此,从云提供商的角度来看,我们需要了解大多数(如果不是全部)RDMA动词,而不仅仅是普通数据动词,的微架构资源消耗。 只有掌握了这些知识,我们才能将RNIC的微架构资源正确分配给不同的租户,以提供可预测的性能。

RNIC Microarchitecture Resources

对于每个微结构资源,我们研究它是如何被三类RDMA操作消耗的:

  1. 为应用程序分配对象的控制动词(如ibv_create_qp)
  2. 启动数据传输的数据动词(如ibv_post_send)
  3. 处理异常或错误的exception处理操作(如RNR错误)

测量两个指标rpsqps

NIC Caches

Key finding #1: control verbs can cause excessive cache misses and a drastic performance reduction.

Processing Units

Key finding #2: performance interference between differ- ent data verbs depends on the complexity of verbs.

Key finding #3: error handling can stall RNIC processing units and hang all the applications.

PCIe Bandwidth

Key finding #4: PCIe bandwidth will only become the bottleneck when the request size is in a specific range.

Other findings

Other finding #1: Data verbs contend for different RNIC caches.

Other finding #2: Wide range access across many objects (QP, CQ, MR) causes ICM cache misses.

Other finding #3: The impact of control verbs is restricted by its kernel involvement.

Husky Test Suite

Husky针对四种类型的资源:网卡带宽、PCIe带宽、网卡PU和网卡缓存。 对于每一种类型的资源,Husky用不同类型的行为(如控制动词)对合成工作负载进行标识,以耗尽该资源。