一种基于自适应控制策略的RDMA通信连接池管理方法与流程

文档序号:14522594阅读:293来源:国知局
一种基于自适应控制策略的RDMA通信连接池管理方法与流程

本发明涉及计算机通信优化技术领域,具体涉及一种基于自适应控制策略的rdma通信连接池管理方法。



背景技术:

随着大数据时代的到来,海量数据的通信传输需求与网络传输速度不匹配的问题更加突出。网络的传输速度成为目前制约大数据处理速度的重要因素之一。近几年提出的rdma通信技术,即远程直接内存访问技术,具有高速、低延迟、高可靠等特点,已经广泛应用在高性能计算中心和大型数据中心集群节点间的频繁通信传输上。

在高性能计算中心和大型数据中心,海量数据频繁通信传输是一种常态。rdma相比于传统的tcp/ip传输,通过网络将数据直接传入计算机的存储区,将数据从一个系统快速移动到远程系统存储器中,不需占用很多的cpu时间。它消除了外部存储器复制和文本交换操作,因而能解放内存带宽和cpu周期,具有更高的传输效率,用于改进应用系统性能。但是在目前通用的infiniband网络硬件实现rdma技术中,rdma初始化时,通信启动和建立需要很大的资源开销和时间延迟,因此需要考虑建立一种连接缓存方法,能够有效重用rdma建立的通信连接,减少频繁启动rdma连接的次数。现有的常规思路是采用类似数据库连接池的方法,一次性建立基础数量的通信连接,达到减少频繁启动rdma,提高系统性能的目的。但是这种思路也存在一些不足,一方面,当rdma通信需求很少时,空闲过多的通信连接会造成系统资源的浪费;另一方面,当rdma通信需求很多时,会出现预设连接数不能满足通信需求,通信等待时间过长而出现异常。

本发明不同于其它实现提出了一种基于自适应控制策略的rdma通信连接池方法,将切实考虑rdma通信的不同需求,根据连接请求自适应的对rdma通信连接池进行控制。



技术实现要素:

为了有效克服现有方法系统资源浪费严重以及对通信连接数量限制的不足,本发明提出一种基于自适应控制策略的rdma通信连接池管理方法。该方法采用基础连接池和缓存连接池相结合的方式设置连接池,由于缓存连接池动态变化,按需申请系统资源,因此能够减少固定数量连接池带来的资源浪费;同时连接池采用延迟断开释放算法,结合基于历史负载预测的参数设置算法,对于通信连接数量的限制比较小,减少通信等待时间。

本发明解决其技术问题所采用的技术方案:一种基于自适应控制策略的rdma通信连接池方法,其特点是包括以下步骤:

1.设置rdma通信连接池参数

根据连接池配置文件,规范化地设置初始rdma通信连接池的参数。基础连接池保持数目固定的连接,设为b;缓存连接池是动态变化的,起始为空,当基础连接池连接不能满足需求时,初始化该连接池,其最大连接数目设为e。

2.自适应管理rdma连接控制

当一个rdma通信连接请求到来时,判断基础连接池是否满载:如果未满载并且有空闲连接,就分配一个空闲通信连接给请求;如果未满载但没有空闲连接,则创建一个新的rdma通信连接。基础连接池的连接创建后,不会自动断开释放,空闲和新建的连接用完后都是归还到池中,只有通信完成,连接池关闭,才断开释放所有连接。

当基础连接池被满载使用并且有新的rdma通信连接请求到来时,使用连接池自适应控制算法,该算法包含以下几个步骤:

2.1)获取数据:根据通信日志,获取rdma当前通信请求rm的前n个通信请求的响应时间序列(ωm-1,ωm-2,…,ωm-n+1,ωm-n),

其中ωm-i为m请求前的第i个通信请求响应时间。

2.2)处理数据:对该n个通信请求响应时间序列降序排序后得计算排序后响应时间序列前个的平均值

为请求响应时间最大平均值。

2.3)连接控制:当

∈curr<b+e并且

w为连接建立等待时间,∈curr为当前通信连接数;

则控制算法选择在缓存池新建一个连接;否则,选择等待连接池释放连接来重用。

当连接池的某个连接通信结束,被返还给连接池时,需要经过连接池的延迟断开释放算法来确定是要断开连接还是只返回连接。

3.连接池延迟断开释放算法

连接池内连接数随着通信连接请求数目的多少,自适应的动态增加或减少。如果一段时间内,通信连接请求处于高水平,即通信连接请求等待队列中等待连接数qwait>0,连接就不会被断开并释放,而是被归还到了连接池中,以备下次重用。如果一段时间内,通信连接请求处于低水平,即通信连接请求等待队列中等待连接数qwait=0,很长时间内才会有一个连接请求出现,此时连接就会开始断开并释放资源。

该算法包含以下步骤:

3.1)获取请求等待队列当前等待连接数qwait,如果qwait>0,则连接不断开,归还到连接池;否则转到步骤3.2)处理。

3.2)如果空闲连接数∈free>0,则转到步骤3.3)处理,否则连接不断开,归还到连接池。

3.3)连接断开,并且释放资源。

延迟断开释放算法其主要的作用是选择合适的断开连接时机,把连接的数目控制在合理范围,减少资源浪费,同时又能满足通信需求。其使用的最合适时机是:当通信连接使用完毕,将要被归还给连接池的时候。

当本阶段通信结束后,可采用基于历史负载预测算法进行下一阶段通信参数设置,提高效率。

4.基于历史负载预测算法的参数设置

以本阶段通信连接日志作为原始数据,利用负载预测算法对历史数据进行分析,分析处理后,将预测值写回日志和配置文件,用以设置下一阶段通信连接池参数,再次重新启动新一阶段通信时,自动利用新的参数初始化设置连接池。

历史负载预测算法具体为:利用局部性原理进行短期预测,统计计算一段时间内的最大连接数bmax、最小连接数bmin。

4.1)以间隔时间t为周期,周期性记录,得到一段时间内通信连接数∈curr数组:

{t1,t2,t3,t4,t5,t6,t7,…,tn}

ti指第i个t时刻的通信连接数,n为统计的数组元素个数;

4.2)将4.1中∈curr数组的数值按照大小进行排序,得到排序后的升序数组:

4.3)分别选择个最大、最小值求它们的平均值,这样做主要是避免一个周期内获得的参数存在偶然性,消除其部分偶然性,所以进行部分选取平均处理。

bmin为最小平均值,bmax为最大平均值;

4.4)将bmax和bmin这两个值写回日志和配置文件。分别作为下一阶段缓存连接池最大连接数e和基础连接池最大连接数b的值。

与现有的通信连接池管理方法相比,本发明的有益效果是:由于采用基础加缓存双连接池的双效组合,rdma通信连接池连接数量可随通信请求的多少而动态改变,提高了可扩展性;利用延迟断开释放算法对连接池进行控制,充分考虑通信需求时间局部性原理,动态地按照每个通信连接的生存期选择合适时机进行释放归还,降低建立和断开连接的次数,减少资源浪费,提高了资源重用性;在一个阶段通信结束后,利用基于历史负载预测算法对下一阶段的通信参数进行预测设置,提高了连接池使用效率。

下面结合附图和实施方式对本发明作详细说明。

附图说明:

图1基于自适应控制策略的rdma通信连接池管理方法流程示意图

图2基础连接池和缓存连接池构成示意图

图3连接池自适应控制算法示意图

图4延迟断开算法流程示意图

图5基于历史负载预测算法示意图

具体实施方式

以下将结合说明书附图和具体实施方式对本发明作进一步详细说明。

参照附图1,基于自适应控制策略的rdma通信连接池管理方法,主要包括以下几个步骤:

1.根据配置文件设置rdma通信连接池参数

参照附图2,rdma通信连接池主要包括基础连接池和缓存连接池两个部分,每种连接池在通信过程中都将保持通信连接,基础连接池固定大小为b,缓存连接池最大连接数为e,在通信过程中,基础连接池和缓存连接池分别保存不超过其最大数限制的通信连接。

2.自适应管理rdma连接控制

当一个rdma通信连接请求到来时,判断基础连接池是否满载:如果并且有空闲连接,就分配一个空闲通信连接给请求;如果未满载但没有空闲连接,则创建一个新的rdma通信连接。基础连接池的连接创建后,不会自动断开释放,空闲和新建的连接用完后都是归还到池中,只有通信完成,连接池关闭,才断开释放所有连接。

当基础连接池被满载使用并且有新的rdma通信连接请求到来时,使用连接池自适应控制算法,参照附图3,该算法包含以下几个步骤:

2.1)获取数据:根据通信日志,获取rdma当前通信请求rm的前n个通信请求的响应时间序列(ωm-1,ωm-2,…,ωm-n+1,ωm-n),

其中ωm-i为m请求前的第i个通信请求响应时间。

2.2)处理数据:对该n个通信请求响应时间序列降序排序后得计算排序后响应时间序列前个的平均值

为请求响应时间最大平均值。

2.3)连接控制:当

∈curr<b+e并且

w为连接建立等待时间,∈curr为当前通信连接数;

则控制算法选择在缓存池新建一个连接;否则,选择等待连接池释放连接来重用。

3.连接池延迟断开释放算法

延迟断开释放算法其主要的作用是选择合适的断开连接时机,把连接的数目控制在合理范围,减少资源浪费,同时又能满足通信需求。其使用的最合适时机是:当通信连接使用完毕,将要被归还给连接池的时候。

参照附图4,该算法包含以下步骤:

3.1)获取请求等待队列当前等待连接数qwait,如果qwait>0,则连接不断开,归还到连接池;否则转到步骤3.2)处理。

3.2)如果空闲连接数∈free>0,则转到步骤3.3)处理,否则连接不断开,归还到连接池。

3.3)连接断开,并且释放资源。

当本阶段通信结束后,可采用基于历史负载预测算法进行下一阶段通信参数设置,提高效率。

4.基于历史负载预测算法的参数设置

以本阶段通信连接日志作为原始数据,利用负载预测算法对历史数据进行分析,分析处理后,将预测值写回日志和配置文件,用以设置下一阶段通信连接池参数,再次重新启动新一阶段通信时,自动利用新的参数初始化设置连接池。

参照附图5,历史负载预测算法具体为:利用局部性原理进行短期预测,统计计算一段时间内的最大连接数bmax、最小连接数bmin。

4.1)以间隔时间t为周期,周期性记录,得到本阶段通信连接数∈curr数组:

{t1,t2,t3,t4,t5,t6,t7,…,tn}

ti指第i个t时刻的通信连接数,n为统计的数组元素个数;

4.2)将4.1中∈curr数组的数值按照大小进行排序,得到排序后的升序数组:

4.3)分别选择个最大、最小值求它们的平均值,这样做主要是避免一个周期内获得的参数存在偶然性,消除其部分偶然性,所以进行部分选取平均处理。

bmin为最小平均值,bmax为最大平均值;

4.4)将bmax和bmin这两个值写回日志和配置文件;分别作为下一阶段缓存连接池最大连接数e和基础连接池最大连接数b的值。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1