CN109471847B - 一种i/o拥塞控制方法及控制系统 - Google Patents
一种i/o拥塞控制方法及控制系统 Download PDFInfo
- Publication number
- CN109471847B CN109471847B CN201811083583.3A CN201811083583A CN109471847B CN 109471847 B CN109471847 B CN 109471847B CN 201811083583 A CN201811083583 A CN 201811083583A CN 109471847 B CN109471847 B CN 109471847B
- Authority
- CN
- China
- Prior art keywords
- performance index
- observation
- index data
- data
- current
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Abstract
本发明公开了一种I/O拥塞控制方法及系统,包括:在服务端获得当前观测时间戳下各节点上报的性能指标数据并预处理,作为观测数据;通过聚类分析得到当前负载类别,并由此将观测数据存储到重放数据库中;分别从重放数据库和观测数据中随机提取多条历史性能指标数据,以得到训练数据集;构建基于神经网络的回报奖励值计算模型,并利用训练数据集训练回报奖励值计算模型;选定一个调控动作,并利用回报奖励值计算模型计算相应的回报奖励值;重复此步骤,以获得最大的回报奖励值所对应的目标调控动作;将目标调控动作广播至所有节点,以由此设置各节点的参数。本发明能够在避免集群产生I/O拥塞,同时提高系统I/O吞吐率并降低可控I/O延迟。
Description
技术领域
本发明属于分布式文件系统I/O拥塞控制领域,更具体地,涉及一种I/O拥塞控制方法及系统。
背景技术
分布式文件系统为了实现高性能和高并行,客户端通常先将应用层的I/O请求分割成若干个请求序列,再将这些请求序列发送到服务端,每一个I/O请求都要需要通过竞争获得服务资源(如存储带宽、磁盘访问时间片等)来进行I/O操作。分布式文件系统集群中一般会有成百上千的客户端运行各类应用,因此,资源竞争通常十分激烈。盲目的资源竞争会造成很多问题,例如:争夺网络带宽会导致网络丢包、超时以及非预期地中断连接;在服务端争夺存储器资源会降低缓存效率、增加存储器访问延迟,基于闪存的存储系统还可能导致写放大问题;大量的资源竞争还会造成应用程序相互等待,客户端请求长时间无法响应等等。这些问题会导致系统I/O吞吐率下降和I/O延迟不可控,造成类似于Nagle网络拥塞的I/O拥塞问题,降低整个存储系统的资源利用率。
现有分布式文件系统的设计对大规模集群下的I/O拥塞问题考虑不足,往往采用手动控制的方法对集群的存储系统进行I/O拥塞控制,无法对I/O请求进行有效管控,使得集群整体的效率不高。手动地对集群的存储系统进行I/O拥塞控制在实际应用中不够灵活,尤其是当存储系统的规模达到艾级时,更是难以实现。
发明内容
针对现有技术的缺陷和改进需求,本发明提供了一种I/O拥塞控制方法及控制系统,其目的在于,在服务端使用深度增强方法优化I/O拥塞控制参数,以根据分布式文件系统集群当前的运行状况,自动地调整服务端I/O请求调度参数并相应地设置客户端的参数,从而在避免集群产生I/O拥塞的前提下,最大化提高系统I/O吞吐率和降低可控I/O延迟。
为实现上述目的,按照本发明的第一方面,提供了一种I/O拥塞控制方法,按照具有固定时间间隔的观测时间戳执行I/O拥塞控制,包括如下步骤:
(1)在服务端获得当前观测时间戳下各节点上报的性能指标数据并进行预处理,作为当前观测时间戳下的观测数据;若观测数据有效,则转入步骤(2);否则,转入步骤(6);
(2)通过对观测数据进行聚类分析得到当前负载类别,并根据当前负载类别将观测数据存储到重放数据库中;随机从重放数据库中提取当前负载类别下于当前观测时间戳之前存储的多条性能指标数据,并随机从观测数据中提取多条性能指标数据,以由所提取的性能指标数据构成当前时间戳下的训练数据集;
(3)根据调控目标设置回报奖励值,并构建基于神经网络的回报奖励值计算模型,用于计算调控动作所对应的回报奖励值;利用训练数据集训练回报奖励值计算模型;集群的调控目标随着应用场景的不同而不同,具体可为提高系统I/O吞吐率或降低可控I/O延迟等;
(4)根据获得最大回报奖励值的原则选定一个调控动作,并利用回报奖励值计算模型计算相应的回报奖励值;重复此步骤,以获得最大的回报奖励值所对应的调控动作,并将该调控动作确定为目标调控动作;
在集群中,系统的状态参数极多,如果人工选择需要参考的状态参数,一旦决策失误,可能无法得到预期的结果;另外,在I/O拥塞控制过程中,拥塞状态、调控参数和回报函数值可能是一个连续区间内的任意数值,使用传统的非线性函数逼近Q函数时,学习过程并不稳定,会严重影响深度增强学习过程中参数调节的效果;神经网络可以看成是包含了众多参数的数学模型,通过神经网络模型计算回报奖励值,能够很好的解决人工决策结果不可控和学习过程不稳定的问题;
(5)将目标调控动作广播至所有节点,以根据目标调控动作的参数设置各节点的参数,从而实现拥塞控制;
(6)当前时间戳下的I/O拥塞控制结束;
其中,重放数据库用于按照负载类别持久化存储性能指标数据,性能指标数据为节点各项性能指标的集合,调控动作为性能指标数据的子集。
进一步地,步骤(1)中,在服务端获得当前观测时间戳下各节点上报的性能指标数据并进行预处理,作为当前观测时间戳下的观测数据,包括:
周期性地采集各节点的性能指标数据以由各节点将所采集到的性能指标数据上报至服务端;在服务端将接收到的当前观测时间戳至下一个观测时间戳之间的性能指标数据均归入当前观测时间戳下的性能指标数据,并进行预处理,从而得到当前观测时间戳下的性能指标数据;
一方面,因为各节点在采集性能指标数据时,可能会因为节点内的一些系统错误而导致部分属性缺失,此时采集到的性能指标数据是不完整的,或者是异常值,如IO吞吐小于或等于0;因此,服务端对接收到的性能指标数据进行预处理,包括对性能指标数据的完整性和异常值进行检测,并过滤掉不完整的性能指标数据和存在异常值的性能指标数据;
另一方面,机器学习模型的输入只能是数字类型,因此服务端对接收到的性能指标数据进行预处理,还包括将非数字类型的性能指标项转换为数字类型,如将读、写操作分别转换为数字0和1;此外,由于集群环境可能存在瞬时波动,如带宽由50M变为200M瞬间又回落等,为保证性能指标数据能够准确反映系统状态,服务端对接收到的性能指标数据进行预处理,还包括对性能指标项的取值进行求平均值的计算。
进一步地,步骤(1)中,判断观测数据是否有效的方法包括:获得当前时间戳下各节点上报的性能指标数据的总条数,并判定与观测数据中所包含的性能指标数据的总条数是否相等,若是,则判定观测数据有效;若否,则判定观测数据无效。
进一步地,步骤(2)中,随机从重放数据库中提取当前负载类别下于当前观测时间戳之前存储的多条性能指标数据,并随机从观测数据中提取多条性能指标数据,以由所提取的性能指标数据构成当前时间戳下的训练数据集,包括:
根据预设的训练数据集的大小N,设定从重放数据库中提取的性能指标数据条数N1和从观测数据中提取的性能指标数据条数N2,使得N1+N2=N;
若重放数据库中当前负载类别下于当前观测时间戳之前存储的性能指标数据少于N1条,则在满足N1+N2=N的条件下,调整N1和N2的取值,直至重放数据库中当前负载类别下于当前观测时间戳之前存储的性能指标数据不少于N1条,并随机从重放数据库中提取当前负载类别下与当前观测时间戳之前存储的N1条性能指标数据;否则,随机从重放数据库中提取当前负载类别下与当前观测时间戳之前存储的N1条性能指标数据;
随机从观测数据中提取N2条性能指标数据;
由N1条性能指标数据和N2条性能指标数据构成当前时间戳下的训练数据集。
进一步地,步骤(2)中,根据当前负载类别将观测数据存储到重放数据库中,包括:
使用决策树在重放数据库中查找当前负载类别,若查找成功,则在重放数据库中当前负载类别下存储观测数据;若查找不成功,则将当前负载类别加入到重放数据库中,然后在重放数据库中当前负载类别下存储观测数据,并重建决策树。
进一步地,步骤(4)中,选定调控动作时所采用的算法为ε-greedy算法,且在选定调控动作时,以ε的概率产生新的调控动作,以1-ε的概率从训练数据集中选取能够获得最大奖励值的动作;ε为概率参数,且其取值范围为0<ε<1。
进一步地,调控动作包括:I/O请求发送窗口和I/O请求发送速率。
进一步地,性能指标数据包括:I/O读吞吐率、I/O写吞吐率、读缓冲区脏数据量、写缓冲区脏数据量、客户端到服务端Ping延迟时间、服务端应答时间戳指数加权移动平均值、客户端I/O请求时间戳指数加权移动平均值、当前请求的处理时间/已知的最短处理时间、I/O请求发送窗口、I/O请求发送速率、I/O操作方式以及I/O操作块大小。
进一步地,回报奖励值计算模型为全连接神经网络,且包含至少两个隐含层,以使得计算量可控且具有较快的计算速度。
按照本发明的第二方面,提供了一种I/O拥塞控制系统,按照具有固定时间间隔的观测时间戳执行I/O拥塞控制,包括:性能监控模块、服务端守护模块、负载分类模块、重放数据库模块、深度增强学习模块以及控制模块;
性能监控模块,用于周期性地采集各节点的性能指标数据,并上报至服务端守护模块;
服务端守护模块,用于在服务端将接收到的当前观测时间戳至下一个观测时间戳之间性能指标数据均归入当前观测时间戳下的性能指标数据并进行预处理,从而得到当前观测时间戳下的性能指标数据作为当前观测时间戳下的观测数据;服务端守护模块,还用于判断当前观测时间戳下的观测数据是否有效;
负载分类模块,用于对有效的观测数据进行聚类分析以得到当前负载类别;
重放数据库模块,用于根据当前负载类别将观测数据存储到重放数据库中;
服务端守护模块,还用于随机从重放数据库中提取当前负载类别下于当前观测时间戳之前存储的多条性能指标数据,并随机从观测数据中提取多条性能指标数据,以由所提取的能指标数据和观测数据构成当前时间戳下的训练数据集;
深度增强学习模块,用于根据调控目标设置好回报奖励值,并构建基于神经网络的回报奖励值计算模型,并利用训练数据集训练回报奖励值计算模型,回报奖励值计算模型用于计算调控动作所对应的回报奖励值;深度增强学习模块还用于根据获得最大回报奖励值的原则选定一个调控动作,并利用已训练好的回报奖励值计算模型计算相应的回报奖励值,以及重复此步骤,以获得最大的回报奖励值所对应的调控动作,并将该调控动作确定为目标调控动作;
服务端守护模块,还用于将目标调控动作广播至所有节点;
控制模块,用于根据目标调控动作的参数设置各节点的参数,从而实现拥塞控制;
其中,重放数据库用于按照负载类别持久化存储性能指标数据,性能指标数据为节点性能指标项的集合,调控动作为性能指标数据的子集。
总体而言,通过本发明所构思的以上技术方案,能够取得以下有益效果:
(1)本发明所提供的I/O拥塞控制方法,通过采集各节点的性能指标数据后,采用深度增强学习方法从中感知集群的系统状态和负载类别,并根据调控目标设置回报奖励值,以获得最大回报奖励值的原则选择调控动作,同时结合神经网络模型进行调整,最终确定能够获得最大回报奖励值的目标调控动作,然后根据目标调控动作的调控参数相应设置各节点内的参数,从而实现I/O拥塞控制。整个过程均由相应的功能模块自动完成,无需人工介入,即实现了自动化的I/O拥塞控制,能够对集群的I/O行为进行更为有效的管控。
(2)本发明所提供的I/O拥塞控制方法,采用深度增强学习方法确定最终的调控动作时,采用神经网络模型对调控动作所对应的回报奖励值进行计算,而回报奖励值可根据具体的调控目标(如提高系统I/O率或将第可控I/O延迟等)灵活设置,因此本发明所提供的I/O拥塞控制方法具有较强的灵活性。
(3)本发明所提供的I/O拥塞控制方法,会采集各个节点的性能指标数据,以此来获取集群的负载状态;通过深度增强学习方法确定最终的调控动作后,会相应地设置各个节点内的参数。此过程与集群中具体的节点数无关,因此,本发明所提供的I/O拥塞控制方法对于不同规模的集群均适用,具有较好的可扩展性。
附图说明
图1为本发明实施例提供的I/O拥塞控制方法流程图;
图2为本发明实施例提供的训练数据组织示意图;
图3为本发明实施例提供的负载分类方法流程图;
图4为本发明实施例提供的I/O拥塞控制系统示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
本发明所提供的I/O拥塞控制方法,如图1所示,按照具有固定时间间隔的观测时间戳执行I/O拥塞控制,包括如下步骤:
(1)在服务端获得当前观测时间戳下各节点上报的性能指标数据并进行预处理,作为当前观测时间戳下的观测数据;若观测数据有效,则转入步骤(2);否则,转入步骤(6);
性能指标数据为节点各项性能指标的集合,在本实施例中,性能指标数据包括:I/O读吞吐率、I/O写吞吐率、读缓冲区脏数据量、写缓冲区脏数据量、客户端到服务端Ping延迟时间、服务端应答时间戳指数加权移动平均值、客户端I/O请求时间戳指数加权移动平均值、当前请求的处理时间/已知的最短处理时间、I/O请求发送窗口、I/O请求发送速率、I/O操作方式以及I/O操作块大小;其中,时间戳指数加权平均值的计算方法为:新时间戳指数加权平均值=旧时间戳指数加权平均值×(1-放大因子)+放大因子×两次请求时间戳差值;
在一个可选的实施方式中,在服务端获得当前观测时间戳下各节点上报的性能指标数据并进行预处理,作为当前观测时间戳下的观测数据,包括:
周期性地采集各节点的性能指标数据以由各节点将所采集到的性能指标数据上报至服务端;在服务端将接收到的当前观测时间戳至下一个观测时间戳之间的性能指标数据均归入当前观测时间戳下的性能指标数据;例如,对于观测时间戳Ti,时间段[Ti,t),t<Ti+1内采集到的各节点的性能指标数据均为在观测时间戳Ti对系统进行一次观测获得的观测数据,Ti+1为下一观测时间戳;
对当前时间戳下的性能指标数据进行预处理,从而得到当前观测时间戳下的性能指标数据;总的来说,对性能指标数据进行预处理,其目的在于使得性能指标数据适于作为机器学习模型的输入;
一方面,因为各节点在采集性能指标数据时,可能会因为节点内的一些系统错误而导致部分属性缺失,此时采集到的性能指标数据是不完整的,或者是异常值,如IO吞吐小于或等于0;因此,服务端对接收到的性能指标数据进行预处理,包括对性能指标数据的完整性和异常值进行检测,并过滤掉不完整的性能指标数据和存在异常值的性能指标数据;
另一方面,机器学习模型的输入只能是数字类型,因此服务端对接收到的性能指标数据进行预处理,还包括将非数字类型的性能指标项转换为数字类型,如将读、写操作分别转换为数字0和1;此外,由于集群环境可能存在瞬时波动,如带宽由50M变为200M瞬间又回落等,为保证性能指标数据能够准确反映系统状态,服务端对接收到的性能指标数据进行预处理,还包括对性能指标项的取值进行求平均值的计算;
在获取到当前时间戳下的观测数据集时,还会按照固定的格式组织其中的性能指标数据;一次采集到的性能指标数据如图2所示,其中包括N个节点,在t时刻,每个节点中采集到的性能指标数据条数为M,则可将观测数据集st组织为如下形式:
其中,PI为与性能指标数据相对应的一维向量,共包括n个性能指标项,在本实施例中,n=16;
采集性能指标数据的频率以及观测时间戳之间的时间间隔根据具体负载类型而定,通过设置合适的采集频率和观测时间戳,能够保证一个时间戳下的观测数据能够准确地、实时地反应系统的状态;
判断观测数据是否有效的方法包括:获得当前时间戳下各节点上报的性能指标数据的总条数,并判定与观测数据中所包含的性能指标数据的总条数是否相等,若是,则判定观测数据有效;若否,则判定观测数据无效;
(2)通过对观测数据进行聚类分析得到当前负载类别,并根据当前负载类别将观测数据存储到重放数据库中;随机从重放数据库中提取当前负载类别下于当前观测时间戳之前存储的多条性能指标数据,并随机从观测数据中提取多条性能指标数据,以由所提取的性能指标数据构成当前时间戳下的训练数据集;
重放数据库用于按照负载类别持久化存储性能指标数据;
在一个可选的实施方式中,对观测数据进行聚类分析得到当前负载类别,如图3所示,包括:
对观测数据中的性能指标数据进行统计分析,选择能表征负载行为特征的性能指标项,包括访问模式、读写比例、I/O块大小、direct I/O和buffer I/O以及I/O请求到达规律等;
根据所选择的性能指标项进行负载聚类分析,得到当前负载勒边;所采用的聚类分析算法可为k-means分类算法,或其他可实现聚类分析的分类算法;
根据当前负载类别将观测数据存储到重放数据库中,如图3所示,包括:
使用决策树在重放数据库中查找当前负载类别,若查找成功,则在重放数据库中当前负载类别下存储观测数据;若查找不成功,则将当前负载类别加入到重放数据库中,然后在重放数据库中当前负载类别下存储观测数据,并重建决策树;
随机从重放数据库中提取当前负载类别下于当前观测时间戳之前存储的多条性能指标数据,并随机从观测数据中提取多条性能指标数据,以由所提取的性能指标数据构成当前时间戳下的训练数据集,包括:
根据预设的训练数据集的大小N,设定从重放数据库中提取的性能指标数据条数N1和从观测数据中提取的性能指标数据条数N2,使得N1+N2=N;
若重放数据库中当前负载类别下于当前观测时间戳之前存储的性能指标数据少于N1条,则在满足N1+N2=N的条件下,调整N1和N2的取值,直至重放数据库中当前负载类别下于当前观测时间戳之前存储的性能指标数据不少于N1条,并随机从重放数据库中提取当前负载类别下与当前观测时间戳之前存储的N1条性能指标数据;否则,随机从重放数据库中提取当前负载类别下与当前观测时间戳之前存储的N1条性能指标数据;
随机从观测数据中提取N2条性能指标数据;
由N1条性能指标数据和N2条性能指标数据构成当前时间戳下的训练数据集;
N的设定与集群系统的规模及系统过去一段时间内的历史状态相关,合理设定N的取值可以在保证训练好机器学习模型有较高的计算精度的前提下,减小训练的资源开销和时间开销;在本实施例中,N的取值为32;
(3)根据调控目标设置回报奖励值,并构建基于神经网络的回报奖励值计算模型,用于计算调控动作所对应的回报奖励值;利用训练数据集训练回报奖励值计算模型;集群的调控目标随着应用场景的不同而不同,具体可为提高系统I/O吞吐率或降低可控I/O延迟等;
集群的调控目标随着应用场景的不同而不同,具体可为提高系统I/O吞吐率或降低可控I/O延迟等;在本实施例中,根据调控目标设置的回报奖励值为系统I/O吞吐率;
在一个可选的实施方式中,回报奖励值计算模型为两层全连接神经网络,且每一个隐含层的节点数为320,以使得计算量可控且具有较快的计算速度;
(4)根据获得最大回报奖励值的原则选定一个调控动作,并利用回报奖励值计算模型计算相应的回报奖励值;重复此步骤,以获得最大的回报奖励值所对应的调控动作,并将该调控动作确定为目标调控动作;
调控动作为性能指标数据的子集,在本实施例中,调控动作包括:I/O请求发送窗口和I/O请求发送速率;
在一个可选的实施方式中,选定调控动作时所采用的算法为ε-greedy算法,且在选定调控动作时,以ε的概率产生新的调控动作,以1-ε的概率从训练数据集中选取能够获得最大奖励值的动作;ε为概率参数,且其取值范围为0<ε<1;产生新的调控动作具体指按照一定策略增大或者减小调控动作的某个参数值;
在集群中,系统的状态参数极多,如果人工选择需要参考的状态参数,一旦决策失误,可能无法得到预期的结果;另外,在I/O拥塞控制过程中,拥塞状态、调控参数和回报函数值可能是一个连续区间内的任意数值,使用传统的非线性函数逼近Q函数时,学习过程并不稳定,会严重影响深度增强学习过程中参数调节的效果;神经网络可以看成是包含了众多参数的数学模型,通过神经网络模型计算回报奖励值,能够很好的解决人工决策结果不可控和学习过程不稳定的问题;
(5)将目标调控动作广播至所有节点,以根据目标调控动作的参数设置各节点的参数,从而实现拥塞控制;
(6)当前时间戳下的I/O拥塞控制结束。
本发明还提供了一种I/O拥塞控制系统,按照具有固定时间间隔的观测时间戳执行I/O拥塞控制,如图4所示,包括:性能监控模块、服务端守护模块、负载分类模块、重放数据库模块、深度增强学习模块以及控制模块;
性能监控模块,用于周期性地采集各节点的性能指标数据,并上报至服务端守护模块;
服务端守护模块,用于在服务端将接收到的当前观测时间戳至下一个观测时间戳之间的性能指标数据均归入当前观测时间戳下的性能指标数据并进行预处理,从而得到当前观测时间戳下的性能指标数据作为当前观测时间戳下的观测数据;服务端守护模块,还用于判断当前观测时间戳下的观测数据是否有效;
负载分类模块,用于对有效的观测数据进行聚类分析以得到当前负载类别;
重放数据库模块,用于根据当前负载类别将观测数据存储到重放数据库中;
服务端守护模块,还用于随机从重放数据库中提取当前负载类别下于当前观测时间戳之前存储的多条性能指标数据,并随机从观测数据中提取多条性能指标数据,以由所提取的能指标数据和观测数据构成当前时间戳下的训练数据集;
深度增强学习模块,用于根据调控目标设置好回报奖励值,并构建基于神经网络的回报奖励值计算模型,并利用训练数据集训练回报奖励值计算模型,回报奖励值计算模型用于计算调控动作所对应的回报奖励值;深度增强学习模块还用于根据获得最大回报奖励值的原则选定一个调控动作,并利用已训练好的回报奖励值计算模型计算相应的回报奖励值,以及重复此步骤,以获得最大的回报奖励值所对应的调控动作,并将该调控动作确定为目标调控动作;
服务端守护模块,还用于将目标调控动作广播至所有节点;
控制模块,用于根据目标调控动作的参数设置各节点的参数,从而实现拥塞控制;
其中,重放数据库用于按照负载类别持久化存储性能指标数据,性能指标数据为节点性能指标项的集合,调控动作为性能指标数据的子集;
在本实施例中,各功能模块的具体实施方式可参考上述方法实施例中的描述,在此不再复述。
深度增强学习模块进行的是一个循环往复“调节-反馈”的学习过程:首先增强学习模型通过服务端守护模块输出的性能指标数据感知集群的I/O拥塞状态,并以一个时间段内的性能指标数据作为深度增强学习模块中神经网络模型的输入,并根据神经网络模型计算的回报奖励值,给出下一步调控命令的参数值,并通过服务端守护模块下发并和集群交互,使I/O拥塞状态发生变化,也即试探调节,同时使用回报函数计算回报奖励值(系统I/O吞吐率值)反馈给学习系统,也即反馈评价,深度增强学习模块根据强化信号和当前集群的I/O拥塞状态,本着获得最大奖励值的原则选择下一个动作,进入下一个循环的“试探一评价”过程。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种I/O拥塞控制方法,其特征在于,按照具有固定时间间隔的观测时间戳执行I/O拥塞控制,包括如下步骤:
(1)在服务端获得当前观测时间戳下各节点上报的性能指标数据并进行预处理,作为当前观测时间戳下的观测数据;若所述观测数据有效,则转入步骤(2);否则,转入步骤(6);
(2)通过对所述观测数据进行聚类分析得到当前负载类别,并根据当前负载类别将所述观测数据存储到重放数据库中;随机从所述重放数据库中提取当前负载类别下于当前观测时间戳之前存储的多条性能指标数据,并随机从所述观测数据中提取多条性能指标数据,以由所提取的性能指标数据构成当前时间戳下的训练数据集;
(3)根据调控目标设置回报奖励值,并构建基于神经网络的回报奖励值计算模型,用于计算调控动作所对应的回报奖励值;利用所述训练数据集训练所述回报奖励值计算模型;
(4)根据获得最大回报奖励值的原则试探性地选定一个调控动作,并利用所述回报奖励值计算模型计算相应的回报奖励值,进行反馈评价,以完成一次“试探-评价”循环;重复“试探-评价”的过程,以获得最大的回报奖励值所对应的调控动作,并将该调控动作确定为目标调控动作;
(5)将所述目标调控动作广播至所有节点,以根据所述目标调控动作的参数设置各节点的参数,从而实现拥塞控制;
(6)当前时间戳下的I/O拥塞控制结束;
其中,所述重放数据库用于按照负载类别持久化存储性能指标数据,所述性能指标数据为节点各项性能指标的集合,所述调控动作为所述性能指标数据的子集。
2.如权利要求1所述的I/O拥塞控制方法,其特征在于,所述步骤(1)中,在服务端获得当前观测时间戳下各节点上报的性能指标数据并进行预处理,作为当前观测时间戳下的观测数据,包括:
周期性地采集各节点的性能指标数据以由各节点将所采集到的性能指标数据上报至服务端;在服务端将接收到的当前观测时间戳至下一个观测时间戳之间的性能指标数据均归入当前观测时间戳下的性能指标数据,并进行预处理,从而得到当前观测时间戳下的性能指标数据。
3.如权利要求1所述的I/O拥塞控制方法,其特征在于,所述步骤(1)中,判断所述观测数据是否有效的方法包括:
获得当前时间戳下各节点上报的性能指标数据的总条数,并判定与所述观测数据中所包含的性能指标数据的总条数是否相等,若是,则判定所述观测数据有效;若否,则判定所述观测数据无效。
4.如权利要求1所述的I/O拥塞控制方法,其特征在于,所述步骤(2)中,随机从所述重放数据库中提取当前负载类别下于当前观测时间戳之前存储的多条性能指标数据,并随机从所述观测数据中提取多条性能指标数据,以由所提取的性能指标数据构成当前时间戳下的训练数据集,包括:
根据预设的训练数据集的大小N,设定从所述重放数据库中提取的性能指标数据条数N1和从所述观测数据中提取的性能指标数据条数N2,使得N1+N2=N;
若所述重放数据库中当前负载类别下于当前观测时间戳之前存储的性能指标数据少于N1条,则在满足N1+N2=N的条件下,调整N1和N2的取值,直至所述重放数据库中当前负载类别下于当前观测时间戳之前存储的性能指标数据不少于N1条,并随机从所述重放数据库中提取当前负载类别下与当前观测时间戳之前存储的N1条性能指标数据;否则,随机从所述重放数据库中提取当前负载类别下与当前观测时间戳之前存储的N1条性能指标数据;
随机从所述观测数据中提取N2条性能指标数据;
由所述N1条性能指标数据和所述N2条性能指标数据构成当前时间戳下的训练数据集。
5.如权利要求1所述的I/O拥塞控制方法,其特征在于,所述步骤(2)中,根据当前负载类别将所述观测数据存储到重放数据库中,包括:
使用决策树在所述重放数据库中查找当前负载类别,若查找成功,则在所述重放数据库中当前负载类别下存储所述观测数据;若查找不成功,则将当前负载类别加入到所述重放数据库中,然后在所述重放数据库中当前负载类别下存储所述观测数据,并重建决策树。
6.如权利要求1所述的I/O拥塞控制方法,其特征在于,所述步骤(4)中,选定调控动作时所采用的算法为ε-greedy算法,且在选定调控动作时,以ε的概率产生新的调控动作,以1-ε的概率从所述训练数据集中选取能够获得最大奖励值的动作;
ε为概率参数,且其取值范围为0<ε<1。
7.如权利要求1所述的I/O拥塞控制方法,其特征在于,所述调控动作包括:I/O请求发送窗口和I/O请求发送速率。
8.如权利要求1所述的I/O拥塞控制方法,其特征在于,所述性能指标数据包括:I/O读吞吐率、I/O写吞吐率、读缓冲区脏数据量、写缓冲区脏数据量、客户端到服务端Ping延迟时间、服务端应答时间戳指数加权移动平均值、客户端I/O请求时间戳指数加权移动平均值、当前请求的处理时间/已知的最短处理时间、I/O请求发送窗口、I/O请求发送速率、I/O操作方式以及I/O操作块大小。
9.如权利要求1所述的I/O拥塞控制方法,其特征在于,所述回报奖励值计算模型为全连接神经网络,且包含至少两个隐含层。
10.一种I/O拥塞控制系统,其特征在于,按照具有固定时间间隔的观测时间戳执行I/O拥塞控制,包括:性能监控模块、服务端守护模块、负载分类模块、重放数据库模块、深度增强学习模块以及控制模块;
所述性能监控模块,用于周期性地采集各节点的性能指标数据,并上报至所述服务端守护模块;
所述服务端守护模块,用于在服务端将接收到的当前观测时间戳至下一个观测时间戳之间的性能指标数据均归入当前观测时间戳下的性能指标数据并进行预处理,从而得到当前观测时间戳下的性能指标数据作为当前观测时间戳下的观测数据;所述服务端守护模块,还用于判断当前观测时间戳下的观测数据是否有效;
所述负载分类模块,用于对有效的观测数据进行聚类分析以得到当前负载类别;
所述重放数据库模块,用于根据当前负载类别将所述观测数据存储到重放数据库中;
所述服务端守护模块,还用于随机从所述重放数据库中提取当前负载类别下于当前观测时间戳之前存储的多条性能指标数据,并随机从所述观测数据中提取多条性能指标数据,以由所提取的性能指标数据构成当前时间戳下的训练数据集;
所述深度增强学习模块,用于根据调控目标设置回报奖励值,并构建基于神经网络的回报奖励值计算模型,并利用所述训练数据集训练所述回报奖励值计算模型,所述回报奖励值计算模型用于计算调控动作所对应的回报奖励值;所述深度增强学习模块还用于根据获得最大回报奖励值的原则试探性地选定一个调控动作,并利用已训练好的回报奖励值计算模型计算相应的回报奖励值,进行反馈评价,以完成一次“试探-评价”循环,以及重复“试探-评价”的过程,以获得最大的回报奖励值所对应的调控动作,并将该调控动作确定为目标调控动作;
所述服务端守护模块,还用于将所述目标调控动作广播至所有节点;
所述控制模块,用于根据所述目标调控动作的参数设置各节点的参数,从而实现拥塞控制;
其中,所述重放数据库用于按照负载类别持久化存储性能指标数据,所述性能指标数据为节点性能指标项的集合,所述调控动作为所述性能指标数据的子集。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811083583.3A CN109471847B (zh) | 2018-09-18 | 2018-09-18 | 一种i/o拥塞控制方法及控制系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811083583.3A CN109471847B (zh) | 2018-09-18 | 2018-09-18 | 一种i/o拥塞控制方法及控制系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109471847A CN109471847A (zh) | 2019-03-15 |
CN109471847B true CN109471847B (zh) | 2020-06-09 |
Family
ID=65664590
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811083583.3A Active CN109471847B (zh) | 2018-09-18 | 2018-09-18 | 一种i/o拥塞控制方法及控制系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109471847B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110505109B (zh) * | 2018-05-17 | 2022-10-18 | 阿里巴巴集团控股有限公司 | 测试系统隔离性能的方法、装置及存储介质 |
CN110581808B (zh) * | 2019-08-22 | 2021-06-15 | 武汉大学 | 一种基于深度强化学习的拥塞控制方法及系统 |
CN111046091B (zh) * | 2019-10-24 | 2023-12-08 | 杭州数梦工场科技有限公司 | 数据交换系统的运行方法、装置及设备 |
CN110968272B (zh) * | 2019-12-16 | 2021-01-01 | 华中科技大学 | 基于时间序列预测的海量小文件存储性能优化方法及系统 |
CN111913881B (zh) * | 2020-07-22 | 2022-02-15 | 华中科技大学 | 一种应用程序I/O trace的生成方法 |
CN112801697B (zh) * | 2021-01-25 | 2024-04-19 | 杭州网易云音乐科技有限公司 | 多媒体数据的数据关联窗口的调节方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007049436A (ja) * | 2005-08-10 | 2007-02-22 | Oki Electric Ind Co Ltd | 輻輳制御方法および輻輳制御システム |
CN102752381A (zh) * | 2012-06-28 | 2012-10-24 | 北京邮电大学 | 一种应用于分布式存储的多活动副本机制及其存取方法 |
CN107132990A (zh) * | 2016-02-26 | 2017-09-05 | 深圳市深信服电子科技有限公司 | 基于超融合存储的读io调度方法及装置 |
-
2018
- 2018-09-18 CN CN201811083583.3A patent/CN109471847B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007049436A (ja) * | 2005-08-10 | 2007-02-22 | Oki Electric Ind Co Ltd | 輻輳制御方法および輻輳制御システム |
CN102752381A (zh) * | 2012-06-28 | 2012-10-24 | 北京邮电大学 | 一种应用于分布式存储的多活动副本机制及其存取方法 |
CN107132990A (zh) * | 2016-02-26 | 2017-09-05 | 深圳市深信服电子科技有限公司 | 基于超融合存储的读io调度方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109471847A (zh) | 2019-03-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109471847B (zh) | 一种i/o拥塞控制方法及控制系统 | |
CN109271015B (zh) | 一种降低大规模分布式机器学习系统能耗的方法 | |
CN113064879A (zh) | 数据库参数调整方法、装置及计算机可读存储介质 | |
CN107908536B (zh) | Cpu-gpu异构环境中对gpu应用的性能评估方法及系统 | |
CN113484837B (zh) | 一种面向电磁大数据的未知雷达辐射源智能识别方法 | |
CN111967971A (zh) | 银行客户数据处理方法及装置 | |
CN112800115B (zh) | 数据处理方法及数据处理装置 | |
CN110413927B (zh) | 在发布订阅系统中基于匹配实时性的优化方法及系统 | |
CN110191015B (zh) | 基于cpi指标的云服务性能智能预测方法和装置 | |
CN115858168A (zh) | 一种基于重要性排序的地球应用模型编排系统及其方法 | |
CN116760908A (zh) | 基于数字孪生的农业信息优化管理方法及系统 | |
CN111339052A (zh) | 一种非结构化日志数据处理方法及装置 | |
CN110929885A (zh) | 一种面向智慧校园的分布式机器学习模型参数聚合方法 | |
CN112732718B (zh) | 面向云边端的智能结构化数据方法、系统和介质 | |
CN112182031B (zh) | 数据查询方法及装置、存储介质、电子装置 | |
CN109740750B (zh) | 数据收集方法及装置 | |
CN108966169A (zh) | 针对农田土壤的重金属污染分析预警系统 | |
CN113011559A (zh) | 基于kubernetes的自动机器学习方法及系统 | |
CN110119268B (zh) | 基于人工智能的工作流优化方法 | |
CN117172093A (zh) | 基于机器学习的Linux系统内核配置的策略优化方法及装置 | |
CN110040411B (zh) | 一种智能选箱装箱包装线归集区参数优化方法 | |
Stage et al. | An aggregation algorithm for increasing the efficiency of population models | |
CN110135747B (zh) | 基于神经网络的流程定制方法 | |
CN113191569A (zh) | 一种基于大数据的企业管理方法及系统 | |
CN112925831A (zh) | 基于云计算服务的大数据挖掘方法及大数据挖掘服务系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |