本公开涉及云计算技术领域,特别是涉及基于价格预测的云计算服务资源动态调度方法及系统。
背景技术:
本部分的陈述仅仅是提到了与本公开相关的背景技术,并不必然构成现有技术。
随着计算机技术的发展,计算也成为了一个服务向普通大众提供,人们只需要支付相应的费用而不同自己花费成本去部署基础计算设施就能获取相应的计算资源。如今,大多数云厂商通过基于计算和存储虚拟化的技术对外提供云服务,用户通过购买云服务,可以在任何地点按需地访问自己所需要的服务,大大节省了成本,并且提高了可靠性和便利性。国内也有一些云服务厂商,为用户提供可以根据自己的计算需求购买不同规格的计算服务,这种用户购买的有一定计算和存储能力的服务称为一个实例。用户可以根据自己的需求按需地增加和减少实例,避免不必要的浪费。
由于购买硬件资源的成本过高,当今越来越多的企业和个人开始投入购买使用iaas(infrastructureasaservice,基础设施即服务)云计算服务,公有云市场的增长日趋迅速。iaas是指把it基础设施作为一种服务通过网络对外提供。在这种服务模型中,用户不用自己构建一个数据中心,而是通过租用的方式来使用基础设施服务,包括服务器、存储和网络等。在使用模式上,iaas与传统的主机托管有相似之处,但是在服务的灵活性、扩展性和成本等方面iaas具有很强的优势。
目前,亚马逊云、阿里云等国内外的工业云服务提供厂商提供了多种iaas云服务的定价策略。以阿里云为例,其提供了三种付费方式,分别为包年包月付费、按量付费、以及按照竞价方式定价的抢占式付费。对于这种竞价型付费的实例,其价格相对于按量付费实例有一定的折扣,并且随着供求波动。用户在使用竞价型实例时,需要预先给出自己使用该实例能够承受的价格上限,云服务提供商会根据市场的供需情况实时调整实例价格。当用户给出的价格高于云服务提供商的实时定价时,系统会自动将该实例分配给用户使用;当用户给出的价格低于云服务提供商的实时定价时,系统会自动回收实例,并销毁实例中的用户数据。
在实现本公开的过程中,发明人发现现有技术中存在以下技术问题:
对于竞价型付费的实例,价格随市场随机波动,价格极低,但是存在竞标失败的引起的虚拟机失效的风险。
对于竞价型付费的实例,如果用户租赁资源少,会导致响应时间较长,长时间内价格波动不受控,系统性能下降;如果用户租赁资源多,会导致虚拟机资源浪费,租赁成本偏高;
对于竞价型付费的实例,当竞价实例的价格变化到高于用户的竞价的时候,用户将会被强制中断自己的实例,这种情况下,某云服务平台会给用户n分钟的警告时间,用户必须在这段时间内保存自己的实例或者将自己的数据进行迁移。
技术实现要素:
为了解决现有技术的不足,本公开提供了基于价格预测的云计算服务资源动态调度方法及系统;
第一方面,本公开提供了基于价格预测的云计算服务资源动态调度方法;
基于价格预测的云计算服务资源动态调度方法,包括:
实时提取多个云服务平台上的各种规格的竞价型实例数据;
使用所提取的竞价型实例数据训练回归预测模型,回归预测模型实时输出当前已租用竞价实例下一时刻的预测价格;
实时采集已租用竞价型实例的实际运行情况;
在已租用竞价型实例计费节点到达前,结合当前已租用竞价实例下一时刻的预测价格、当前已租用竞价实例实际运行情况和当前时刻的租赁情况,输出下一时刻云计算服务的租赁方案:
对下一时刻需要新增的实例进行提前租赁;
将需要删除的实例资源添加到删除列表中,在计费节点到达前进行删除;
将需要转移的实例资源添加到转移列表中,在计费节点到达前进行转移;
根据用户选择的租赁方案,对云计算服务资源进行动态调度。
所述方法,还包括:对于用户新提交和已提交的任务,根据当前所租用的实例的负载情况进行任务分配与调度。
第二方面,本公开还提供了基于价格预测的云计算服务资源动态调度系统;
基于价格预测的云计算服务资源动态调度系统,包括:
提取模块,其被配置为:实时提取多个云服务平台上的各种规格的竞价型实例数据;
预测模块,其被配置为:使用所提取的竞价型实例数据训练回归预测模型,回归预测模型实时输出当前已租用竞价实例下一时刻的预测价格;
采集模块,其被配置为:实时采集已租用竞价型实例的实际运行情况;
输出模块,其被配置为:在已租用竞价型实例计费节点到达前,结合当前已租用竞价实例下一时刻的预测价格、当前已租用竞价实例实际运行情况和当前时刻的租赁情况,输出下一时刻云计算服务的租赁方案:
对下一时刻需要新增的实例进行提前租赁;
将需要删除的实例资源添加到删除列表中,在计费节点到达前进行删除;
将需要转移的实例资源添加到转移列表中,在计费节点到达前进行转移;
调度模块,其被配置为:根据用户选择的租赁方案,对云计算服务资源进行动态调度。
所述系统,还包括:资源分配模块,其被配置为:对于用户新提交和已提交的任务,根据当前所租用的实例的负载情况进行任务分配与调度。
第三方面,本公开还提供了一种电子设备,包括存储器和处理器以及存储在存储器上并在处理器上运行的计算机指令,所述计算机指令被处理器运行时,完成第一方面所述方法的步骤。
第四方面,本公开还提供了一种计算机可读存储介质,用于存储计算机指令,所述计算机指令被处理器执行时,完成第一方面所述方法的步骤。
与现有技术相比,本公开的有益效果是:
对于竞价型付费的实例,通过结合竞价实例的预测价格、当前竞价实例实际运行情况和当前时刻的租赁情况,对下一时刻需要新增的实例进行提前租赁,可以有效缓解竞标失败的引起的虚拟机失效的风险;
对于竞价型付费的实例,通过结合竞价实例的预测价格、当前竞价实例实际运行情况和当前时刻的租赁情况,对下一时刻需要新增的实例进行提前租赁,可以让用户更加合理的根据实例的实际需求动态调度云服务的租赁,提升用户的使用体验,降低用户的租赁成本。
对于竞价型付费的实例,通过结合竞价实例的预测价格、当前竞价实例实际运行情况和当前时刻的租赁情况,将需要删除的实例资源添加到删除列表中,在计费节点到达前进行删除;将需要转移的示例资源添加到转移列表中,在计费节点到达前进行转移,可以提升用户体验,避免用户在计费节点到达之前的时间受限,来不及保存或转移而导致数据资源丢失。
调用回归预测模型,预测竞价型实例的价格,可以帮助用户提前对云计算服务资源的动态调度。
附图说明
构成本申请的一部分的说明书附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。
图1为第一个实施例的方法流程图。
具体实施方式
应该指出,以下详细说明都是示例性的,旨在对本申请提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本申请所属技术领域的普通技术人员通常理解的相同含义。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
实施例一,本实施例提供了基于价格预测的云计算服务资源动态调度方法;
如图1所示,基于价格预测的云计算服务资源动态调度方法,包括:
实时提取多个云服务平台上的各种规格的竞价型实例数据;
使用所提取的竞价型实例数据训练回归预测模型,回归预测模型实时输出当前已租用竞价实例下一时刻的预测价格;
实时采集已租用竞价型实例的实际运行情况;
在已租用竞价型实例计费节点到达前,结合当前已租用竞价实例下一时刻的预测价格、当前已租用竞价实例实际运行情况和当前时刻的租赁情况,输出下一时刻云计算服务的租赁方案:
对下一时刻需要新增的实例进行提前租赁;
将需要删除的实例资源添加到删除列表中,在计费节点到达前进行删除;
将需要转移的实例资源添加到转移列表中,在计费节点到达前进行转移;
根据用户选择的租赁方案,对云计算服务资源进行动态调度。
作为一个或多个实施例,所述方法,还包括:对于用户新提交和已提交的任务,根据当前所租用的实例的负载情况进行任务分配与调度。
作为一个或多个实施例,所述实时提取多个云服务平台上的各种规格的竞价型实例数据,是指通过爬虫程序或云服务平台所提供的api,获取各种规格的竞价型实例的价格,将其保存到本地数据库中;所述竞价型实例的规格,包括:竞价型实例种类、竞价型实例所属地区以及竞价型实例所载操作系统。
作为一个或多个实施例,所述使用所提取的竞价型实例数据训练回归预测模型,包括:
使用有放回地抽样方式,从所提取的竞价型实例中随机选择n个样本作为训练样本;每条竞价型实例被看作一条数据,而竞价型实例的规格包括实例种类、实例所属地区和实例所载操作系统,所述竞价实例的规格被看作数据的属性;
使用随机选择出来的n个训练样本,训练knn(k-nearestneighbor)模型;
对随机选择出来的n个训练样本,从每个训练样本的数据属性中随机选择m个,用于训练cart回归树的特征属性;
将训练好的knn模型和cart回归树并列连接组成一棵条件树;
随机选择训练样本,随机选择数据属性,训练条件树的过程重复p次,得到p棵条件树。
作为一个或多个实施例,所述回归预测模型实时输出当前已租用竞价实例下一时刻的预测价格;具体步骤包括:
对于待预测的竞价型实例,利用p棵条件树分别对其价格进行预测,将p棵条件树的预测结果的加权平均值作为最终预测结果。
作为一个或多个实施例,所述回归预测模型实时输出当前已租用竞价实例下一时刻的预测价格;具体步骤包括:
对于待预测的竞价型实例,判断其规格是否在当前条件树的训练样本中出现过:
若判定待预测的竞价型实例规格在训练数据中出现过,则使用条件树中的knn子树预测其价格;
若判定待预测的竞价型实例规格没有在训练数据中出现过,则使用条件树中的cart子树预测其价格。
作为一个或多个实施例,所述使用条件树中的knn子树预测其价格;具体步骤包括:
根据竞价型实例的规格,将同一种规格的竞价型实例归为一类,每一类按照实例价格刷新时间排序;
对于需要预测的竞价型实例的规格,选择距离当前时间最近的k个相同规格的竞价型实例,取这些k个相同规格的竞价型实例价格的加权平均值作为预测的价格。
作为一个或多个实施例,所述实时采集已租用竞价型实例的实际运行情况,具体为:通过云服务提供商提供的api或shell脚本的方式实时获取已租用实例的cpu使用情况,并将其写入数据库。
在使用随机森林进行回归预测时,由于用于训练样本的数据量较大,训练数据中属性较少,因此构建每棵决策树时用于划分的特征就很少,会导致数据在未达到稳定状态之前已经没有可以选择的特征用于划分了。此时节点的输出结果可能不准确。这里采用knn的思想对原随机森林的回归过程做了一个改进:对于在训练样本中出现过的实例规格,使用近邻的思想对价格进行预测,但是对于在训练数据集中未出现的实例规格,近邻的方法不能得到良好的结果;反而随机森林在这种情况下可以得到较好的结果。这样对于单个数据集形成knn和决策树两种结果,彼此形成互补,就能够同时避免knn算法缺陷和决策树算法缺陷,对于预测的效果有较明显的提高。
作为一个或多个实施例,所述结合当前已租用竞价实例下一时刻的预测价格、当前已租用竞价实例实际运行情况和当前时刻的租赁情况,输出下一时刻云计算服务的租赁方案;具体步骤包括:
对于即将到达计费节点的一个或多个已租用实例,根据当前租赁期中执行过的任务所需要的cpu核数及运行时间最大值计算负载r,所述租赁期是指从上一个计费节点到即将达到的计费节点之间的间隔;
在竞价型实例列表中,遍历不同的实例规格进行组合,将满足负载r的组合作为候选租赁方案放入候选集c中;
调用回归预测模型,预测候选集c中的各种租赁方案的价格;
从候选集c中选择价格最低的租赁方案进行输出,供用户选择;
如果当前竞价实例实际运行结束,则将需要删除的实例资源添加到删除列表中,在计费节点到达前进行删除;
如果当前竞价实例实际运行结束,将需要转移的实例资源添加到转移列表中,在计费节点到达前进行转移。
作为一个或多个实施例,所述对于用户新提交和已提交的任务,根据当前所租用的实例的负载情况进行任务分配与调度,具体步骤如下:
对于用户新提交的任务,根据所采集的各个竞价型实例的负载情况,将任务分配到负载最低的竞价型实例;
若多个实例负载相同且负载一样,将任务随机分配到其中的一个实例;
若当前租用的实例无法满足负载要求,则临时租用一个或多个按需实例承担多余负载,按需实例用完即销毁;
对于在已租用实例中运行的已提交任务,每当一个任务运行完毕时,执行装箱算法将未完成任务在各个竞价型实例之间进行调度,以使单个竞价型实例的资源利用率最高;
在保证用户规定的最小实例数量的前提下,释放调度完之后无任务运行的竞价型实例。
按需实例是指按需计费的实例。按需计费是指按每个实例从启动到终止或停止使用的时间计算总费用,用户需要支付的费用总额为:购买实例数量*使用时间*实例单价。
对于一个或多个实施例,所述执行装箱算法将未完成任务在各个竞价型实例之间进行调度,是指:
将实例中运行的任务看作物品,任务所需的计算资源看作物品的大小,所租用的计算资源固定的实例看作容量固定的箱子,将不同大小的物品在箱子之间进行调度,以使得最终使用的箱子数量最少。
实施例二,本实施例还提供了云计算服务资源动态调度系统;
基于价格预测的云计算服务资源动态调度系统,包括:
提取模块,其被配置为:实时提取多个云服务平台上的各种规格的竞价型实例数据;
预测模块,其被配置为:使用所提取的竞价型实例数据训练回归预测模型,回归预测模型实时输出当前已租用竞价实例下一时刻的预测价格;
采集模块,其被配置为:实时采集已租用竞价型实例的实际运行情况;
输出模块,其被配置为:在已租用竞价型实例计费节点到达前,结合当前已租用竞价实例下一时刻的预测价格、当前已租用竞价实例实际运行情况和当前时刻的租赁情况,输出下一时刻云计算服务的租赁方案:
对下一时刻需要新增的实例进行提前租赁;
将需要删除的实例资源添加到删除列表中,在计费节点到达前进行删除;
将需要转移的实例资源添加到转移列表中,在计费节点到达前进行转移;
调度模块,其被配置为:根据用户选择的租赁方案,对云计算服务资源进行动态调度。
所述系统,还包括:资源分配模块,其被配置为:对于用户新提交和已提交的任务,根据当前所租用的实例的负载情况进行任务分配与调度。
本公开还提供了一种电子设备,包括存储器和处理器以及存储在存储器上并在处理器上运行的计算机指令,所述计算机指令被处理器运行时,完成方法中的各个操作,为了简洁,在此不再赘述。
所述电子设备可以是移动终端以及非移动终端,非移动终端包括台式计算机,移动终端包括智能手机(smartphone,如android手机、ios手机等)、智能眼镜、智能手表、智能手环、平板电脑、笔记本电脑、个人数字助理等可以进行无线通信的移动互联网设备。
应理解,在本公开中,该处理器可以是中央处理单元cpu,该处理器还算可以是其他通用处理器、数字信号处理器dsp、专用集成电路asic,现成可编程门阵列fpga或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
该存储器可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据、存储器的一部分还可以包括非易失性随机存储器。例如,存储器还可以存储设备类型的信息。
在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。结合本公开所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器、闪存、只读存储器、可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元即算法步骤,能够以电子硬件或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其他的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能的划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外一点,所显示或讨论的相互之间的耦合或者直接耦合或者通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性、机械或其它的形式。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。