PeRF: Preemption-enabled RDMA Framework——论文泛读

ATC 2024 Paper 论文阅读笔记整理

问题

远程直接内存访问(RDMA)为数据密集型应用程序提供了高吞吐量、低延迟和最小的CPU使用率。各种数据密集型应用程序,如大数据分析[4,5]、机器学习[2,11,15,33]、分布式存储[21,27,28,41]和键值存储[20,25,27,38],都证明了RDMA的显著性能改进。然而,RDMA是为单租户使用而设计的,在多租户云环境中的安全性[19,32,39]、可扩展性[16,22,36,37]和性能隔离[22,23,40]方面面临挑战。

其中性能隔离是关键问题,性能隔离会影响租户可能无法达到预期的RDMA性能:传输大消息应用会影响传输小消息应用的性能;具有多个QP的应用会影响单个QP应用性能。

  • 多租户同时使用RNIC时,图1(a),当五个应用程序发送小消息(<1KB)时,实现了RNIC最大消息速率。但是,添加另一个发送更大消息(1、2或4KB)的应用程序会限制其他应用程序的消息速率。另一个实验证明,两个应用程序共享一个RNIC,一个应用程序批量发送大小从64 B到1 GB的消息作为后台流量,另一个生成16 B消息,如图1(b、c)所示。随着后台消息的大小增加,消息速率和延迟逐渐恶化。这是因为RNIC以统一的优先级处理所有数据包,而不管它们的大小。这使得较小的数据包等待后台流量的较大数据包的传输。

  • RNIC的QP级轮询调度,会向多QP应用程序提供与其QP数量成比例的更多包传输机会,导致严重的公平性异常。

现有多租户环境中提供了RDMA性能隔离的方法可以分为两类:

  • 基于硬件(HW)。如[14,19,35],利用SR-IOV[6]或RDMA硬件(如交换机或RNIC)支持的虚拟通道(VL)[1]。基于硬件的优点是可以提供严格的性能隔离,但无法正确处理动态变化的租户需求。

  • 基于软件(SW)。侧重于拦截应用程序向RNIC生成的数据传输请求,并控制用户空间中每个租户的请求速率[22,30,40]。可以针对网络资源共享的动态变化实现更灵活的性能隔离。然而,对可用网络资源的不准确估计可能会导致严重的性能下降。如果低估了可用资源,则无法向RNIC发出足够的请求,导致吞吐量和处理速率下降;如果估计过高,RNIC中累积的请求可能会破坏性能隔离。

本文方法

本文提出了支持抢占的RDMA框架(PeRF),在不需要精确估计网络资源的情况下控制RNIC的数据包调度,为多租户提供高效的基于软件的性能隔离。

  • 利用RNIC抢占机制来动态控制每个租户的RDMA资源利用率。通过使用特定的动词实现(如RDMA用户级API[8]中提供的IB_WR_WAIT和IB_WR_ENABLE),提示RNIC暂时暂停一个连接的数据包处理,允许另一个活跃连优先处理,类似于操作系统中的抢占式作业调度。

  • 在租户生成的请求之间使用抢占,并弹性控制RNIC的数据包传输。通过有选择地抢占使用大消息或多个连接的应用程序,对小消息或单个连接的应用更有益。但RNIC抢占机制可能会给CPU(用于拆分大型消息)和RNIC(用于管理较大的请求缓冲区)带来一些开销。调查显示开销很小,不会对PeRF的性能产生不利影响。

评估表明,与基于软件的方案相比,PeRF在延迟相似的情况下提供了更高的吞吐量(约2.04倍)。

实验

实验环境:由五台相同机器组成的机架级集群。每台机器都有一个16核Intel(R)core(TM)i7-11700K 3.6GHz CPU、32GB DRAM,通过Mellanox Open Ethernet 100 Gbps交换机(SN-2100)连接。默认使用适用于RoCEv2的ConnectX-6作为RNIC。

总结

针对多租户场景RNIC争用导致的性能下降问题,由于RNIC的QP级轮询调度,导致:大消息应用影响小消息应用的性能,多QP应用影响单QP应用性能。本文提出支持抢占的RDMA框架PeRF,利用RNIC抢占机制来动态控制每个租户的RDMA资源利用率。通过使用特定动词,提示RNIC抢占式调度,类似于操作系统中的抢占式作业调度。在租户请求之间使用抢占,并弹性控制RNIC的数据包传输,对小消息或单个连接的应用更有益。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/49430.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[用AI日进斗金系列]用码上飞在企微接单开发一个项目管理系统!

今天是【日进斗金】系列的第二期文章。 先给不了解这个系列的朋友们介绍一下&#xff0c;在这个系列的文章中&#xff0c;我们将会在企微的工作台的“需求发布页面”中寻找有软件开发需求的用户 并通过自研的L4级自动化智能软件开发平台「码上飞CodeFlying」让AI生成应用以解…

基于面向对象重构模型训练器

引言 深度学习领域我们常用jupyter来演练代码&#xff0c;但实际生产环境中不可能像jupyter一样&#xff0c;所有代码逻辑都在面向过程编程&#xff0c;这会导致代码可复用性差&#xff0c;维护难度高。 前面这篇文章 基于pytorch可视化重学线性回归模型 已经封装了数据加载器…

leetcode 116. 填充每个节点的下一个右侧节点指针

leetcode 116. 填充每个节点的下一个右侧节点指针 题目 给定一个 完美二叉树 &#xff0c;其所有叶子节点都在同一层&#xff0c;每个父节点都有两个子节点。二叉树定义如下&#xff1a; struct Node { int val; Node *left; Node *right; Node *next; } 填充它的每个 next …

STM32 智能家居自动化控制系统教程

目录 引言环境准备智能家居自动化控制系统基础代码实现&#xff1a;实现智能家居自动化控制系统 4.1 数据采集模块 4.2 数据处理与控制模块 4.3 通信与网络系统实现 4.4 用户界面与数据可视化应用场景&#xff1a;家居控制与优化问题解决方案与优化收尾与总结 1. 引言 智能家…

【第一天】计算机网络 TCP/IP模型和OSI模型,从输入URL到页面显示发生了什么

TCP/IP模型和OSI模型 这两个模型属于计算机网络的体系结构。 OSI模型是七层模型&#xff0c;从上到下包括&#xff1a; 应用层&#xff0c;表示层&#xff0c;会话层&#xff0c;传输层&#xff0c;网络层&#xff0c;数据链路层&#xff0c;物理层 TCP/IP模型是四层模型&…

谷粒商城实战笔记-52~53-商品服务-API-三级分类-新增-修改

文章目录 一&#xff0c;52-商品服务-API-三级分类-新增-新增效果完成1&#xff0c;点击Append按钮&#xff0c;显示弹窗2&#xff0c;测试完整代码 二&#xff0c;53-商品服务-API-三级分类-修改-修改效果完成1&#xff0c;添加Edit按钮并绑定事件2&#xff0c;修改弹窗确定按…

C++学习笔记01-语法基础(问题-解答自查版)

前言 以下问题以Q&A形式记录&#xff0c;基本上都是笔者在初学一轮后&#xff0c;掌握不牢或者频繁忘记的点 Q&A的形式有助于学习过程中时刻关注自己的输入与输出关系&#xff0c;也适合做查漏补缺和复盘。 本文对读者可以用作自查&#xff0c;答案在后面&#xff0…

STM32--HAL库--定时器篇

一&#xff1a;如何配置定时器 打开对应工程串口配置好的工程&#xff08;上一篇博客&#xff09;做如下配置&#xff1a; 定时器的中断溢出时间计算公式是&#xff1a; 由图得T100*1000/100MHz 注&#xff1a;100MHz100000000 所以溢出时间等于1ms 关于上图4的自动重装…

ARM功耗管理之Suspend-to-RAM实验

安全之安全(security)博客目录导读 ARM功耗管理精讲与实战汇总参见&#xff1a;Arm功耗管理精讲与实战 思考&#xff1a;睡眠唤醒实验&#xff1f;压力测试&#xff1f;Suspend-to-Idle/RAM/Disk演示&#xff1f; 1、实验环境准备 2、软件代码准备 3、唤醒源 4、Suspen…

计算机技术基础 (bat 批处理)Note4

计算机技术基础 &#xff08;bat 批处理&#xff09;Note4 本节主要讲解一些 bat 批处理文件中的一些特殊符号&#xff0c;包括 , %, > 和 >>, |, ^, & 和 && 和 ||, " ", ,, ;, ()。 回显屏蔽符 回显屏蔽符 : 这个字符在批处理中的意思是关…

linux 部署flask项目

linux python环境安装: https://blog.csdn.net/weixin_41934979/article/details/140528410 1.创建虚拟环境 python3.12 -m venv .venv 2.激活环境 . .venv/bin/activate 3.安装依赖包(pip3.12 install -r requirements.txt) pip3.12 install -r requirements.txt 4.测试启…

微服务安全——OAuth2详解、授权码模式、SpringAuthorizationServer实战、SSO单点登录、Gateway整合OAuth2

文章目录 Spring Authorization Server介绍OAuth2.0协议介绍角色OAuth2.0协议的运行流程应用场景授权模式详解客户端模式密码模式授权码模式简化模式token刷新模式 OAuth 2.1 协议介绍授权码模式PKCE扩展设备授权码模式拓展授权模式 OpenID Connect 1.0协议Spring Authorizatio…

EXO-chatgpt_api 解释

目录 chatgpt_api 解释 resolve_tinygrad_tokenizer 函数 resolve_tokenizer 函数 调试和日志记录 参数 返回值 初始化方法 __init__ 异步方法 注意事项 chatgpt_api 解释 展示了如何在一个项目中组织和导入各种库、模块和类,以及如何进行一些基本的Web服务设置和配置…

机器学习 | 回归算法原理——最小二乘法

Hi&#xff0c;大家好&#xff0c;我是半亩花海。很早便想学习并总结一本很喜欢的机器学习图书——立石贤吾的《白话机器学习的数学》&#xff0c;可谓通俗易懂&#xff0c;清晰形象。那就在此分享并作为学习笔记来记录我的学习过程吧&#xff01;本章的回归算法原理基于《基于…

智能化数据安全分类分级实践

在当今数字化浪潮的迅猛推进下&#xff0c;企业和组织正遭遇前所未有的数据安全治理挑战。随着海量数据的不断产生、传输、存储和应用&#xff0c;它们面临着来自黑客攻击、内部人员恶意泄露以及数据误操作等多重安全威胁的侵袭。因此&#xff0c;构建一个健全的数据安全治理体…

【快速逆向四/无过程/有源码】浙江工商职业技术学院 统一身份认证

逆向日期&#xff1a;2024.07.23 使用工具&#xff1a;Node.js 加密方法&#xff1a;RSAUtils 文章全程已做去敏处理&#xff01;&#xff01;&#xff01; 【需要做的可联系我】 AES解密处理&#xff08;直接解密即可&#xff09;&#xff08;crypto-js.js 标准算法&#xf…

Unity ShaderLab基础

[原文1] [参考2] 一 基础知识 1. 1 着色器语言分类: 语言说明HLSL基于 OpenGL 的 OpenGL Shading LanguageGLSL基于 DirectX 的 High Level Shading LanguageCGNVIDIA 公司的 C for GraphicShader LabUnity封装了CG,HLSL,GLSL的Unity专用着色器语言,具有跨平台,图形化编程,便…

Modbus转BACnet/IP网关BA100-配硬件说明

在现代自动化系统中&#xff0c;不同设备和系统之间的通信至关重要&#xff0c;Modbus和BACnet/IP协议虽然各有优势&#xff0c;但它们之间的直接通信存在障碍。钡铼Modbus转BACnet/IP网关作为连接这两种协议的桥梁&#xff0c;允许不同系统之间的无缝数据交换。 一、Modbus转…

Ubuntu22.04安装X11vnc方法

一、问题描述 客户想使用Ubuntu图形化功能,需要远程去操作界面 二、安装方法如下 通常情况&#xff0c;ubuntu不允许root用户运行GUI程序。因此&#xff0c;我们创建普通用户进行安装配置X11vnc服务 1.安装x11vnc程序包 sudo apt-get update sudo apt-get install -y x11v…

内网隧道——HTTP隧道

文章目录 一、ReGeorg二、Neo-reGeorg三、Pivotnacci 实验网络拓扑如下&#xff1a; 攻击机kali IP&#xff1a;192.168.111.0 跳板机win7 IP&#xff1a;192.168.111.128&#xff0c;192.168.52.143 靶机win server 2008 IP&#xff1a;192.168.52.138 攻击机与Web服务器彼此之…