面向资源利用率最大化的直播请求调度方法及装置
文献发布时间:2024-04-18 19:58:30
技术领域
本发明属于通信技术领域,具体涉及一种面向资源利用率最大化的直播请求调度方法及装置。
背景技术
随着高速网络(如LTE/5G)和先进个人设备的广泛普及,直播(如Twitch和抖音)已经成为近年来最流行的应用之一。流媒体直播服务的激增导致了众包边缘云服务平台的兴起,后者被用于满足日益增长的用户需求。众包边缘云服务平台服务于各种直播应用,整合空闲异构的计算和带宽资源。由于其独特的众包特性,边缘云平台可以以较低的成本扩大服务器覆盖范围,同时通过更近距离的服务最终提高用户的体验质量。在边缘云平台下,如何充分利用计算资源,在有限的资源上面尽可能提供更多的服务能力,是边缘云平台服务的核心能力之一。一个好的请求调度方法,既要实现对资源的充分利用,实现平台全局资源利用率的最大化,又要考虑局部服务器的约束,避免少数服务器资源利用率过低或过高等极端个例情况的发生。
目前工业界最为流行的直播请求调度方法都基于地理最近调度,此类方法过于简单,无法解决边缘云平台设备异构复杂、业务多变的实际场景,而且无法从全局和局部优化平台和服务器的资源利用率,具体来说主要存在以下问题:1、只考虑最大化全局资源利用率,优化目标相对单一,请求的调度效果需要多维度的衡量,不能只考虑全局服务器的资源利用率,也要考虑现实中影响收益的因素;2、能够面向的场景相对单一,边缘云设备资源极其异构,直播请求在边缘云设备上的部署效果(如带宽跑量等)表现受到服务器本身属性,部署地域、业务特征等各种复杂因素的影响;3、无法提前估算请求服务后的效果,进而难以直接通过请求调度优化平台资源利用率;4、主要基于所请求业务的历史表现进行调度,具有滞后性;5、没有考虑到局部服务器在真实场景下所受到的约束,以及边缘云异构的设备属性和复杂的请求特征对请求调度的影响。
发明内容
针对以上问题,本发明提出了一种面向资源利用率最大化的直播请求调度方法及装置,能通过优化直播请求实时调度决策,最大化边缘云平台的整体资源利用率,并尽可能减少局部服务器出现极端资源利用率的情况,不仅能应用到边缘云场景,而且能复用到中心云、IDC、CDN、终端设备等多个场景进行优化用户请求调度。为解决以上技术问题,本发明所采用的技术方案如下:
一种面向资源利用率最大化的直播请求调度方法,包括如下步骤:
S1,收集边缘云平台下所有边缘服务器的历史负载数据和对应的直播请求数据,根据历史负载数据确定边缘云平台的最优资源利用率区间;
S2,基于步骤S1的直播请求数据利用有监督的聚类方法构建聚类模型,基于聚类模型确认每个直播请求的所属聚类;
S3,根据步骤S2得到的直播请求的所属聚类及步骤S1收集的数据基于XGBoost方法构建用于预测边缘服务器收益的请求调度效果预测模型;
S4,基于边缘云平台资源利用率最大化和步骤S1得到的最优资源利用率区间构建优化目标函数;
S5,将请求调度策略PS简化为请求服务策略
S6,收集边缘云平台下的实时直播请求,利用步骤S2的聚类模型获取实时直播请求所对应的聚类,利用步骤S3的请求调度效果预测模型预测实时直播请求调度时边缘服务器得到的收益,利用分支定界算法对更新后的优化目标函数进行求解得到请求服务策略
所述步骤S1包括如下步骤:
S1.1,收集边缘云平台下所有边缘服务器的历史负载数据和每个服务器所接收到的直播请求数据;
S1.2,根据历史负载数据计算每个边缘服务器的资源利用率;
S1.3,根据步骤S1.2得到的资源利用率获取累积分布函数;
S1.4,利用累积分布函数计算组成最优资源利用率区间的最低利用率阈值和利用率上限阈值。
所述累积分布函数的表达式为:
式中,F(x)表示随机变量x的累积分布函数,|X|表示边缘云平台下所有带宽利用率的样本总数,X表示边缘云平台下所有边缘服务器的带宽利用率的集合,
所述步骤S2包括如下步骤:
S2.1,根据带宽消耗量识别直播请求中影响请求服务效果的关键特征,所述关键特征包括请求内容归属类别、请求平台和请求时刻;
S2.2,对每个直播请求的关键特征进行预处理得到请求量化样本;
S2.3,初始化聚类数量K=1,并设置最大聚类数
S2.4,利用K-prototype聚类算法对步骤S2.2中的请求量化样本进行聚类,输出最终聚类中心和每个请求量化样本的聚类;
S2.5,判断
在步骤S3中,所述请求调度效果预测模型的表达式为:
A
式中,A
在步骤S5中,更新后的优化目标函数的表达式为:
式中,α和β分别表达组成最优资源利用率区间的最低利用率阈值和利用率上限阈值,
在步骤S6中,基于请求服务策略
式中,
一种面向资源利用率最大化的直播请求调度装置,包括:
数据收集模块:用于收集边缘云平台下所有边缘服务器的历史负载数据和对应的直播请求数据;
聚类输出模块:用于基于数据收集模块得到的直播请求数据利用有监督的聚类方法构建聚类模型,并基于聚类模型确认每个直播请求的所属聚类;
调度模型构建模块:用于基于聚类输出模块得到的每个直播请求的所属聚类和数据收集模块得到的数据基于XGBoost方法构建请求调度效果预测模型;
目标函数建立模块:用于基于数据收集模块得到的历史负载数据确定边缘云平台的最优资源利用率区间,并基于边缘云平台资源利用率最大化和最优资源利用率区间构建优化目标函数;
优化函数更新模块:用于将请求调度策略PS简化为请求服务策略
调度策略输出模块:用于收集边缘云平台下的实时直播请求,基于聚类输出模块得到的聚类模型确认实时直播请求所对应的聚类,基于调度模型构建模块的请求调度效果预测模型预测实时直播请求调度时边缘服务器得到的收益,再基于实时直播请求所对应的聚类和实时直播请求调度时边缘服务器得到的收益利用分支定界算法对更新后的优化目标函数进行求解获取请求服务策略,基于请求服务策略输出请求调度策略。
本发明的有益效果:
1、本申请针对边缘云服务器的带宽利用率分布,提出了带宽利用率最优区间的建模方法,能综合考虑带宽利用率与平台现实收益之间的影响关系;
2、对边缘云平台的资源异构性、请求的时空特性、业务特性充分挖掘,提出了识别影响请求调度部署效果的关键特征,并通过K-prototype聚类方法将聚类融合请求特性,设计了基于直播请求的类别和服务器属性的请求调度效果预测模型,进而成功预测请求调度后效果。
3、通过将请求调度建模为带有双重约束的线性规划问题,同时优化边缘云平台全局的带宽利用率和局部服务器的带宽利用率分布,解决了优化目标单一的问题。最终通过简化策略和分支定界算法对线性规划问题进行求解实现对直播请求的实时调度,实现了全局资源利用率最优化,减少了局部服务器异常。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为边缘服务器资源利用率的累计分布图。
图2为请求内容归属类别不同时请求的带宽消耗分布图。
图3为请求平台不同时请求的带宽消耗分布图。
图4为请求时刻不同时请求的带宽消耗分布图。
图5为本发明的流程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
特征工程:是机器学习和数据分析中的一个关键步骤,主要目的是通过选择、转换或创建新的特征来改善模型性能。这通常涉及对原始数据进行各种数学运算、统计分析或者应用领域知识,以生成能更好地表示潜在模式的特征。特征工程的成功与否直接影响到模型的准确性和泛化能力。在实际应用中,特征工程可能包括识别关键特征、特征标准化、离散化、编码和嵌入等多种技术。
整数线性规划:是一种优化技术,用于解决涉及线性不等式或等式约束下的整数变量最优化问题。数学上,它可以表示为:
minimize c
subject to Ax≤b;
其中,c、A、b是已知的向量或矩阵,x是需要找到的整数解。整数线性规划在供应链优化、网络设计和调度等多个领域有广泛应用。
分支剪切算法:是一种用于解决整数线性规划(integer linear programming,ILP)问题的优化算法,它结合了分支定界(Branch and Bound)算法和割平面(CuttingPlane)方法。这种组合使得算法能更有效地找到整数最优解,特别是对于那些具有大量整数和连续变量的复杂问题。在分支剪切算法中,首先通过解决松弛问题(即忽略整数约束的问题)来获得一个初始解。然后,使用割平面方法来添加新的线性约束(即“割”),以去除或减少非整数解的可能性。
一种面向资源利用率最大化的直播请求调度方法,如图5所示,包括如下步骤:
S1,收集历史负载数据和直播请求数据,根据历史负载数据获取基于资源利用率的累积分布函数,利用累积分布函数确定边缘云平台的最优资源利用率区间,包括如下步骤:
S1.1,收集边缘云平台下所有边缘服务器的历史负载数据和每个服务器所接收到的直播请求数据;
所述历史负载数据包括服务器ID、边缘服务器的位置、带宽消耗量、采样时间、边缘服务总带宽,所述直播请求数据包括请求ID、请求内容归属类别、请求平台、请求时刻、请求所属终端的归属区域、请求所对应的服务器ID。
S1.2,根据历史负载数据计算每个边缘服务器的资源利用率;
由于本申请针对的是直播业务,主要负载即为网络带宽消耗。因此,本申请中的资源利用率也即带宽利用率,当然在评估其它业务时,也可以将CPU占用率或者内存占用率等作为资源利用率。
所述带宽利用率的计算公式为:
式中,
S1.3,根据步骤S1.2得到的资源利用率获取累积分布函数(cumulativedistribution function,CDF);
所述累积分布函数的表达式为:
式中,F(x)表示随机变量x的累积分布函数,|X|表示边缘云平台下所有资源利用率的样本总数,X表示边缘云平台下所有边缘服务器的资源利用率的集合,
S1.4,利用累积分布函数计算出组成最优资源利用率区间的最低利用率阈值α和利用率上限阈值β;
由于大部分的边缘云服务器是从自资源供应商处租用而来,而供应商将资源利用率作为其收入的衡量标准。为了保证最低收入,供应商便设置了最低利用率阈值α。如果边缘云平台的调度导致边缘服务器利用率经常低于该阈值,供应商会终止与平台的协议并撤回服务器,因此,该阈值也称为服务器撤回利用率α。由于网络条件、服务器硬件等因素的限制,资源利用率永远不可能达到无穷大。此外,随着服务器负载的增加,服务器的服务质量QoS往往会降低。在现实中,边缘云平台通过与上游业务方签署QoS SLA来保证最低的QoS。此QoS SLA反映在利用率方面,即形成了利用率上限阈值β,也可以称之为QoS利用率β。
本申请将将F(x)<0.05和F(x)>0.95所对应的两个x值(分别用α和β表示)作为局部服务器也即边缘云平台中每个边缘服务器的带宽利用率约束。如图1所示为基于2023年4月的历史负载数据所得到的CDF分布图,由图可知,F(0.03)=0.05,F(0.8)=0.95,即5%的边缘服务器的实时资源利用率小于3%,而95%的边缘服务器的资源利用率都小于80%。
S2,根据步骤S1的直播请求数据利用有监督的聚类方法构建聚类模型,基于聚类模型确认每个直播请求的所属聚类,包括如下步骤:
S2.1,根据服务器资源消耗量识别直播请求中影响请求调度效果的关键特征,所述关键特征包括请求内容归属类别、请求平台和请求时刻;
首先根据直播频道将所有请求分为四大类,如图2所示显示了不同类别的不同收入分布。值得注意的是,由于比特率和延迟要求的增加,单机和竞技类性游戏内容的请求产生更高的资源占用,而娱乐和手机游戏流等休闲内容占用的带宽资源较少。
平台(即用于观看直播流的设备),因为它会影响观看的内容类型和请求的比特率。如图3所示,与移动平台(例如,智能手机和平板电脑)相比,来自更稳定平台(例如,PC和Web客户端)的请求产生更高的收入,这表明PC上对更高质量流的偏好以及更好的网络条件支持更高的数据吞吐量。
最后考虑请求时间,特别是请求是否在高峰时间发出,这是另一个有影响的特征。虽然这一特征对请求收入的影响并不直观,但通过深入的数据分析揭示了它的决定性作用。如图4所示,当请求数量达到峰值时,每个请求的收入通常较低,而在请求相对较少的时候,每个请求的收入则高得多。这种趋势可以归因于用户在高峰时段选择较低质量的流比特率,以及由于高服务器负载下网络波动所导致的请求收入总体下降。
S2.2,对每个直播请求的所有关键特征进行数据预处理得到请求量化样本;
所述请求内容归属类别和请求平台为离散型特征,而请求时刻则属于连续性特征。为了更好的利用异构特征区分请求,对连续性特征进行标准化以消除不同尺度的影响。由于请求时刻基本符合正态分布,因此本申请采用将数据标准化到标准正态分布得到标准化请求时刻,对应的公式为:
式中,
对于离散型特征,采用标签编码方法,即为不同的特征属性分配不同的整数来代表其值以方便识别。
S2.3,初始化聚类数量K=1,并设置最大聚类数
由于本申请采用有监督的聚类方法,因此首先需要确定最后要分成的聚类数量,即聚类数量K。在确定聚类模型阶段,设置K在1到30间波动,也即
S2.4,利用K-prototype聚类算法对步骤S2.2中的请求量化样本进行聚类,输出最终聚类中心和每个请求量化样本的聚类,包括如下步骤:
S2.4.1,从步骤S2.2的请求量化样本中随机选择K个样本作为初始聚类中心;
S2.4.2,计算每个请求量化样本到初始聚类中心的样本距离;
由于关键特征的异构性,本申请采用欧式距离(对于连续特征)和汉明距离(对于离散特征)的组合来计算样本距离,对应的计算公式为:
D(A,B)=α×Euclidean(A
式中,D(A,B)表示请求量化样本A和请求量化样本B之间的样本距离,α表示权重,本申请中,α=0.5,A
S2.4.3,根据步骤S2.4.2计算出的样本距离将每个请求量化样本分配到最近的初始聚类中心形成初始聚类;
S2.4.4,计算初始聚类中所有样本的特征均值(连续型特征)和众数(离散型特征),并将其设定为该初始聚类的新的聚类中心;
S2.4.5,根据步骤S2.4.2-S2.4.4的方法重新聚类,直到达到收敛条件,返回最终的聚类中心和每个请求量化样本的聚类;
所述收敛条件可以设置为聚类中心没有变化或达到预定的迭代次数。
S2.5,判断
采用使用轮廓系数和Davies–Bouldin指数指标来评估聚类的质量,轮廓系数用于量化一个样本与同一聚类中其它样本的相似度以及与最近邻聚类中的样本的不相似度。
对于每个请求量化样本i,所述轮廓系数的计算公式为:
式中,s(i)表示第i个请求量化样本的轮廓系数,b(i)表示第i个请求量化样本与最近邻聚类中所有样本的平均距离,a(i)表示第i个请求量化样本与同一聚类中其它样本的平均距离。整个数据集的轮廓系数是所有样本轮廓系数的平均值,轮廓系数的值范围在-1到1之间,整体的轮廓系数取值越高代表更好的聚类效果。
Davies–Bouldin指数用于评估聚类内部的相似度与聚类之间的不相似度。较低的Davies–Bouldin指数值通常表示更好的聚类效果,Davies–Bouldin指数DB的计算公式为:
式中,d
经过以上的聚类效果验证,最终本申请确定最佳聚类数K=29。通过以上的聚类模型可以将异构的包括请求内容归属类别、请求平台和请求时刻的请求特征聚类到不同的类别中,从而方便预测每个类别的直播请求的数量,而无需依赖异构的请求特征去预测新的直播请求的部署效果,从而进行更有效的资源分配和调度,大大简化了预测任务。
S3,根据步骤S2得到的直播请求所属聚类以及步骤S1中收集的每个边缘服务器属性基于Xgboost方法构建用于预测边缘服务器收益的请求调度效果预测模型;
由于内在请求特性影响请求服务效果,边缘服务器属性如总带宽和地理位置会通过影响传输稳定性和速度来影响收益,本申请综合考虑请求特性和服务器属性来建立请求调度效果预测模型。为了准确地建模请求收入,本申请采用极限梯度增强模型(Xgboost)构建一种可扩展的梯度增强决策树模型来同时拟合请求特征和服务器属性。具体来说,使用直播请求所属聚类、边缘服务器位置、服务器ID和边缘服务器总带宽作为输入,并使用相应的请求部署资源消耗也即带宽消耗量作为标签。在充足的历史数据上训练Xgboost可以基于直播请求的服务也即调度状况有效地构建边缘云平台的带宽消耗预测模型,由于带宽消耗量反映了其收入,所述带宽消耗预测模型也即为请求调度效果预测模型:
A
式中,A
Xgboost使用梯度增强(Gradient Boosting)算法,该算法通过逐步添加决策树来优化一个目标函数。每一步都添加一个新的树,以最小化目标函数,该函数通常包括损失项和正则化项。Xgboost的训练优化目标可以表示如下:
式中,
XGBoost的计算流程包含初始化模型(设定所有样本初始预测值为0)、迭代构建(如计算残差、构建新树、树剪枝、正则化和更新模型等)、模型评估(使用验证集评估模型性能),最后通过早停或达到预定的迭代次数来完成对模型的训练,此为现有技术,本申请不再赘述。
S4,基于边缘云平台资源利用率最大化和步骤S1得到的最优资源利用率区间构建优化目标函数;
所述优化目标函数的表达式为:
式中,E表示边缘云平台下边缘服务器的总数,M表示所有直播请求所属终端的归属区域的总数,
由于公式(9)中的x为非负整数,并且目标函数和所有约束都是线性的,因此问题构成整数线性规划(integer linear programming,ILP)问题。虽然理论上ILP问题都存在解析解,但求解ILP是NP-Hard的(即复杂度极高,不存在在有限时间内求解的可能)。考虑到众包边缘云服务平台和直播请求的巨大规模,这导致了巨大的解决方案空间(E*M*N达到800,000+),大多数ILP解决方案无法及时求解。
S5,将请求调度策略PS简化为请求服务策略
为解决以上问题,本申请提出了问题简化策略,即先忽略请求的地理位置维度,并将
式中,
新ILP问题的复杂性降低了M=59倍(从1分钟到1s或更短)。此外,基于服务器所分配直播请求数量必须为正整数,因此需放宽对x的整数约束,将问题转化为线性规划问题,之后使用带剪枝的分支定界算法(Branch and Cut,BC)来求解该问题得到
S6,收集边缘云平台下的实时直播请求,利用步骤S2的聚类模型获取实时直播请求所对应的聚类,利用步骤S3的请求调度效果预测模型预测实时直播请求调度时边缘服务器得到的收益,利用分支定界算法对更新后的优化目标函数进行求解得到请求服务策略
优选地,在利用请求服务策略
式中,
本申请可以将对应类别和地区的请求分配到对应的服务器上,从而实现在减少局部服务器极端情况的同时最大化边缘云平台的资源利用率。
本申请实施例还提供了一种面向资源利用率最大化的直播请求调度装置,包括:
数据收集模块:用于收集边缘云平台下所有边缘服务器的历史负载数据和对应的直播请求数据;
聚类输出模块:用于基于数据收集模块得到的直播请求数据利用有监督的聚类方法构建聚类模型,并基于聚类模型确认每个直播请求的所属聚类;
调度模型构建模块:用于基于聚类输出模块得到的每个直播请求的所属聚类和数据收集模块得到的数据基于XGBoost方法构建请求调度效果预测模型;
目标函数建立模块:用于基于数据收集模块得到的历史负载数据确定边缘云平台的最优资源利用率区间,并基于边缘云平台资源利用率最大化和最优资源利用率区间构建优化目标函数;
优化函数更新模块:用于将请求调度策略PS简化为请求服务策略
调度策略输出模块:用于收集边缘云平台下的实时直播请求,基于聚类输出模块得到的聚类模型确认实时直播请求所对应的聚类,基于调度模型构建模块的请求调度效果预测模型预测实时直播请求调度时边缘服务器得到的收益,再基于实时直播请求所对应的聚类和实时直播请求调度时边缘服务器得到的收益利用分支定界算法对更新后的优化目标函数进行求解获取请求服务策略,基于请求服务策略输出请求调度策略。
本申请实施例还提供了一种电子设备,所述电子设备包括处理器和存储器,所述存储器存储有计算机程序,计算机程序被处理器执行时,执行上述面向资源利用率最大化的直播请求调度方法的步骤。
本申请实施例还提供了一种计算机可读存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时,执行上述面向资源利用率最大化的直播请求调度方法的步骤。具体地,该存储介质可以为通用的存储介质,如移动磁盘、硬盘等,该存储介质上的计算机程序被运行时,能够执行上述面向资源利用率最大化的直播请求调度方法的实施例。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
- 一种发送调度请求及调度请求失败后的配置方法及装置
- 调度请求的发送方法及装置、存储介质、终端
- USB接口请求调度方法、装置及设备
- 一种最大化资源利用率的在离线任务调度方法
- 面向关联任务请求的虚拟资源调度系统及调度和分配方法