首页 / 专利库 / 人工智能 / 粒子群优化 / 容器云环境下的任务调度方法、装置、服务器及存储装置

容器环境下的任务调度方法、装置、服务器及存储装置

阅读:443发布:2020-05-12

专利汇可以提供容器环境下的任务调度方法、装置、服务器及存储装置专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种容器 云 环境下的任务调度方法、装置、 服务器 及存储装置,其中方法包括:获取云 数据中心 每台服务器的历史资源利用率,并基于历史资源利用率预测下一时刻每台服务器的预测资源利用率;接收到应用任务时,确认应用任务所需占用资源;获取将每台服务器的当前资源利用率,并结合预测资源利用率、所需占用资源和每台服务器的资源 阈值 进行优化计算,得到应用任务与服务器之间的部署矩阵;根据部署矩阵和应用任务在目标服务器上生成一组或多组容器。本发明通过对容器云服务器未来负载进行预测,再结合当前负载情况对应用任务进行合理部署,避免任务调度后在未来时刻出现容器云服务器过载。,下面是容器环境下的任务调度方法、装置、服务器及存储装置专利的具体信息内容。

1.一种容器环境下的任务调度方法,其特征在于,包括:
获取云数据中心每台服务器的历史资源利用率,并基于所述历史资源利用率预测下一时刻每台服务器的预测资源利用率;
接收到应用任务时,确认所述应用任务所需占用资源;
调度所述应用任务时,获取每台服务器的当前资源利用率,并结合所述预测资源利用率、所述所需占用资源和每台服务器的资源阈值进行优化计算,得到所述应用任务与服务器之间的部署矩阵;
根据所述部署矩阵和所述应用任务在目标服务器上生成一组或多组容器。
2.根据权利要求1所述的容器云环境下的任务调度方法,其特征在于,所述获取云数据中心每台服务器的历史资源利用率,并基于所述历史资源利用率预测下一时刻每台服务器的预测资源利用率的步骤,包括:
预先设定时间序列,所述时间序列由多个历史资源利用率组成;
间隔预设周期采集所述历史资源利用率;
根据所述历史资源利用率更新所述时间序列;
将所述时间序列输入至构建好的Prophet模型,预测得到下一时刻每台服务器的预测资源利用率。
3.根据权利要求2所述的容器云环境下的任务调度方法,其特征在于,所述根据所述历史资源利用率更新所述时间序列的步骤,包括:
将新的历史资源利用率加入至所述时间序列的末尾,并将所述时间序列中最早的历史资源利用率删除,以对所述时间序列进行更新。
4.根据权利要求2所述的容器云环境下的任务调度方法,其特征在于,还包括构建所述Prophet模型,所述构建所述Prophet模型的步骤包括:
在所述时间序列上设置变点的位置,以将所述时间序列划分为多段;
检测每段时间序列的变化趋势;
利用所述变化趋势构建趋势模型;
利用所述预设周期构建季节模型;
获取所述时间序列中包括的节假日的个数,并利用所述节假日的个数构建节假日模型;
利用所述趋势模型、所述季节模型、所述节假日模型构建所述Prophet模型。
5.根据权利要求3所述的容器云环境下的任务调度方法,其特征在于,所述趋势模型为:
其中,所述C(t)为所述服务器在时刻t的资源容量;向量δ表示时间戳Sj上增长率的变化量, 表示S维实数空间,时间戳Sj表示有S个变点位于时间戳Sj,j=1,…,S,则在时刻t时的增长率为k+a(t)Tδ,k为基础增长率,向量a(t)∈{0,1}S满足γ表示预先设置的 偏置参数m在所有变点处的调整量
所述季节模型为:
其中,P为预先设定的所述时间序列的期望周期,an,bn∈β,β通过0到σ区间的正态分布生成,N和σ预先设定;
所述节假日模型为:
h(t)=Z(t)k;
其中,Z(t)=[1(t∈D1),…,1(t∈DL)]表示时间戳t是否在节假日,Di表示节假日的前后一段时间,k=(k1,…,kL)T,ki表示预测的节假日的相应变化,k通过0到v区间的正态分布生成,v预先设定;
所述Prophet模型为:
y(t)=g(t)+s(t)+h(t)+εt;
其中,εt是误差项并且服从正态分布。
6.根据权利要求1所述的容器云环境下的任务调度方法,其特征在于,所述获取每台服务器的当前资源利用率,并结合所述预测资源利用率、所述所需占用资源和每台服务器的资源阈值进行优化计算,得到所述应用任务与服务器之间的部署矩阵的步骤,包括:
获取每台服务器的当前资源利用率;
基于所述当前资源利用率、所述预测资源利用率、所述所需占用资源和所述资源阈值构建目标函数和约束函数,并初始化粒子群,设置种群大小和迭代次数;
将所述粒子群中的非支配粒子作为引导粒子保存到最优解集合和最终解集合中,并计算每个引导粒子的拥挤距离;
进行迭代,且每个粒子根据所述拥挤距离从所述最优解集合中选择一个引导粒子;
对每个所述粒子执行飞行过程;
将所述粒子群划分为大小相同的三部分,且对每个部分分别采用不同的突变方案,所述突变方案包括不进行突变、均匀突变和不均匀突变;
当所述粒子的当前位置支配所述粒子的个体最优位置或者两者互不支配时,将所述个体最优位置更新为当前位置,并将所述粒子加入到所述最优解集合和所述最终解集合中;
当所有所述粒子的位置更新完毕后,更新所述粒子的拥挤距离;
当达到最大迭代次数后,得到所述部署矩阵。
7.根据权利要求6所述的容器云环境下的任务调度方法,其特征在于,所述目标函数为:
其中, 为所述当前资源利用率的估计值, 为所述当前资源利用率的估计值的标准差,Res表示资源类型;
第一约束函数为:
其中,eij表示第i个应用任务是否部署到第j台服务器上运行,若是,则eij=1,若否,则eij=0,所述第一约束函数表示每一个批量任务只能部署在同一台服务器上;
第二约束函数为:
其中, 为当前资源利用率,Bi,Res为应用任务的所需占用资源,Ti,Res为服务器的资源阈值, 为预测资源利用率估计值, 为预测资源利用率,所述第二约束函数表示所述应用任务部署到服务器时,当前资源利用率和预测资源利用率小于货等于所述资源阈值。
8.一种容器云环境下的任务调度装置,其特征在于,包括:
获取模,用于获取云数据中心每台服务器的历史资源利用率,并基于所述历史资源利用率预测下一时刻每台服务器的预测资源利用率;
确认模块,用于接收到应用任务时,确认所述应用任务所需占用资源;
优化模块,用于调度所述应用任务时,获取每台服务器的当前资源利用率,并结合所述预测资源利用率、所述所需占用资源和每台服务器的资源阈值进行优化计算,得到所述应用任务与服务器之间的部署矩阵;
部署模块,用于根据所述部署矩阵和所述应用任务在目标服务器上生成一组或多组容器。
9.一种服务器,其特征在于,所述服务器包括处理器、与所述处理器耦接的存储器,其中,
所述存储器存储有用于实现如权利要求1-8中任一项所述的容器云环境下的任务调度方法的程序指令;
所述处理器用于执行所述存储器存储的所述程序指令以平衡容器云服务器集群负载。
10.一种存储装置,其特征在于,存储有能够实现如权利要求1-8中任一项所述的容器云环境下的任务调度方法的程序文件。

说明书全文

容器环境下的任务调度方法、装置、服务器及存储装置

技术领域

[0001] 本发明涉及云平台技术领域,特别是涉及一种容器云环境下的任务调度方法、装置、服务器及存储装置。

背景技术

[0002] 容器技术相比于虚拟机技术,开销更低、速度更快,因此正逐渐替代虚拟机技术,应用于云数据中心。用户通过容器云平台按需订购服务,减少了在基础设施上的投入成本,降低了硬件设备的维护难度。容器云将计算任务分布在大量服务器构成的资源池上,使各种应用系统能够根据需要获取计算资源、数据资源和存储资源。由于容器云服务器的异构性和应用任务的复杂性,如何通过调度策略对应用任务进行有效调度并合理分配计算资源成为容器云中的关键问题。
[0003] 目前,现有技术普遍基于如先来先服务、加权轮询、Min–Min和Max–Min等传统的任务调度算法,存在节点负载分布不均,作业容易出现饥饿等缺点,同时任务调度过程中需考虑CPU、内存和磁盘容量等多资源约束,即问题被抽象为多资源约束下的多目标优化问题时,传统算法求解效果不甚理想。另外大多数现有技术仅根据调度时刻服务器资源使用率而确定任务的分配,那么有可能出现一种情况:将大量任务提交到当前资源使用率较低但未来持续增长的服务器上,造成下一时刻服务器过载。

发明内容

[0004] 本发明提供一种容器云环境下的任务调度方法、装置、服务器及存储装置,以解决现有的任务调度方法未考虑服务器在未来时刻是否会过载的问题。
[0005] 为解决上述技术问题,本发明公开了一种容器云环境下的任务调度方法,包括:
[0006] 获取云数据中心每台服务器的历史资源利用率,并基于历史资源利用率预测下一时刻每台服务器的预测资源利用率;
[0007] 接收到应用任务时,确认应用任务所需占用资源;
[0008] 调度应用任务时,获取每台服务器的当前资源利用率,并结合预测资源利用率、所需占用资源和每台服务器的资源阈值进行优化计算,得到应用任务与服务器之间的部署矩阵;
[0009] 根据部署矩阵和应用任务在目标服务器上生成一组或多组容器。
[0010] 作为本发明的进一步改进,获取云数据中心每台服务器的历史资源利用率,并基于历史资源利用率预测下一时刻每台服务器的预测资源利用率的步骤,包括:
[0011] 预先设定时间序列,时间序列由多个历史资源利用率组成;
[0012] 间隔预设周期采集历史资源利用率;
[0013] 根据历史资源利用率更新时间序列;
[0014] 将时间序列输入至构建好的Prophet模型,预测得到下一时刻每台服务器的预测资源利用率。
[0015] 作为本发明的进一步改进,根据历史资源利用率更新时间序列的步骤,包括:
[0016] 将新的历史资源利用率加入至时间序列的末尾,并将时间序列中最早的历史资源利用率删除,以对时间序列进行更新。
[0017] 作为本发明的进一步改进,还包括构建Prophet模型,构建Prophet模型的步骤包括:
[0018] 在时间序列上设置变点的位置,以将时间序列划分为多段;
[0019] 检测每段时间序列的变化趋势;
[0020] 利用变化趋势构建趋势模型;
[0021] 利用预设周期构建季节模型;
[0022] 获取时间序列中包括的节假日的个数,并利用节假日的个数构建节假日模型;
[0023] 利用趋势模型、季节模型、节假日模型构建Prophet模型。
[0024] 作为本发明的进一步改进,趋势模型为:
[0025]
[0026] 其中,C(t)为服务器在时刻t的资源容量;向量δ表示时间戳Sj上增长率的变化量,表示S维实数空间,时间戳Sj表示有S个变点位于时间戳Sj,j=1,…,S,则在时T S刻t时的增长率为k+a(t)δ,k为基础增长率,向量a(t)∈{0,1} 满足
γ表示预先设置的偏置参数m在所有变点处的调整量
[0027] 季节模型为:
[0028]
[0029] 其中,P为预先设定的时间序列的期望周期,an,bn∈β,β通过0到σ区间的正态分布生成,N和σ预先设定;
[0030] 节假日模型为:
[0031] h(t)=Z(t)k;
[0032] 其中,Z(t)=[1(t∈D1),…,1(t∈DL)]表示时间戳t是否在节假日,Di表示节假日T的前后一段时间,k=(k1,…,kL) ,ki表示预测的节假日的相应变化,k通过0到v区间的正态分布生成,v预先设定;
[0033] Prophet模型为:
[0034] y(t)=g(t)+s(t)+h(t)+εt;
[0035] 其中,εt是误差项并且服从正态分布。
[0036] 作为本发明的进一步改进,获取每台服务器的当前资源利用率,并结合预测资源利用率、所需占用资源和每台服务器的资源阈值进行优化计算,得到应用任务与服务器之间的部署矩阵的步骤,包括:
[0037] 获取每台服务器的当前资源利用率;
[0038] 基于当前资源利用率、预测资源利用率、所需占用资源和资源阈值构建目标函数和约束函数,并初始化粒子群,设置种群大小和迭代次数;
[0039] 将粒子群中的非支配粒子作为引导粒子保存到最优解集合和最终解集合中,并计算每个引导粒子的拥挤距离;
[0040] 进行迭代,且每个粒子根据拥挤距离从最优解集合中选择一个引导粒子;
[0041] 对每个粒子执行飞行过程;
[0042] 将粒子群划分为大小相同的三部分,且对每个部分分别采用不同的突变方案,突变方案包括不进行突变、均匀突变和不均匀突变;
[0043] 当粒子的当前位置支配粒子的个体最优位置或者两者互不支配时,将个体最优位置更新为当前位置,并将粒子加入到最优解集合和最终解集合中;
[0044] 当所有粒子的位置更新完毕后,更新粒子的拥挤距离;
[0045] 当达到最大迭代次数后,得到部署矩阵。
[0046] 作为本发明的进一步改进,目标函数为:
[0047] Res∈{CPU,Mem,Disk};
[0048] 其中, 为当前资源利用率的估计值, 为当前资源利用率的估计值的标准差,Res表示资源类型;
[0049] 第一约束函数为:
[0050] i=1,2,…,m;
[0051] 其中,eij表示第i个应用任务是否部署到第j台服务器上运行,若是,则eij=1,若否,则eij=0,第一约束函数表示每一个批量任务只能部署在同一台服务器上;
[0052] 第二约束函数为:
[0053]
[0054]
[0055] 其中, 为当前资源利用率,Bi,Res为应用任务的所需占用资源,Ti,Res为服务器的资源阈值, 为预测资源利用率估计值, 为预测资源利用率,第二约束函数表示应用任务部署到服务器时,当前资源利用率和预测资源利用率小于货等于资源阈值。
[0056] 为了解决上述问题,本发明还提供了了一种容器云环境下的任务调度装置,包括:
[0057] 获取模,用于获取云数据中心每台服务器的历史资源利用率,并基于历史资源利用率预测下一时刻每台服务器的预测资源利用率;
[0058] 确认模块,用于接收到应用任务时,确认应用任务所需占用资源;
[0059] 优化模块,用于调度应用任务时,获取每台服务器的当前资源利用率,并结合预测资源利用率、所需占用资源和每台服务器的资源阈值进行优化计算,得到应用任务与服务器之间的部署矩阵;
[0060] 部署模块,用于根据部署矩阵和应用任务在目标服务器上生成一组或多组容器。
[0061] 为了解决上述问题,本发明还提供了了一种服务器,服务器包括处理器、与处理器耦接的存储器,其中,
[0062] 存储器存储有用于实现上述任一项的容器云环境下的任务调度方法的程序指令;
[0063] 处理器用于执行存储器存储的程序指令以平衡容器云服务器集群负载。
[0064] 为了解决上述问题,本发明还提供了了一种存储装置,存储有能够实现上述任一项的容器云环境下的任务调度方法的程序文件。
[0065] 本发明的有益效果是:本发明通过采集服务器的历史资源利用率,推导出未来时刻的服务器的预测资源利用率,再结合服务器的当前资源利用率、预测资源利用率、服务器的资源阈值以及应用任务所需占用资源进行优化计算,从而得到将任务部署到服务器的最优部署方案,其综合考虑了服务器当前负载及未来负载对任务调度的影响,将负载均衡问题建模为多资源约束下的多目标优化问题,实现了服务器集群负载均衡的目的,同时避免出现部署应用任务的服务器在未来某个时刻出现过载的问题。附图说明
[0066] 图1是本发明第一实施例的容器云环境下的任务调度方法的流程示意图;
[0067] 图2是本发明第二实施例的容器云环境下的任务调度方法的流程示意图;
[0068] 图3是本发明第三实施例的容器云环境下的任务调度方法的流程示意图;
[0069] 图4是本发明第四实施例的容器云环境下的任务调度方法的流程示意图;
[0070] 图5是本发明实施例的容器云环境下的任务调度装置的结构示意图;
[0071] 图6是本发明实施例的服务器的结构示意图;
[0072] 图7是本发明实施例的存储装置的结构示意图。

具体实施方式

[0073] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0074] 本发明中的术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”、“第三”的特征可以明示或者隐含地包括至少一个该特征。本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。本发明实施例中所有方向性指示(诸如上、下、左、右、前、后……)仅用于解释在某一特定姿态(如附图所示)下各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时,则该方向性指示也相应地随之改变。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0075] 在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本发明的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
[0076] 图1是本发明第一实施例的容器云环境下的任务调度方法的流程示意图。需注意的是,若有实质上相同的结果,本发明的方法并不以图1所示的流程顺序为限。如图1所示,该方法包括步骤:
[0077] 步骤S1,获取云数据中心每台服务器的历史资源利用率,并基于历史资源利用率预测下一时刻每台服务器的预测资源利用率。
[0078] 具体地,在步骤S101中,通过定期采集服务器的历史资源利用率,再根据历史资源利用率对未来时刻服务器的资源利用率进行预测,得到预测资源利用率。
[0079] 在上述实施例的基础上,其他实施例中,如图2所示,步骤S1包括以下步骤:
[0080] 步骤S10,预先设定时间序列,时间序列由多个历史资源利用率组成。
[0081] 具体地,预先设定一个长度为L的时间序列。
[0082] 步骤S11,间隔预设周期采集历史资源利用率。
[0083] 需要说明的是,预测周期预先设定。
[0084] 步骤S12,根据历史资源利用率更新时间序列。
[0085] 具体地,在获取到服务器的历史资源利用率之后,根据历史资源利用率对时间序列进行更新,及时对时间序列进行更新维护,避免时间跨度过大,时间序列不再具有代表性。
[0086] 进一步的,步骤S12具体为:将新的历史资源利用率加入至时间序列的末尾,并将时间序列中最早的历史资源利用率删除,以对时间序列进行更新。
[0087] 步骤S13,将时间序列输入至构建好的Prophet模型,预测得到下一时刻每台服务器的预测资源利用率。
[0088] 具体地,将更新好的时间序列输入只构建好的Prophet模型,从而得到下一时刻服务器的预测资源利用率。
[0089] 需要说明的是,Prophet模型预先构建好。如图3所示,构建Prophet模型的步骤包括:
[0090] 步骤S20,在时间序列上设置变点的位置,以将时间序列划分为多段。
[0091] 具体地,变点即趋势变化点,在时间序列上设置变点的位置,变点的设置可以人工来设定,也可自动选择。
[0092] 步骤S21,检测每段时间序列的变化趋势。
[0093] 步骤S22,利用变化趋势构建趋势模型。
[0094] 具体地,趋势模型为:
[0095]
[0096] 其中,C(t)为服务器在时刻t的资源容量;向量δ表示时间戳Sj上增长率的变化量,表示S维实数空间,时间戳Sj表示有S个变点位于时间戳Sj,j=1,…,S,则在时T S刻t时的增长率为k+a(t)δ,k为预先设定的基础增长率,向量a(t)∈{0,1} 满足γ表示预先设置的偏置参数m在所有变点处的调整量
[0097] 步骤S23,利用预设周期构建季节模型。
[0098] 具体地,季节模型为:
[0099]
[0100] 其中,P为预先设定的时间序列的期望周期,an,bn∈β,并且β=(a1,b1,…,aN,bN)T,β通过0到σ区间的正态分布生成,N和σ预先设定。根据β即可计算得出an,bn。需要说明的是,N越大,越能拟合复杂的季节性,但会增加过渡拟合的险,σ越大,则季节效应越明显。
[0101] 步骤S24,获取时间序列中包括的节假日的个数,并利用节假日的个数构建节假日模型。
[0102] 具体地,假设时间序列包含X个节假日,则对于第i个节假日而言,Di表示该节假日的前后一段时间,指示函数Z(t)=[1(t∈D1),…,1(t∈DL)]表示时间戳t是否在节假日,则节假日模型为:
[0103] h(t)=Z(t)k;
[0104] 其中,k=(k1,…,kL)T,ki表示预测的节假日的相应变化,通过0到v区间的正态分布生成,v预先设定,v越大,表示节假日对节假日模型的影响越大。
[0105] 步骤S25,利用趋势模型、季节模型、节假日模型构建Prophet模型。
[0106] 具体地,Prophet模型为:
[0107] y(t)=g(t)+s(t)+h(t)+εt;
[0108] 其中,εt是误差项并且服从正态分布。
[0109] 步骤S2,接收到应用任务时,确认应用任务所需占用资源。
[0110] 具体地,在接收到应用任务时,确认执行该应用任务时的所需占用资源。
[0111] 步骤S3,调度应用任务时,获取每台服务器的当前资源利用率,并结合预测资源利用率、所需占用资源和每台服务器的资源阈值进行优化计算,得到应用任务与服务器之间的部署矩阵。
[0112] 具体地,接收到调度应用任务的请求后,通过当前资源利用率、预测资源利用率、所需占用资源和每台服务器的资源阈值进行优化计算,从而得到应用任务和服务器之间的部署矩阵。
[0113] 进一步的,在上述实施例的基础上,其他实施例中,如图4所示,步骤S3具体包括:
[0114] 步骤S30,获取每台服务器的当前资源利用率。
[0115] 步骤S31,基于当前资源利用率、预测资源利用率、所需占用资源和资源阈值构建目标函数和约束函数,并初始化粒子群,设置种群大小和迭代次数。
[0116] 具体地,设置目标函数、约束函数、种群大小和迭代次数等参数,初始化粒子群。
[0117] 假设Si表示第i台服务器,对于服务器Si而言,其当前资源利用率估计值为其当前资源利用率与应用任务的所需占用资源之和,预测资源利用率估计值为其预测资源利用率与应用任务的所需占用资源之和。
[0118] 目标函数为:
[0119] Res∈{CPU,Mem,Disk};
[0120] 其中, 为当前资源利用率的估计值, 为当前资源利用率的估计值的标准差,Res表示资源类型,资源类型包括CPU、Mem(内存)、Disk(磁盘)三种;
[0121] 第一约束函数为:
[0122] i=1,2,…,m;
[0123] 其中,eij表示第i个应用任务是否部署到第j台服务器上运行,若是,则eij=1,若否,则eij=0,第一约束函数表示每一个批量任务只能部署在同一台服务器上;
[0124] 第二约束函数为:
[0125]
[0126]
[0127] 其中, 为当前资源利用率,Bi,Res为应用任务的所需占用资源,Ti,Res为服务器的资源阈值, 为预测资源利用率估计值, 为预测资源利用率,第二约束函数表示应用任务部署到服务器时,当前资源利用率和预测资源利用率小于货等于资源阈值。
[0128] 步骤S32,将粒子群中的非支配粒子作为引导粒子保存到最优解集合和最终解集合中,并计算每个引导粒子的拥挤距离。
[0129] 步骤S33,进行迭代,且每个粒子根据拥挤距离从最优解集合中选择一个引导粒子。
[0130] 步骤S34,对每个粒子执行飞行过程。
[0131] 具体地,每一个例子的位置代表应用任务分配问题的一个候选解,假设在一个D维的搜索空间中,粒子i的位置为xi={xi1,…,xiD},速度为vi={vi1,…,viD},则在时刻t,Pid,d=1,..,D为粒子i的个体最优位置,Pgd为粒子群的全局最优位置,飞行过程中,粒子i的速度和位置按照以下方法更新:
[0132] vid(t+1)=wvid(t)+c1r1(Pid-xid(t-1))+c2r2(Pgd-xid(t-1));
[0133] xid(t+1)=xid(t)+vid(t);
[0134] 其中,w为惯性权重,c1、c2为加速常数,r1、r2为均匀分布在[0,1]内的随机数。
[0135] 步骤S35,将粒子群划分为大小相同的三部分,且对每个部分分别采用不同的突变方案。
[0136] 需要说明的是,突变方案包括不进行突变、均匀突变和不均匀突变,在进行突变操作时,对第一部分的子粒子群不进行突变,对第二部分的子粒子群进行均匀的突变,对第三部分的子粒子群进行不均匀的突变。
[0137] 步骤S36,当粒子的当前位置支配粒子的个体最优位置或者两者互不支配时,将个体最优位置更新为当前位置,并将粒子加入到最优解集合和最终解集合中。
[0138] 步骤S37,当所有粒子的位置更新完毕后,更新粒子的拥挤距离。
[0139] 步骤S38,当达到最大迭代次数后,得到部署矩阵。
[0140] 本实施例通过OMOPSO算法实现对最优的部署矩阵求解。
[0141] 步骤S4,根据部署矩阵和应用任务在目标服务器上生成一组或多组容器。
[0142] 进一步的,当目标服务器因资源不足、运行异常等原因造成容器生成失败时,召回该应用任务并报告异常消息。
[0143] 本实施例通过采集服务器的历史资源利用率,推导出未来时刻的服务器的预测资源利用率,再结合服务器的当前资源利用率、预测资源利用率、服务器的资源阈值以及应用任务所需占用资源进行优化计算,从而得到将任务部署到服务器的最优部署方案,其综合考虑了服务器当前负载及未来负载对任务调度的影响,将负载均衡问题建模为多资源约束下的多目标优化问题,实现了服务器集群负载均衡的目的,同时避免出现部署应用任务的服务器在未来某个时刻出现过载的问题。
[0144] 图5是本发明实施例的容器云环境下的任务调度装置的结构示意图。如图5所示,该装置50包括获取模块51、确认模块52、优化模块53和部署模块54。
[0145] 获取模块51,用于获取云数据中心每台服务器的历史资源利用率,并基于历史资源利用率预测下一时刻每台服务器的预测资源利用率。
[0146] 确认模块52,用于接收到应用任务时,确认应用任务所需占用资源。
[0147] 优化模块53,用于调度应用任务时,获取每台服务器的当前资源利用率,并结合预测资源利用率、所需占用资源和每台服务器的资源阈值进行优化计算,得到应用任务与服务器之间的部署矩阵。
[0148] 部署模块54,用于根据部署矩阵和应用任务在目标服务器上生成一组或多组容器。
[0149] 可选地,获取模块51获取云数据中心每台服务器的历史资源利用率,并基于历史资源利用率预测下一时刻每台服务器的预测资源利用率的操作可以为:预先设定时间序列,时间序列由多个历史资源利用率组成;间隔预设周期采集历史资源利用率;根据历史资源利用率更新时间序列;将时间序列输入至构建好的Prophet模型,预测得到下一时刻每台服务器的预测资源利用率。
[0150] 可选地,获取模块51根据历史资源利用率更新时间序列的操作还可以为:将新的历史资源利用率加入至时间序列的末尾,并将时间序列中最早的历史资源利用率删除,以对时间序列进行更新。
[0151] 可选地,获取模块51将时间序列输入至构建好的Prophet模型的操作之前,还需要构建Prophet模型,构建Prophet模型的操作可以为:在时间序列上设置变点的位置,以将时间序列划分为多段;检测每段时间序列的变化趋势;利用变化趋势构建趋势模型;利用预设周期构建季节模型;获取时间序列中包括的节假日的个数,并利用节假日的个数构建节假日模型;
[0152] 利用趋势模型、季节模型、节假日模型构建Prophet模型。
[0153] 可选地,趋势模型为:
[0154]
[0155] 其中,C(t)为服务器在时刻t的资源容量;向量δ表示时间戳Sj上增长率的变化量,表示S维实数空间,时间戳Sj表示有S个变点位于时间戳Sj,j=1,…,S,则在时刻t时的增长率为k+a(t)Tδ,k为基础增长率,向量a(t)∈{0,1}S满足γ表示预先设置的偏置参数m在所有变点处的调整量
[0156] 季节模型为:
[0157]
[0158] 其中,P为预先设定的时间序列的期望周期,an,bn∈β,β通过0到σ区间的正态分布生成,N和σ预先设定;
[0159] 节假日模型为:
[0160] h(t)=Z(t)k;
[0161] 其中,Z(t)=[1(t∈D1),…,1(t∈DL)]表示时间戳t是否在节假日,Di表示节假日的前后一段时间,k=(k1,…,kL)T,ki表示预测的节假日的相应变化,k通过0到v区间的正态分布生成,v预先设定;
[0162] Prophet模型为:
[0163] y(t)=g(t)+s(t)+h(t)+εt;
[0164] 其中,εt是误差项并且服从正态分布。
[0165] 可选地,优化模块53获取每台服务器的当前资源利用率,并结合预测资源利用率、所需占用资源和每台服务器的资源阈值进行优化计算,得到应用任务与服务器之间的部署矩阵的操作可以为:获取每台服务器的当前资源利用率;基于当前资源利用率、预测资源利用率、所需占用资源和资源阈值构建目标函数和约束函数,并初始化粒子群,设置种群大小和迭代次数;将粒子群中的非支配粒子作为引导粒子保存到最优解集合和最终解集合中,并计算每个引导粒子的拥挤距离;进行迭代,且每个粒子根据拥挤距离从最优解集合中选择一个引导粒子;对每个粒子执行飞行过程;将粒子群划分为大小相同的三部分,且对每个部分分别采用不同的突变方案,突变方案包括不进行突变、均匀突变和不均匀突变;当粒子的当前位置支配粒子的个体最优位置或者两者互不支配时,将个体最优位置更新为当前位置,并将粒子加入到最优解集合和最终解集合中;当所有粒子的位置更新完毕后,更新粒子的拥挤距离;当达到最大迭代次数后,得到部署矩阵。
[0166] 可选地,目标函数为:
[0167] Res∈{CPU,Mem,Disk};
[0168] 其中, 为当前资源利用率的估计值, 为当前资源利用率的估计值的标准差,Res表示资源类型;
[0169] 第一约束函数为:
[0170] i=1,2,…,m;
[0171] 其中,eij表示第i个应用任务是否部署到第j台服务器上运行,若是,则eij=1,若否,则eij=0,第一约束函数表示每一个批量任务只能部署在同一台服务器上;
[0172] 第二约束函数为:
[0173]
[0174]
[0175] 其中, 为当前资源利用率,Bi,Res为应用任务的所需占用资源,Ti,Res为服务器的资源阈值, 为预测资源利用率估计值, 为预测资源利用率,第二约束函数表示应用任务部署到服务器时,当前资源利用率和预测资源利用率小于货等于资源阈值。
[0176] 请参阅图6,图6为本发明实施例的服务器的结构示意图。如图6所示,该服务器60包括处理器61及和处理器61耦接的存储器62。
[0177] 存储器62存储有用于实现上述任一实施例所述的容器云环境下的任务调度方法的程序指令。
[0178] 处理器61用于执行存储器62存储的程序指令以平衡容器云服务器集群负载。
[0179] 其中,处理器61还可以称为CPU(Central Processing Unit,中央处理单元)。处理器61可能是一种集成电路芯片,具有信号的处理能。处理器61还可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0180] 参阅图7,图7为本发明实施例的存储装置的结构示意图。本发明实施例的存储装置存储有能够实现上述所有方法的程序文件71,其中,该程序文件71可以以软件产品的形式存储在上述存储装置中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施方式所述方法的全部或部分步骤。而前述的存储装置包括:U盘、移动硬盘只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质,或者是计算机、服务器、手机、平板等服务器设备。
[0181] 在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0182] 另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。以上仅为本发明的实施方式,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈