经典思辨|Collie:查找 RDMA系统中的性能异常

文摘   2024-12-03 15:01   北京  


本文是对USENIX NSDI’22的论文《Collie: Finding Performance Anomalies in RDMA Subsystems》的解读。这篇论文提出了一个名为Collie的工具,帮助用户系统性地发现RDMA子系统中的性能异常,而无需访问硬件内部设计。与逐个测试每个硬件设备(如网卡、内存、PCIe)不同,Collie全面地为应用程序工作负载构建了一个综合的搜索空间。Collie使用模拟退火算法,通过检查RDMA领域特定的性能和诊断计数器找到可能触发性能异常的工作负载。这篇论文在各种RDMA网卡、CPU和其他硬件组件的组合上评估了Collie。Collie发现了15个新的性能异常,所有这些都被硬件供应商确认,其中7个已经得到修复。这篇工作还分享了使用Collie来避免RDMA RPC库和RDMA分布式机器学习框架中性能异常的经验。
- ABSTRACT-


01.

BACKGROUND INTRODUCTION
背景介绍


数据中心对低延迟和高CPU效率的需求促使RDMA成为云服务提供商的首选解决方案。尽管RDMA已被广泛集成于多种应用,但在以太网为基础的网络中部署RoCEv2时,确保RDMA网络性能满足预期至关重要,以避免性能异常如低吞吐量和暂停帧风暴,这些异常可能导致数据中心网络死锁。尽管供应商对单个设备进行了严格测试,RDMA子系统(包括RNIC和服务器硬件)仍存在异常,主要源于RNIC与其他硬件的交互问题。由于供应商无法访问定制硬件和系统配置,且异常对网络可靠性影响重大,自行进行集成测试是必要的。目前,有两种方法对整个子系统进行测试。第一种方法是运行简单的测试基准(例如,Perftest)进行基本的吞吐量和延迟测试。第二种方法是运行一组代表性的RDMA应用程序。不幸的是,这两种方法都无法全面揭示RDMA子系统的异常。根本问题是这些方法仅测试简单或现有的工作负载。因此,它们无法全面捕捉异常,因为实际的应用工作负载会随时间变化。此外,即使通过应用程序工作负载发现了异常,应用程序开发者也不知道如何修改工作负载以避免异常。


这篇论文的目标是探索系统性搜索可能触发RDMA子系统性能异常的应用工作负载的可能性。挑战主要包括以下三个:第一个挑战是如何构建一个全面的工作负载搜索空间。理想的方法是对RDMA子系统的每个组件进行精确建模,然后构建搜索空间。然而,考虑到RNIC和其他硬件组件的黑箱性质,这是极其困难的。第二个挑战是,即使成功构建了一个足够全面的搜索空间,如何才能高效地进行搜索?搜索空间本质上是很大的,因为RDMA子系统很复杂。例如,RDMA子系统内的流量可以来自/到不同的内存设备(如主内存和GPU内存),并且给定工作负载的传输设置是多样的(如连接的数量和类型)。在如此大的空间中盲目进行测试是低效的。第三个挑战是,如何找到这些异常的复杂触发条件?这在搜索过程中和搜索后都很重要。在搜索过程中,需要触发条件来避免对同一异常测试类似的应用工作负载,以加快搜索速度。


图 1: Collie系统架构图


为此,这篇论文设计并实现了Collie,这是第一个系统性揭示RDMA子系统性能异常的工具,包含以下三个想法。第一个想法是从开发者的角度构建搜索空间。尽管底层硬件各异且对我们来说不透明,但狭窄的RDMA编程抽象(即verbs)是明确定义且稳定的。所有应用工作负载都可以被视为verbs操作的组合。本文仔细分析了标准verbs库、开发者可以做出的设计决策、所有潜在数据流。通过这种方式,Collie为RDMA子系统领域的应用工作负载构建了一个全面的搜索空间,包括网络流量的主机、消息大小、连接数量和内存区域配置。第二个想法是可以使用两组计数器来指导搜索。第一组是性能计数器(例如,bps),这些计数器由所有RNIC和其他硬件组件提供。此外,现代RNIC和其他硬件组件还提供诊断计数器(例如,PCIe监控器)。诊断计数器映射到硬件组件上发生的特定意外事件。这些计数器目前仅用于调试和监控目的。Collie使用基于模拟退火的搜索算法来最大化/最小化计数器值,以揭示异常。第三个想法是找到覆盖已发现异常的搜索空间中的最小区域,称为最小特征集。Collie包含一个MFS算法来测试异常具有的每个特征(例如,连接数量)并生成必要的条件集。通过MFS算法,Collie可以进一步提高搜索效率,避免对同一区域的冗余测试。


02.

Experiment Evaluation
实验评估


这篇论文在8个不同软硬件配置的RDMA 子系统上对 Collie 进行了评估。这些子系统包括来自NVIDIA Mellanox和Broadcom的6种类型的RNIC,速度在25 Gbps到200 Gbps之间。Collie成功地发现了15种新的异常,并得到了RNIC供应商的确认,其中7个已经通过固件升级或按照供应商的指示进行详细配置修复。这篇论文还分享了在使用Collie指导RDMA RPC库和RDMA分布式机器学习框架时避免这些异常的经验。这些经验表明,Collie可以帮助数据中心运营商发现异常,并协助RDMA应用程序开发者实现更好的应用程序。


图 2: Collie发现的RDMA性能异常



03.

CONCLUSION
总结




这篇论文构建了Collie,这是一个帮助RDMA用户发现整个RDMA子系统性能异常的工具,无需访问任何硬件内部设计。Collie为RDMA应用程序工作负载构建了一个全面的搜索空间,并通过使用模拟退火算法根据两种类型的计数器来发现性能异常。这篇论文在8个商用RDMA子系统上评估了Collie,Collie发现了15个新的性能异常,这些异常均得到了供应商的确认。其中7个已经在供应商的指导下得到了修复。


欢迎扫码关注

数据空间技术与系统
数据空间技术与系统全国重点实验室面向国家数据空间建设的中长期战略需求和重大任务,开展数联网基础软件与数据空间操作系统的技术体系、标准规范、核心系统、试验环境、应用示范与开源生态等重点任务研究。
 最新文章