本发明属于云计算系统控制领域,特别是涉及一种云数据中心批量到达任务分配装置、系统及方法。
背景技术:
云计算是一种基于互联网的计算方式,通过这种方式,共享的软硬件资源和信息可以按需求提供给计算机和其他设备。相对于传统的软件和计算形态,云计算具有松散耦合、随需应变、成本可控、资源虚拟、异构协同等显著的优势,使其更适应现今的电子商务、柔性制造、移动互联网等应用。云数据中心是指由多个异构的、由网络连接在一起的主机所组成的用于承载提供在线云服务的企业级应用的分布式计算系统。在云数据中心中,将大量的主机进行集中统一管理,可以保障主机运行所需要的稳定电源环境,适宜的温湿度控制以及网络带宽条件。
同其他软硬件系统一样,云数据中心中的主机的负载也处于实时变化中。由于现今的云计算系统多运用于大规模科学计算、实时金融、在线交易、流媒体多播等高负载和高复杂度的应用,其主机时常处于超负荷运行的状态。如果任务调度和负载均衡策略稍有不慎,就极易出现部分主机节点待处理任务过度堆积和缓冲区溢出的情况,并有可能进一步形成系统崩溃,造成重大损失。而传统的任务调度和分配策略,主要仅仅考虑备选主机的资源剩余量与任务需求量的匹配情况来进行任务分配,并根据这些静态数据确定任务分配和调度方案。这种策略存在以下不足:由于忽视了主机负载、资源占用率、可用性和可靠性的变化趋势,传统的调度策略可能将大量的新增任务分配到当前任务余量较大但可靠性恶化中的主机上,极易使这些主机在一段时间后形成负载热点;同时,部分主机虽然当前任务余量不大,但是处于运行状态迅速改善的过程中,而传统的调度分配策略有可能忽略掉这些实际上可以承接更多任务的主机,从而导致系统计算资源的闲置浪费。
技术实现要素:
有鉴于现有技术的上述缺陷,本发明所要解决的技术问题是提供一种对云数据中心批量到达任务进行合理分配的方法。
为实现上述目的,本发明提供了一种云数据中心批量到达任务分配方法,其特征是按以下步骤进行:
步骤一、监测云数据中心各主机当前状态:
设定云数据中心中的主机数量为n,0<i≤n,n>0;
获取云数据中心新到达任务的数量xdsl、每个新到任务对中央处理数量的要求xqcpuj、每个新到任务对内存容量的要求xqncj、每个新到任务对外存容量的要求xqwcj、云数据中心中各个主机当前剩余可用的中央处理器数量sycpui、云数据中心中各个主机当前剩余可用内存容量synci、云数据中心中各个主机当前剩余可用外存容量sywci、各个主机上一次完成的任务所消耗的时间rwxhi、各个主机上一次完成任务到当前的间隔时间wcjgi、各个主机最近一次故障持续时间gzcxi、各个主机最近一次故障到当前的间隔时间gzjgi、各个主机上一次完成任务所释放的中央处理器数量sfcpui、各个主机上一次完成任务所释放的内存容量sfnci、各个主机上一次完成任务所释放的外存容量sfwci;
步骤二、对各主机负载进行评估:
a1、设定各主机剩余计算资源总充裕度为cydi:
计算cydi=cpucyi×wccyi×nccyi得到各主机剩余计算资源总充裕度cydi;
a2、设定各个主机的任务综合执行率为zhxhi:
计算
a3、设定近期任务空闲影响效应的各个主机的任务综合执行率为kdxhi:
计算
a4、设定等效未来预期执行率为dxzxi:
计算
步骤三、对各主机承接任务优先度进行评估:
设定各个主机接收任务的优先度为yxdi:
计算
步骤四、生成批量任务分配方案:
b1、qj为集合组,0<j≤xdsl:
计算qj={x|0<x≤n,sycpux≥xqcpui,syncx≥xqnci,sywcx≥xqwci}得到第一个集合组qj;
b2、fpi为标记变量,0<i≤n;fpi初始值设为0;
从批量到达任务中的第一个开始往后,计算该任务对应的目标主机标记量mbj:
步骤五、执行批重任务分配:
当将该任务对应的目标主机标记量mbj=0,则将任务拒绝并退回提交任务的用户;当将该任务对应的目标主机标记量mbj>0,则将该任务对应的目标主机标记量mbj分配给第mbj号主机执行。
较佳的,所述步骤二中,计算
较佳的,所述步骤四中,所述pdij为取值为0或1的二维变量组;0<i≤n;0<j≤xdsl;
采用以上技术方案,通过考虑云数据中心运行状态的动态波动性,各个主机的当前任务余量和任务负载实时的变化情况,进一步提高了云数据中心批量到达任务分配的合理性。
本发明要解决的另一技术问题是提供一种对云数据中心批量到达任务进行合理分配的装置。
为了实现上述目的,本发明提供了一种云数据中心批量到达任务分配装置,包括主机负载监测模块、“任务-主机”匹配模块和批量任务分配执行模块;所述主机负载监测模块包含主机负载获取单元;所述“任务-主机”匹配模块由主机负载评估单元、主机优先度评估单元、批量任务分配策略生成单元组成;所述主机负载获取单元的第一输出端连接所述主机负载评估单元的输入端,所述主机负载获取单元的第二输出端连接所述主机优先度评估单元第一输入端,所述主机负载获取单元的第三输出端连接所述批量任务分配策略生成单元第一输入端,所述主机负载评估单元的输出端连接所述主机优先度评估单元第二输入端,所述主机优先度评估单元输出端连接所述批量任务分配策略生成单元的第二输入端,所述批量任务分配策略生成单元的输出端连接所述批量任务分配执行模块输入端;
所述主机负载获取单元用于获取数据中心各主机当前状态,并发送给所述主机负载评估单元、主机优先度评估单元、批量任务分配策略生成单元:
获取云数据中心新到达任务的数量xdsl、每个新到任务对中央处理数量的要求xqcpuj、每个新到任务对内存容量的要求xqncj、每个新到任务对外存容量的要求xqwcj、云数据中心中各个主机当前剩余可用的中央处理器数量sycpui、云数据中心中各个主机当前剩余可用内存容量synci、云数据中心中各个主机当前剩余可用外存容量sywci、各个主机上一次完成的任务所消耗的时间rwxhi、各个主机上一次完成任务到当前的间隔时间wcjgi、各个主机最近一次故障持续时间gzcxi、各个主机最近一次故障到当前的间隔时间gzjgi、各个主机上一次完成任务所释放的中央处理器数量sfcpui、各个主机上一次完成任务所释放的内存容量sfnci、各个主机上一次完成任务所释放的外存容量sfwci;
所述主机负载评估单元用于评估各主机负载,并将计算出的变量值发送给所述主机优先度评估单元:
a1、设定各主机剩余计算资源总充裕度为cydi:
计算cydi=cpucyi×wccyi×nccyi得到各主机剩余计算资源总充裕度cydi;
a2、设定各个主机的任务综合执行率为zhxhi:
计算
a3、设定近期任务空闲影响效应的各个主机的任务综合执行率为kdxhi:
计算
a4、设定等效未来预期执行率为dxzxi:
计算
所述主机优先度评估单元用于评估各主机承接任务优先度,并将计算出的变量值发送给所述批量任务分配策略生成单元:
设定各个主机接收任务的优先度为yxdi:
计算
所述批量任务分配策略生成单元用于生成批量任务分配方案,并将计算出的变量值发送给所述批量任务分配执行模块:
b1、qj为集合组,0<j≤xdsl:
计算qj={x|0<x≤n,sycpux≥xqcpui,syncx≥xqnci,sywcx≥xqwci}得到第一个集合组qj;
b2、fpi为标记变量,0<i≤n;fpi初始值设为0;
从批量到达任务中的第一个开始往后,计算该任务对应的目标主机标记量mbj:
所述批量任务分配执行模块用于执行批量任务分配:
当将该任务对应的目标主机标记量mbj=0,则将任务拒绝并退回提交任务的用户;当将该任务对应的目标主机标记量mbj>0,则将该任务对应的目标主机标记量mbj分配给第mbj号主机执行。
较佳的,计算
较佳的,所述pdij为取值为0或1的二维变量组;0<i≤n;0<j≤xdsl;
本发明还要解决的技术问题是提供一种对云数据中心批量到达任务进行合理分配系统
为实现上述目的,本发明提供了一种云数据中心批量到达任务分配系统,包括云数据中心的服务器,所述服务器内设置有云数据中心批量到达任务分配装置,所述云数据中心批量到达任务分配装置包括主机负载监测模块、“任务-主机”匹配模块和批量任务分配执行模块;所述主机负载监测模块包含主机负载获取单元;所述“任务-主机”匹配模块由主机负载评估单元、主机优先度评估单元、批量任务分配策略生成单元组成;所述主机负载获取单元的第一输出端连接所述主机负载评估单元的输入端,所述主机负载获取单元的第二输出端连接所述主机优先度评估单元第一输入端,所述主机负载获取单元的第三输出端连接所述批量任务分配策略生成单元第一输入端,所述主机负载评估单元的输出端连接所述主机优先度评估单元第二输入端,所述主机优先度评估单元输出端连接所述批量任务分配策略生成单元的第二输入端,所述批量任务分配策略生成单元的输出端连接所述批量任务分配执行模块输入端;
所述主机负载获取单元用于获取数据中心各主机当前状态,并发送给所述主机负载评估单元、主机优先度评估单元、批量任务分配策略生成单元:
获取云数据中心新到达任务的数量xdsl、每个新到任务对中央处理数量的要求xqcpuj、每个新到任务对内存容量的要求xqncj、每个新到任务对外存容量的要求xqwcj、云数据中心中各个主机当前剩余可用的中央处理器数量sycpui、云数据中心中各个主机当前剩余可用内存容量synci、云数据中心中各个主机当前剩余可用外存容量sywci、各个主机上一次完成的任务所消耗的时间rwxhi、各个主机上一次完成任务到当前的间隔时间wcjgi、各个主机最近一次故障持续时间gzcxi、各个主机最近一次故障到当前的间隔时间gzjgi、各个主机上一次完成任务所释放的中央处理器数量sfcpui、各个主机上一次完成任务所释放的内存容量sfnci、各个主机上一次完成任务所释放的外存容量sfwci;
所述主机负载评估单元(201)用于评估各主机负载,并将计算出的变量值发送给所述主机优先度评估单元(202):
a1、设定各主机剩余计算资源总充裕度为cydi:
计算cydi=cpucyi×wccyi×nccyi得到各主机剩余计算资源总充裕度cydi;
a2、设定各个主机的任务综合执行率为zhxhi:
计算
a3、设定近期任务空闲影响效应的各个主机的任务综合执行率为kdxhi:
计算
a4、设定等效未来预期执行率为dxzxi:
计算
所述主机优先度评估单元(202)用于评估各主机承接任务优先度,并将计算出的变量值发送给所述批量任务分配策略生成单元(203):
设定各个主机接收任务的优先度为yxdi:
计算
所述批量任务分配策略生成单元(203)用于生成批量任务分配方案,并将计算出的变量值发送给所述批量任务分配执行模块(3):
b1、qj为集合组,0<j≤xdsl:
计算qj={x|0<x≤n,sycpux≥xqcpui,syncx≥xqnci,sywcx≥xqwci}得到第一个集合组qj;
b2、fpi为标记变量,0<i≤n;fpi初始值设为0;
从批量到达任务中的第一个开始往后,计算该任务对应的目标主机标记量mbj:
所述批量任务分配执行模块(3)用于执行批量任务分配:
当将该任务对应的目标主机标记量mbj=0,则将任务拒绝并退回提交任务的用户;当将该任务对应的目标主机标记量mbj>0,则将该任务对应的目标主机标记量mbj分配给第mbj号主机执行。
较佳的,计算
较佳的,所述pdij为取值为0或1的二维变量组;0<i≤n;0<j≤xdsl;
本发明的有益效果是:本发明充分考虑了云数据中心运行状态的动态波动性,针对各个主机的当前任务余量和任务负载实时的变化情况,对批量到达任务进行合理的评估、排序和任务分配,实现动态的负载均衡,避免任务拥塞和负载热点的形成。
附图说明
图1是本发明一具体实施方式的流程示意图。
图2是本发明另一具体实施方式的结构示意框图。
图3是本发明另一具体实施方式的结构示意框图。
具体实施方式
下面结合附图和实施例对本发明作进一步说明:
如图1所示,一种云数据中心批量到达任务分配方法,按以下步骤进行:
步骤一、监测云数据中心各主机当前状态:
设定云数据中心中的主机数量为n,0<i≤n,n>0;
获取云数据中心新到达任务的数量xdsl、每个新到任务对中央处理数量的要求xqcpuj、每个新到任务对内存容量的要求xqncj、每个新到任务对外存容量的要求xqwcj、云数据中心中各个主机当前剩余可用的中央处理器数量sycpui、云数据中心中各个主机当前剩余可用内存容量synci、云数据中心中各个主机当前剩余可用外存容量sywci、各个主机上一次完成的任务所消耗的时间rwxhi、各个主机上一次完成任务到当前的间隔时间wcjgi、各个主机最近一次故障持续时间gzcxi、各个主机最近一次故障到当前的间隔时间gzjgi、各个主机上一次完成任务所释放的中央处理器数量sfcpui、各个主机上一次完成任务所释放的内存容量sfnci、各个主机上一次完成任务所释放的外存容量sfwci;
步骤二、对各主机负载进行评估:
a1、设定各主机剩余计算资源总充裕度为cydi:
计算cydi=cpucyi×wccyi×nccyi得到各主机剩余计算资源总充裕度cydi;
以上方案,第i个主机的资源总充裕度,由剩余处理器、剩余外存、剩余内存的阶梯化的资源充裕度共同决定。如果剩余处理器、剩余外存、剩余内存中只要有一种资源的剩余量未超过n个主机的平均剩余量,则阶梯化的资源充裕度计算为0。
a2、设定各个主机的任务综合执行率为zhxhi:
计算
以上方案,各个主机上一次完成的任务所消耗的时间rwxhi一定不为0,因此不存在除数为零的情况。
a3、设定近期任务空闲影响效应的各个主机的任务综合执行率为kdxhi:
计算
以上方案,考虑上一次任务完成后的主机空闲时间,空闲时间越长则系统性能损耗的修复越充分,未来预期的任务执行率越高。
a4、设定考虑故障效应的等效未来预期执行率为dxzxi:
计算
步骤三、对各主机承接任务优先度进行评估:
设定各个主机接收任务的优先度为yxdi:
计算
以上方案,主机的优先度由剩余计算资源充裕度和等效未来预期执行率的乘积决定,同时受到最近任务完成间隔时间和最近故障间隔时间的影响,而最近故障间隔时间与优先度负相关,最近任务完成间隔时间与优先度正相关。
步骤四、生成批量任务分配方案:
b1、qj为集合组,0<j≤xdsl:
计算qj={x|0<x≤n,sycpux≥xqcpui,syncx≥xqnci,sywcx≥xqwci}得到第一个集合组qj;
b2、fpi为标记变量,0<i≤n;fpi初始值设为0;
从批量到达任务中的第一个开始往后,计算该任务对应的目标主机标记量mbj:
以上方案,如果没有一个主机的剩余资源能满足任务的需求,则其对应的目标主机标记量计算为0;如果有至少一个主机的剩余资源满足任务的需求,则将具有最大优先度的主机视为目标主机。同时,上述机制保证不同的任务不会被分配到同一个主机上,以确保负载均衡。
步骤五、执行批量任务分配:
当将该任务对应的目标主机标记量mbj=0,则将任务拒绝并退回提交任务的用户;当将该任务对应的目标主机标记量mbj>0,则将该任务对应的目标主机标记量mbj分配给第mbj号主机执行。
然后,再返回执行步骤一检测云数据中心各主机当前状态。
本实施例中吗,计算
本实施例中,所述pdij为取值为0或1的二维变量组;0<i≤n;0<j≤xdsl;
如图2所示,一种云数据中心批量到达任务分配装置,包括主机负载监测模块1、“任务-主机”匹配模块2和批量任务分配执行模块3;所述主机负载监测模块1包含主机负载获取单元101;所述“任务-主机”匹配模块2由主机负载评估单元201、主机优先度评估单元202、批量任务分配策略生成单元203组成;所述主机负载获取单元101的第一输出端连接所述主机负载评估单元201的输入端,所述主机负载获取单元101的第二输出端连接所述主机优先度评估单元202第一输入端,所述主机负载获取单元101的第三输出端连接所述批量任务分配策略生成单元203第一输入端,所述主机负载评估单元201的输出端连接所述主机优先度评估单元202第二输入端,所述主机优先度评估单元202输出端连接所述批量任务分配策略生成单元203的第二输入端,所述批量任务分配策略生成单元203的输出端连接所述批量任务分配执行模块3输入端;
所述主机负载获取单元101用于获取数据中心各主机当前状态,并发送给所述主机负载评估单元201、主机优先度评估单元202、批量任务分配策略生成单元203:
获取云数据中心新到达任务的数量xdsl、每个新到任务对中央处理数量的要求xqcpuj、每个新到任务对内存容量的要求xqncj、每个新到任务对外存容量的要求xqwcj、云数据中心中各个主机当前剩余可用的中央处理器数量sycpui、云数据中心中各个主机当前剩余可用内存容量synci、云数据中心中各个主机当前剩余可用外存容量sywci、各个主机上一次完成的任务所消耗的时间rwxhi、各个主机上一次完成任务到当前的间隔时间wcjgi、各个主机最近一次故障持续时间gzcxi、各个主机最近一次故障到当前的间隔时间gzjgi、各个主机上一次完成任务所释放的中央处理器数量sfcpui、各个主机上一次完成任务所释放的内存容量sfnci、各个主机上一次完成任务所释放的外存容量sfwci;
所述主机负载评估单元201用于评估各主机负载,并将计算出的变量值发送给所述主机优先度评估单元202:
a1、设定各主机剩余计算资源总充裕度为cydi:
计算cydi=cpucyi×wccyi×nccyi得到各主机剩余计算资源总充裕度cydi;
a2、设定各个主机的任务综合执行率为zhxhi:
计算
a3、设定近期任务空闲影响效应的各个主机的任务综合执行率为kdxhi:
计算
a4、设定考虑故障效应的等效未来预期执行率为dxzxi:
计算
所述主机优先度评估单元(202)用于评估各主机承接任务优先度,并将计算出的变量值发送给所述批量任务分配策略生成单元(203):
设定各个主机接收任务的优先度为yxdi:
计算
所述批量任务分配策略生成单元203用于生成批量任务分配方案,并将计算出的变量值发送给所述批量任务分配执行模块3:
b1、qj为集合组,0<j≤xdsl:
计算qj={x|0<x≤n,sycpux≥xqcpui,syncx≥xqnci,sywcx≥xqwci}得到第一个集合组qj;
b2、fpi为标记变量,0<i≤n;fpi初始值设为0;
从批量到达任务中的第一个开始往后,计算该任务对应的目标主机标记量mbj:
所述批量任务分配执行模块3用于执行批量任务分配:
当将该任务对应的目标主机标记量mbj=0,则将任务拒绝并退回提交任务的用户;当将该任务对应的目标主机标记量mbj>0,则将该任务对应的目标主机标记量mbj分配给第mbj号主机执行。
本实施例中,计算
本实施例中,所述pdij为取值为0或1的二维变量组;0<i≤n;0<j≤xdsl;
如图3所示,一种云数据中心批量到达任务分配系统,包括云数据中心的服务器4,所述服务器4内设置有云数据中心批量到达任务分配装置5,所述云数据中心批量到达任务分配装置5包括主机负载监测模块1、“任务-主机”匹配模块2和批量任务分配执行模块3;所述主机负载监测模块1包含主机负载获取单元101;所述“任务-主机”匹配模块2由主机负载评估单元201、主机优先度评估单元202、批量任务分配策略生成单元203组成;所述主机负载获取单元101的第一输出端连接所述主机负载评估单元201的输入端,所述主机负载获取单元101的第二输出端连接所述主机优先度评估单元202第一输入端,所述主机负载获取单元101的第三输出端连接所述批量任务分配策略生成单元203第一输入端,所述主机负载评估单元201的输出端连接所述主机优先度评估单元202第二输入端,所述主机优先度评估单元202输出端连接所述批量任务分配策略生成单元203的第二输入端,所述批量任务分配策略生成单元203的输出端连接所述批量任务分配执行模块3输入端;
所述主机负载获取单元101用于获取数据中心各主机当前状态,并发送给所述主机负载评估单元201、主机优先度评估单元202、批量任务分配策略生成单元203:
获取云数据中心新到达任务的数量xdsl、每个新到任务对中央处理数量的要求xqcpuj、每个新到任务对内存容量的要求xqncj、每个新到任务对外存容量的要求xqwcj、云数据中心中各个主机当前剩余可用的中央处理器数量sycpui、云数据中心中各个主机当前剩余可用内存容量synci、云数据中心中各个主机当前剩余可用外存容量sywci、各个主机上一次完成的任务所消耗的时间rwxhi、各个主机上一次完成任务到当前的间隔时间wcjgi、各个主机最近一次故障持续时间gzcxi、各个主机最近一次故障到当前的间隔时间gzjgi、各个主机上一次完成任务所释放的中央处理器数量sfcpui、各个主机上一次完成任务所释放的内存容量sfnci、各个主机上一次完成任务所释放的外存容量sfwci;
所述主机负载评估单元201用于评估各主机负载,并将计算出的变量值发送给所述主机优先度评估单元202:
a1、设定各主机剩余计算资源总充裕度为cydi:
计算cydi=cpucyi×wccyi×nccyi得到各主机剩余计算资源总充裕度cydi;
a2、设定各个主机的任务综合执行率为zhxhi:
计算
a3、设定近期任务空闲影响效应的各个主机的任务综合执行率为kdxhi:
计算
a4、设定考虑故障效应的等效未来预期执行率为dxzxi:
计算
所述主机优先度评估单元202用于评估各主机承接任务优先度,并将计算出的变量值发送给所述批量任务分配策略生成单元203:
设定各个主机接收任务的优先度为yxdi:
计算
所述批量任务分配策略生成单元203用于生成批量任务分配方案,并将计算出的变量值发送给所述批量任务分配执行模块3:
b1、qj为集合组,0<j≤xdsl:
计算qj={x|0<x≤n,sycpux≥xqcpui,syncx≥xqnci,sywcx≥xqwci}得到第一个集合组qj;
b2、fpi为标记变量,0<i≤n;fpi初始值设为0;
从批量到达任务中的第一个开始往后,计算该任务对应的目标主机标记量mbj:
所述批量任务分配执行模块3用于执行批量任务分配:
当将该任务对应的目标主机标记量mbj=0,则将任务拒绝并退回提交任务的用户;当将该任务对应的目标主机标记量mbj>0,则将该任务对应的目标主机标记量mbj分配给第mbj号主机执行。
本实施例中计算
本实施例中所述pdij为取值为0或1的二维变量组;0<i≤n;0<j≤xdsl;
以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术人员无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。