一种基于强化学习的交换机共享缓存分配方法及装置与流程

文档序号:24160559发布日期:2021-03-05 16:15阅读:76来源:国知局
一种基于强化学习的交换机共享缓存分配方法及装置与流程

[0001]
本发明涉及缓存分配技术领域,特别是涉及一种基于强化学习的交换机共享缓存分配方法及装置。


背景技术:

[0002]
共享缓存交换机是目前网络中常用的一种交换机,这种交换机中用于发送数据的各个端口共用交换机的缓存池。具体的,当突发流量的到达速率超过端口服务速率一定限度时,端口接收的数据会在缓存池中被积累。
[0003]
相关技术中,为了实现不同端口对缓存池的共用,可以采用动态阈值(dynamic threshold,dt)策略。动态阈值策略包括:获取与缓存池的当前空闲缓存空间大小成正比的动态阈值,当任一端口的待缓存数据的数据量大于该动态阈值时,丢弃新到该端口的待缓存数据,不放入缓存池存储。
[0004]
但是,在具体应用中交换机传输的数据大小往往动态变化,使得不同的端口存在不同的数据传输情况,例如,某一端口数据量突增,其他端口的数据量平缓。此时,其他端口没有占用缓存池,缓存池存在足够的空闲缓存空间可以存储数据量突增的端口的待缓存数据。但由于对不同的端口均使用相同的动态阈值,导致在缓存池有足够的空闲缓存空间的情况下,某些数据量突增的端口的不必要丢包,出现交换机的数据传输性能降低的问题。


技术实现要素:

[0005]
本发明实施例的目的在于提供一种基于强化学习的交换机共享缓存分配方法及装置,以实现兼顾交换机的缓存分配的公平性,以及交换机的数据传输性能的效果。具体技术方案如下:
[0006]
第一方面,本申请实施例提供了一种基于强化学习的交换机共享缓存分配方法,所述方法包括:
[0007]
当交换机的任一端口触发缓存分配条件时,获取所述交换机的各端口的待缓存数据的数据量,所述各端口对所述交换机的缓存池的当前占用量,以及所述缓存池的当前空闲缓存空间的大小,作为所述交换机的状态信息;
[0008]
基于所述交换机的状态信息,利用预先训练得到的强化学习模型,获取触发所述缓存分配条件的待分配端口的缓存阈值;其中,所述强化学习模型为利用多个样本状态信息,以及每个样本状态信息对应的样本奖励值训练得到的神经网络;
[0009]
基于所述缓存阈值,为所述待分配端口进行缓存分配。
[0010]
第二方面,本申请实施例提供了一种基于强化学习的交换机共享缓存分配装置,所述装置包括:
[0011]
状态信息获取模块,用于当交换机的任一端口触发缓存分配条件时,获取所述交换机的各端口的待缓存数据的数据量,所述各端口对所述交换机的缓存池的当前占用量,以及所述缓存池的当前空闲缓存空间的大小,作为所述交换机的状态信息;
[0012]
缓存阈值获取模块,用于基于所述交换机的状态信息,利用预先训练得到的强化学习模型,获取触发所述缓存分配条件的待分配端口的缓存阈值;其中,所述强化学习模型为利用多个样本状态信息,以及每个样本状态信息对应的样本奖励值训练得到的神经网络;
[0013]
缓存分配模块,用于基于所述缓存阈值,为所述待分配端口进行缓存分配。
[0014]
本发明实施例有益效果:
[0015]
本发明实施例提供的方案中,强化学习模型为预先利用多个样本状态信息以及每个样本状态信息对应的样本奖励值,训练得到的神经网络。因此,当交换机的任一端口触发缓存分配条件时,可以获取交换机的各端口的待缓存数据的数据量,各端口对交换机的缓存池的当前占用量,以及缓存池的当前空闲缓存空间的大小,作为所述交换机的状态信息,进而基于交换机的状态信息,利用预先训练得到的强化学习模型,获取待分配端口的缓存阈值,从而基于缓存阈值,为待分配端口进行缓存分配。可见通过本方案,可以基于与当前数据传输产生的状态信息对应的缓存阈值,从而实现与待分配端口的当前数据传输情况匹配的缓存分配,与对不同的端口均使用相同的动态阈值相比,可以兼顾交换机的缓存分配的公平性,以及交换机的数据传输性能。
[0016]
当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
[0017]
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
[0018]
图1为本发明一实施例提供的一种基于强化学习的交换机共享缓存分配方法的流程示意图;
[0019]
图2为本发明一实施例提供的一种基于强化学习的交换机共享缓存分配方法中,分层分配的示例图;
[0020]
图3为本发明一实施例提供的一种基于强化学习的交换机共享缓存分配方法中,强化学习模型获取场景的示例图;
[0021]
图4为本发明一实施例提供的一种基于强化学习的交换机共享缓存分配装置的结构示意图;
[0022]
图5为本发明一实施例提供的电子设备的结构示意图。
具体实施方式
[0023]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0024]
本发明实施例提供的一种基于强化学习的交换机共享缓存分配方法,可以应用于
电子设备,该电子设备具体可以为交换机,或者对交换机执行的数据传输进行管理的服务器、计算机以及移动终端等等设备。任何可以进行交换机共享缓存分配的电子设备,均可用于本发明,本实施例对此不作限制。
[0025]
如图1所示,本发明一实施例提供的一种基于强化学习的交换机共享缓存分配方法的流程,该方法可以包括如下步骤:
[0026]
s101,当交换机的任一端口触发缓存分配条件时,获取交换机的各端口的待缓存数据的数据量,各端口对交换机的缓存池的当前占用量,以及缓存池的当前空闲缓存空间的大小,作为交换机的状态信息。
[0027]
在一种可选的实施方式中,上述缓存分配条件,具体可以包括:
[0028]
交换机任一端口接收数据的速度大于该端口的线速;
[0029]
相应的,上述交换机的任一端口触发缓存分配条件,具体可以包括如下步骤:
[0030]
检测到交换机的任一端口满足缓存分配条件,且本次检测到满足缓存分配条件与上一次检测到满足缓存分配条件之间的时间间隔,大于最小间隔阈值时,判定交换机的任一端口触发缓存分配条件。
[0031]
其中,线速指网络设备交换转发能力的一个标准,是交换机接口处理器或接口卡和数据总线间所能吞吐的最大数据量。并且,通过限定本次检测到满足缓存分配条件与上一次检测到满足缓存分配条件之间的时间间隔,大于最小间隔阈值,可以防止在较小时间间隔内不同端口同时满足触发条件时造成的过度触发,所导致的缓存分配性能下降问题。
[0032]
并且,交换机的各端口的待缓存数据为交换机的各端口发送的数据,由于会在缓存池中存储,因此称为待缓存数据。在各端口发送的数据存储在缓存池中时,可以记录各端口对缓存池的缓存空间的占用量。缓存池的当前空闲缓存空间的大小,即缓存池当前未被占用的缓存空间的大小。
[0033]
s102,基于交换机的状态信息,利用预先训练得到的强化学习模型,获取触发缓存分配条件的待分配端口的缓存阈值。
[0034]
其中,强化学习模型为利用多个样本状态信息,以及每个样本状态信息对应的样本奖励值训练得到的神经网络。
[0035]
在具体应用中,基于交换机的状态信息,利用预先训练得到的强化学习模型,获取触发缓存分配条件的待分配端口的缓存阈值的方式,可以是多种的。示例性的,可以将交换机的状态信息输入预先训练得到的强化学习模型,得到触发缓存分配条件的待分配端口的缓存阈值。此时,强化学习模型的输入层的神经元个数和输出层的神经元个数均等于交换机的端口个数。或者,示例性的,可以对交换机的
[0036]
端口进行分组,分组个数小于每组中的端口数量,进而将交换机的状态信息输入预先训练得到的强化学习模型,得到触发缓存分配条件的待分配端口的缓存阈值。此时,强化学习模型的输入层的神经元个数和输出层的神经元个数均等于分组中端口的数量。为了便于理解和合理布局,后续以可选实施例的形式对第二种示例性说明进行具体描述。
[0037]
并且,样本状态信息可以是交换机的历史状态信息,或者,仿真得到的交换机的状态信息。为了便于理解和合理布局,后续以可选实施例的形式,对强化学习模型的结构,以及训练得到强化学习模型的获取方式进行具体说明。
[0038]
s103,基于缓存阈值,为待分配端口进行缓存分配。
[0039]
在具体应用中,基于缓存阈值,为待分配端口进行缓存分配,与采用动态阈值策略进行缓存分配类似,区别在于所利用的阈值不同。具体的,当待分配端口的待缓存数据的数据量大于待该待分配端口的缓存阈值时,丢弃该端口的待缓存数据,不放入缓存池存储。
[0040]
本发明实施例提供的方案中,强化学习模型为预先利用多个样本状态信息以及每个样本状态信息对应的样本奖励值,训练得到的神经网络。因此,当交换机的任一端口触发缓存分配条件时,可以获取交换机的各端口的待缓存数据的数据量,各端口对交换机的缓存池的当前占用量,以及缓存池的当前空闲缓存空间的大小,作为所述交换机的状态信息,进而基于交换机的状态信息,利用预先训练得到的强化学习模型,获取待分配端口的缓存阈值,从而基于缓存阈值,为待分配端口进行缓存分配。可见通过本方案,可以基于与当前数据传输产生的状态信息对应的缓存阈值,从而实现与待分配端口的当前数据传输情况匹配的缓存分配,与对不同的端口均使用相同的动态阈值相比,可以兼顾交换机的缓存分配的公平性,以及交换机的数据传输性能。
[0041]
在一种可选的实施方式中,上述强化学习模型,具体可以包括:输入层,与输入层连接的卷积层,与卷积层连接的全连接层,以及与全连接层连接的输出层;
[0042]
上述输入层,用于接收输入强化学习模型的数据;
[0043]
上述卷积层,用于提取输入强化学习模型的数据的特征;
[0044]
上述全连接层,用于获取各端口的缓存阈值;
[0045]
上述输出层,用于输出全连接层获取的缓存阈值。
[0046]
其中,当强化学习模型的输入层的神经元个数和输出层的神经元个数均等于交换机的端口个数时,输入强化学习模型的数据可以为交换机的状态信息。或者,当强化学习模型的输入层的神经元个数和输出层的神经元个数均等于交换机的端口的分组中端口的数量时,输入强化学习模型的数据可以为各分组的分组状态信息。并且,全连接层,用于获取各端口的缓存阈值,具体可以包括:全连接层输出交换机各端口的缓存占比,并将缓存占比与当前可用缓存量相乘,获得各端口的缓存阈值。其中,任一端口的缓存占比为该端口对缓存池的当前占用量,与缓存池的当前总占用量之间的比值。另外,强化学习模型具体可以为深度强化学习模型。
[0047]
在一种可选的实施方式中,在获取强化学习模型之前,本发明实施例提供的基于强化学习的交换机共享缓存分配方法,还可以包括如下步骤:
[0048]
获取交换机的端口的总个数,并按照总个数将交换机的端口划分为每组包括m个端口的n个分组;
[0049]
将输入层的神经元个数,以及输出层的神经元个数分别设置为m个;
[0050]
相应的,上述基于交换机的状态信息,利用预先训练得到的强化学习模型,获取触发缓存分配条件的待分配端口的缓存阈值,具体可以包括如下步骤:
[0051]
按照n个分组,将交换机的状态信息划分为各端口所属分组的分组状态信息;
[0052]
针对n个分组,将该分组的分组状态信息输入预先训练得到的强化学习模型,获得该分组的缓存阈值;
[0053]
基于各分组的缓存阈值以及当前空闲缓存空间的大小,为各分组进行缓存分配,得到该分组的缓存空间大小;
[0054]
针对n个分组,将该分组的缓存空间大小,该分组中各端口的待缓存数据的数据
量,以及该分组中各端口对交换机的缓存池的当前占用量,输入预先训练得到的强化学习模型,获得触发缓存分配条件的待分配端口的缓存阈值。
[0055]
其中,当满足分组数n<=每组包含端口数m时,利于交换机端口的扩展。
[0056]
示例性的,如图2所示。交换机的状态信息预处理具体可以包括本可选实施例中关于获得分组状态信息,获得各分组的缓存阈值以及获得各分组的缓存空间大小的步骤。以此为基础,可以针对n个分组,将该分组的缓存空间大小,该分组中各端口的待缓存数据的数据量,以及该分组中各端口对交换机的缓存池的当前占用量,输入预先训练得到的强化学习模型,从而得到强化学习模型的输出层神经元输出的交换机端口缓存阈值。其中,交换机端口缓存阈值具体为触发缓存分配条件的待分配端口的缓存阈值。
[0057]
本可选实施例通过对交换机的端口的分组,实现分层分配和共享强化学习模型,可以有效减少强化学习模型中卷积层和全连接层的复杂程度,减少状态空间和决策空间,降低模型的复杂度,在线应用时计算速度快,且可以按照分组的思想扩大交换机的端口,有利于扩展。
[0058]
在一种可选的实施方式中,上述强化学习模型可以采用如下步骤训练得到:
[0059]
获取多个样本状态信息;
[0060]
利用多个样本状态信息对神经网络模型进行训练,获得每个样本状态信息对应的样本缓存阈值;
[0061]
利用每个样本缓存阈值,获取该样本缓存阈值对应端口的丢包率,作为该样本状态信息对应的样本奖励值;
[0062]
当样本奖励值满足预设最小化条件时,将经过训练的神经网络模型作为强化学习模型,否则,调整进行训练的神经网络模型的参数,并重复对调整后的神经网络模型进行训练和参数调整的过程,直到样本奖励值满足预设最小化条件。
[0063]
为了训练得到强化学习模型,需要利用强化学习模型的要素对神经网络模型进行训练。其中,强化学习模型的要素可以包括:环境的状态s,t时刻环境的状态st,st是经过一定时长产生的环境状态集中某一个状态;个体的动作a,t时刻个体采取的动作at,at经过一定时长产生的动作集中某一个动作;以及环境的奖励r,t时刻个体在状态st采取的动作at,at对应的奖励rt+1会在t+1时刻得到。对应到本实施例中,奖励为预设最小化条件:端口的丢包率最小;状态为在共享缓存交换机仿真环境中,交换机的端口进行数据传输所产生的状态信息;动作为强化学习模型输出的端口的缓存阈值。其中,交换机的端口进行数据传输所产生的状态信息具体可以包括:交换机的状态信息,分组状态信息,或者针对n个分组,将该分组的缓存空间大小,该分组中各端口的待缓存数据的数据量,以及该分组中各端口对交换机的缓存池的当前占用量作为分组中端口的状态信息。下面以可选实施例的形式进行具体说明。
[0064]
在一种可选的实施方式中,上述预设最小化条件可以包括:
[0065][0066]
其中,r为预设最小化条件,t为本次缓存分配和下一次缓存分配之间的时间间隔,k为交换机的端口总个数,li
t
为第i个端口在第t个时刻的样本丢包率。
[0067]
示例性的,如图3所示。通过共享缓存交换机仿真环境获取样本状态信息的场景,
整体可以分为模型的训练和样本的获取两部分。其中,模型的训练为关于模型的部分,具体可以包括样本状态信息预处理以及进行训练的神经网络模型。样本的获取包括共享缓存交换机仿真环境,用于通过该环境获取样本状态信息和样本奖励值。共享缓存交换机仿真环境可以模拟交换机的数据传输,产生样本状态信息,用于进行模型的训练。经过预处理的样本状态信息输入进行训练的神经网络模型,可以获得动作:样本缓存阈值,进而将样本缓存阈值传输给共享缓存交换机仿真环境,进行缓存分配。在此基础上,共享缓存交换机仿真环境中交换机的端口按照缓存分配的结果进行数据传输,并产生相应的样本丢包率,作为样本奖励值。在该训练过程中,以样本奖励值最小化为目标,调整进行训练的神经网络模型的参数。
[0068]
相应与上述方法实施例,本申请还提供一种基于强化学习的交换机共享缓存分配装置。
[0069]
如图4所示,本申请一实施例提供的一种基于强化学习的交换机共享缓存分配装置,所述装置包括:
[0070]
状态信息获取模块401,用于当交换机的任一端口触发缓存分配条件时,获取所述交换机的各端口的待缓存数据的数据量,所述各端口对所述交换机的缓存池的当前占用量,以及所述缓存池的当前空闲缓存空间的大小,作为所述交换机的状态信息;
[0071]
缓存阈值获取模块402,用于基于所述交换机的状态信息,利用预先训练得到的强化学习模型,获取触发所述缓存分配条件的待分配端口的缓存阈值;其中,所述强化学习模型为利用多个样本状态信息,以及每个样本状态信息对应的样本奖励值训练得到的神经网络;
[0072]
缓存分配模块403,用于基于所述缓存阈值,为所述待分配端口进行缓存分配。
[0073]
在一种可选的实施例中,上述强化学习模型,可以包括:输入层,与所述输入层连接的卷积层,与所述卷积层连接的全连接层,以及与所述全连接层连接的输出层;
[0074]
所述输入层,用于接收输入所述强化学习模型的数据;
[0075]
所述卷积层,用于提取输入所述强化学习模型的数据的特征;
[0076]
所述全连接层,用于获取所述各端口的缓存阈值;
[0077]
所述输出层,用于输出所述全连接层获取的缓存阈值。
[0078]
在一种可选的实施方式中,上述装置还包括分层模块,用于:
[0079]
在获取所述强化学习模型之前,获取所述交换机的端口的总个数,并按照所述总个数将所述交换机的端口划分为每组包括m个端口的n个分组;
[0080]
将所述输入层的神经元个数,以及所述输出层的神经元个数分别设置为所述m个;
[0081]
所述缓存阈值获取模块402,具体用于:
[0082]
按照所述n个分组,将所述交换机的状态信息划分为所述各端口所属分组的分组状态信息;
[0083]
针对所述n个分组,将该分组的所述分组状态信息输入所述预先训练得到的强化学习模型,获得该分组的缓存阈值;
[0084]
基于各分组的缓存阈值以及所述当前空闲缓存空间的大小,为各分组进行缓存分配,得到该分组的缓存空间大小;
[0085]
针对所述n个分组,将该分组的缓存空间大小,该分组中各端口的待缓存数据的数
据量,以及该分组中各端口对所述交换机的缓存池的当前占用量,输入所述预先训练得到的强化学习模型,获得触发所述缓存分配条件的待分配端口的缓存阈值。
[0086]
在一种可选的实施方式中,上述缓存分配条件,包括:
[0087]
交换机任一端口接收的数据量大于该端口的线速;
[0088]
所述交换机的任一端口触发缓存分配条件,包括:
[0089]
检测到交换机的任一端口满足所述缓存分配条件,且本次检测到满足所述缓存分配条件与上一次检测到满足所述缓存分配条件之间的时间间隔,大于最小间隔阈值时,判定所述交换机的任一端口触发缓存分配条件。
[0090]
本发明实施例还提供了一种电子设备,如图5所示,包括处理器501、通信接口502、存储器503和通信总线504,其中,处理器501,通信接口502,存储器503通过通信总线504完成相互间的通信,
[0091]
存储器503,用于存放计算机程序;
[0092]
处理器501,用于执行存储器503上所存放的程序时,实现如下步骤:
[0093]
当交换机的任一端口触发缓存分配条件时,获取所述交换机的各端口的待缓存数据的数据量,所述各端口对所述交换机的缓存池的当前占用量,以及所述缓存池的当前空闲缓存空间的大小,作为所述交换机的状态信息;
[0094]
基于所述交换机的状态信息,利用预先训练得到的强化学习模型,获取触发所述缓存分配条件的待分配端口的缓存阈值;其中,所述强化学习模型为利用多个样本状态信息,以及每个样本状态信息对应的样本奖励值训练得到的神经网络;
[0095]
基于所述缓存阈值,为所述待分配端口进行缓存分配。
[0096]
上述电子设备提到的通信总线可以是外设部件互连标准(peripheral component interconnect,pci)总线或扩展工业标准结构(extended industry standard architecture,eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0097]
通信接口用于上述电子设备与其他设备之间的通信。
[0098]
存储器可以包括随机存取存储器(random access memory,ram),也可以包括非易失性存储器(non-volatile memory,nvm),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
[0099]
上述的处理器可以是通用处理器,包括中央处理器(central processing unit,cpu)、网络处理器(network processor,np)等;还可以是数字信号处理器(digital signal processing,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
[0100]
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一基于强化学习的交换机共享缓存分配方法的步骤。
[0101]
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一基于强化学习的交换机共享缓存分配方法。
[0102]
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solid state disk(ssd))等。
[0103]
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0104]
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0105]
以上所述仅为本发明的较佳实施例,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1