当前位置: 首页 > 专利查询>清华大学专利>正文

改善RDMA单边操作可扩展性的自适应优化方法及系统技术方案

技术编号:37703057 阅读:19 留言:0更新日期:2023-06-01 23:50
本发明专利技术涉及系统软件技术领域,特别涉及一种改善RDMA单边操作可扩展性问题的自适应优化方法及系统。本发明专利技术主要技术方案是:初始化线程期间,按照线程感知的方式分配RDMA资源,确保发送RDMA请求的数据通路不会发生线程间锁同步;通过信用点机制限制发送队列深度,从而防止缓存抖动;通过自适应方式调节最大发送队列深度,而不需要提前训练和/或标识负载特征。对比现有系统,本发明专利技术所公开的自适应优化方法可避免线程/协程数量提升时出现性能下降,同时还能通过提高网卡链路的利用率以最大化消息处理性能。化消息处理性能。化消息处理性能。

【技术实现步骤摘要】
改善RDMA单边操作可扩展性的自适应优化方法及系统


[0001]本专利技术涉及系统软件
,特别涉及改善RDMA单边操作可扩展性问题的自适应优化方法及系统。

技术介绍

[0002]远程直接内存访问(RDMA)是数据中心常用的网络通信技术。RDMA支持读、写、原子自增和原子交换等单边操作,这一过程绕过远端主机操作系统,因此节省了远端主机的大量CPU资源。同时,RDMA还降低了网络通信延迟,提高了消息传输速率及带宽。以ConnectX-6为例,其延迟最低为600ns,每秒可处理200M条消息,带宽最高可为200Gbps。
[0003]内存解耦(Memory disaggregation)架构因其良好的内存资源利用率和可伸缩性在工业界和学术界逐渐得到了广泛应用。传统服务器的计算单元和内存单元被分离出来,分别形成了计算池和存储池。计算池中的节点具有大量的处理器核心及少量内存(作为缓存使用);存储池中的节点具有大容量的DRAM或NVM存储空间,但不具备(或仅具备有限的)计算能力。计算池中的节点主要依靠各类RDMA单边操作主动存取位于存储池中的内存数据,而存储池中的节点几乎不需要主动发起任何操作(除建立连接)。
[0004]要实现RDMA单边操作,在建立RDMA连接时需要使用面向连接的可靠服务(RC)通信模式。在RC通信模式下,1个本地队列对(QP)能且只能与1个远程QP建立连接,方可存取对应远端节点的内存。因此,RC通信模式较面向数据报的不可靠服务(UD)更容易产生可扩展性问题。此前研究表明,若QP数量过多,发送RDMA请求期间会出现RNIC板载缓存抖动,从而降低消息处理吞吐率。
[0005]由于计算池中的节点具有大量处理器核心,因此内存解耦型应用程序可以启用大量线程。这些线程都有可能使用RDMA单边操作。FaRM、LITE提出了QP共享的方法,即对于某个远端节点,k个线程固定共享一个QP。当该进程有N个线程,R个远端节点时,该进程需要创建RN/k个QP。虽然该优化降低了进程需要的QP数量,但这是以提高线程间同步成本为代价的。因此,在线程数量上升时,该方法仍然无法取得良好性能。
[0006]FORD、Sherman等内存解耦型应用程序,其开源实现中每个线程为每个远端节点分配一个QP,因此避免了QP跨线程共享。但是,即使采用该策略,当线程或协程数量上升时,消息吞吐率仍然会下降,因此无法满足应用程序可扩展性需求。经过实验,我们发现造成这种现象并非单纯来自QP数量过多,而是以下两个因素共同作用的结果:
[0007]1、不同QP之间可能共享同一个门铃寄存器(Doorbel lRegister),因此线程间仍然存在同步开销;
[0008]2、若位于所有发送队列(Send Queue,SQ)的工作请求(Work Request,WR)大小超过板载缓存,会引发缓存抖动(cache thrash),从而影响消息处理吞吐率。
[0009]综上所述,现有技术中未能很好地解决当线程或协程数量上升时,消息吞吐率下降的问题。基于RDMA的分布式应用程序需要从RDMA资源分配和活动工作请求限流两个角度进行优化,避免线程或协程增加时消息处理速率下降,以确保包括内存解耦架构等主要依
赖单边RDMA操作的应用程序在不修改应用逻辑的前提下,取得更好的可扩展性。

技术实现思路

[0010]针对上述问题,本专利技术提供一种改善RDMA单边操作可扩展性问题的自适应优化方法及系统。
[0011]改善RDMA单边操作可扩展性问题的自适应优化方法,所述方法包括:
[0012]在本地节点与远端节点建立连接期间,按照线程感知的方式分配RDMA资源;
[0013]每隔固定时间设置用于判断RDMA单边工作请求是否提交的信用点;
[0014]每当用户提交一组RDMA单边工作请求时,若当前线程的信用点大于所述工作请求的数量,则提交所述工作请求;否则推迟所述工作请求的提交,直到当前线程的信用点大于所述工作请求的数量时才提交。
[0015]进一步的,所述分配RDMA资源,包括初始化信用点、分配QP对象和分配队列CQ对象。
[0016]进一步的,所述本地节点与所述远端节点建立连接期间,按照线程感知的方式分配RDMA资源,具体包括:
[0017]所述本地节点创建一个完成队列CQ对象;
[0018]所述本地节点为每个线程分配一个可供多个QP对象共享的门铃寄存器,赋信用点Credit值Ct为初始值CI;
[0019]所述本地节点分别为每个线程创建一个QP对象,同线程的所有QP对象绑定该线程分配的所述门铃寄存器和所述队列CQ对象;
[0020]所述远端节点创建相同数量的QP对象,该QP对象可绑定任意的门铃寄存器和CQ对象;
[0021]本地节点和所述远端节点交换必要信息,设置RC通信模式;
[0022]若当前线程还有远端节点未连接,则重新选取一个远端节点并重复上述操作,直至远端节点全部连接。
[0023]进一步的,所述每当用户提交一组RDMA单边工作请求时,若当前线程的信用点大于所述工作请求的数量,则提交所述工作请求;否则推迟所述工作请求的提交,直到当前线程的信用点大于所述工作请求的数量时才提交,具体包括:
[0024]检查当前线程的信用点Ct是否大于这组工作请求的数量N;若不符合,暂停当前协程的执行,直到信用点Ct变化;
[0025]若符合则分配信用点,即设置当前线程的信用点Ct=Ct-N;
[0026]使用当前线程内与目标远端节点对应的QP,向RDMA设备发送一条请求;
[0027]当这组工作请求已处理完毕时则回收信用点,即设置当前线程的信用点Ct=Ct+N。
[0028]进一步的,所述每隔固定时间设置用于判断RDMA单边工作请求是否提交的信用点,具体包括:
[0029]每个固定时间周期包括常规执行模式和采样测试模式两个阶段;
[0030]采样测试模式采用微基准测试方法确定同周期常规执行模式所使用的最大信用点。
[0031]进一步的,所述每个固定时间周期包括常规执行模式和采样测试模式两个阶段,具体包括:
[0032]常规执行模式下最大发送队列深度保持不变;在一定时间后切换到采样测试模式;
[0033]采样测试模式下需要对位于最大发送队列深度集合的每个元素Di分别进行测试,获得反映其消息处理速率的指标f(Dk)。
[0034]进一步的,所述获得反映消息处理速率的指标f(Dk),具体包括:
[0035]选取待测试的最大发送队列深度Dk;
[0036]获取当前最大发送队列深度D,按公式Ct=Ct+(Dk-D)调整每个线程当前的信用点;同时,修改当前最大发送队列深度D为Dk;
[0037]开始测量每个线程处理的RDMA消息数,在固定时间后停止测量,得到单位时间内所有线程处理的RDMA消息总数f(Dk);
[0038]若还有新的最大发送队列深本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.改善RDMA单边操作可扩展性问题的自适应优化方法,其特征在于,所述方法包括:在本地节点与远端节点建立连接期间,按照线程感知的方式分配RDMA资源;每隔固定时间设置用于判断RDMA单边工作请求是否提交的信用点;每当用户提交一组RDMA单边工作请求时,若当前线程的信用点大于所述工作请求的数量,则提交所述工作请求;否则推迟所述工作请求的提交,直到当前线程的信用点大于所述工作请求的数量时才提交。2.根据权利要求1所述的改善RDMA单边操作可扩展性问题的自适应优化方法,其特征在于,所述分配RDMA资源,包括初始化信用点、分配QP对象和分配队列CQ对象。3.根据权利要求1所述的改善RDMA单边操作可扩展性问题的自适应优化方法,其特征在于,所述本地节点与所述远端节点建立连接期间,按照线程感知的方式分配RDMA资源,具体包括:所述本地节点创建一个完成队列CQ对象;所述本地节点为每个线程分配一个可供多个QP对象共享的门铃寄存器,赋信用点Credit值Ct为初始值CI;所述本地节点分别为每个线程创建一个QP对象,同线程的所有QP对象绑定该线程分配的所述门铃寄存器和所述队列CQ对象;所述远端节点创建相同数量的QP对象,该QP对象可绑定任意的门铃寄存器和CQ对象;本地节点和所述远端节点交换必要信息,设置RC通信模式;若当前线程还有远端节点未连接,则重新选取一个远端节点并重复上述操作,直至远端节点全部连接。4.根据权利要求1所述的改善RDMA单边操作可扩展性问题的自适应优化方法,其特征在于,所述每当用户提交一组RDMA单边工作请求时,若当前线程的信用点大于所述工作请求的数量,则提交所述工作请求;否则推迟所述工作请求的提交,直到当前线程的信用点大于所述工作请求的数量时才提交,具体包括:检查当前线程的信用点Ct是否大于这组工作请求的数量N;若不符合,暂停当前协程的执行,直到信用点Ct变化;若符合则分配信用点,即设置当前线程的信用点Ct=Ct-N;使用当前线程内与目标远端节点对应的QP,向RDMA设备发送一条请求;当这组工作请求已处理完毕时则回收信用点,即设置当前线程的信用点Ct=Ct+N。5.根据权利要求1所述的改善RDMA单边操作可扩展性问题的自适应优化方法,其特征在于,所述每隔固定时间设置用于判断RDMA单边工作请求是否提交的信用点,具体包括:每个固定时间周期包括常规执行模式和采样测试模式两...

【专利技术属性】
技术研发人员:武永卫陈康姜进磊任峰
申请(专利权)人:清华大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1