基于云主机为订单分配资源的方法和装置的制造方法

文档序号:8942941阅读:416来源:国知局
基于云主机为订单分配资源的方法和装置的制造方法
【技术领域】
[0001]本申请涉及计算机技术领域,具体涉及云计算技术领域,尤其涉及基于云主机为订单分配资源的方法和装置。
【背景技术】
[0002]现有技术中,用户向云主机发出订单请求时,订单处理器在对订单请求中的订单内容进行解析后为订单分配资源,以执行订单。在订单执行过程中,订单处理器持续监控订单的执行状态,并及时反馈给用户。在处理大数据量的订单或资源需求较高的订单时,由于订单处理器未对不同机房中主机的资源利用情况进行主动搜集,因而常常会出现云主机资源分配无法满足订单需求的问题。由此导致在长时间等待后用户请求的订单处理失败,影响了订单处理的成功率。因此,需要提升订单处理中的资源利用效率,从而提升订单处理的成功率。

【发明内容】

[0003]有鉴于此,本申请提供了基于云主机为订单分配资源的方法和装置。
[0004]—方面,本申请提供了一种基于云主机为订单分配资源的方法,包括:接收订单请求,订单请求包括订单需求的资源量;获取云主机的空闲资源总量,空闲资源总量包括空闲CHJ数量和空闲内存总量;估算云主机的待执行订单队列所需求的资源量;基于云主机的空闲资源总量、云主机的待执行订单队列所需求的资源量以及订单请求中的订单需求的资源量确定是否允许执行订单请求中的订单;如果是,则将订单请求中的订单添加至待执行订单队列;为待执行订单队列中的订单分配资源。
[0005]另一方面,本申请提供了一种基于云主机为订单分配资源的装置,包括:接收单元,用于接收订单请求,订单请求包括订单需求的资源量;获取单元,用于获取云主机的空闲资源总量,空闲资源总量包括空闲CPU数量和空闲内存总量;估算单元,用于估算云主机的待执行订单队列所需求的资源量;判断单元,用于基于云主机的空闲资源总量、云主机的待执行订单队列所需求的资源量以及订单请求中的订单需求的资源量确定是否允许执行订单请求中的订单;添加单元,用于响应于允许执行订单请求中的订单,将订单请求中的订单添加至待执行订单队列;分配单元,用于为待执行订单队列中的订单分配资源。
[0006]本申请提供的基于云主机为订单分配资源的方法和装置,通过实时地主动收集云主机的可用资源,预测资源现状,提升了订单处理中的资源利用效率,从而提升了订单处理的成功率。
【附图说明】
[0007]通过阅读参照以下附图所作的对非限制性实施例详细描述,本申请的其它特征、目的和优点将会变得更明显:
[0008]图1是本申请基于云主机为订单分配资源的方法的一个实施例的流程图;
[0009]图2是本申请估算云主机的待执行订单队列所需求的资源量的方法的一个实施例的流程图;
[0010]图3是图1所示实施例的应用场景的示意图;
[0011]图4是本申请基于云主机为订单分配资源的方法的另一个实施例的流程图;
[0012]图5是图4所示实施例的应用场景的示意图;
[0013]图6是本申请基于云主机为订单分配资源的装置的一个实施例的结构示意图。
【具体实施方式】
[0014]下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
[0015]需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
[0016]请参考图1,其示出了基于云主机为订单分配资源的方法的一个实施例的流程100。本实施例主要以该方法应用于公有的云计算服务中来说明。在公有的云弹性计算中,多个用户共享相同的资源池,由订单处理器来对用户的订单请求分配资源。所述基于云主机为订单分配资源的方法,包括以下步骤:
[0017]步骤101,接收订单请求。
[0018]在本实施例中,用户可以通过控制台向云主机发出订单请求,云主机可以通过网络接收订单请求。一般地,订单请求可以包括订单的项目、数量、类别、金额以及时间等信息。云主机可以接收这些信息,还可以将接收到的订单请求中的信息保存在存储器中,云主机可以为订单请求分配处理器来进行订单的处理和执行。
[0019]用户发出的订单请求可以包括订单需求的资源量。订单需求的资源量可以为订单所需求的CPU (Central Processing Unit,中央处理器)数量以及内存量,例如,订单需求的资源量可以为1CPU+2G内存,即处理该订单需要占用I个CPU和2G内存的资源量。
[0020]在一些实现中,云主机可以实时地监测是否有新的订单请求,在监测到订单请求时,接收订单请求。在另一些实现中,云主机可以定时地获取订单请求,例如可以每隔10秒执行一次接收,获取10秒内所有用户的订单请求。
[0021]步骤102,获取云主机的空闲资源总量。
[0022]其中,空闲资源总量包括空闲CPU数量和空闲内存总量。在本实施例中,可以通过计算一时间段内的资源释放量,结合已有的空闲资源量,来获取云主机空闲资源总量。在实际应用环境中,云主机可以提供的虚拟机的规格是确定的,例如虚拟机的规格可以为1CPU+1G内存、1CPU+2G内存、2CPU+4G内存、4CPU+8G内存等等。云主机的空闲资源总量可以用云主机所能创建的虚拟机数量来表示。举例而言,如果云主机的空闲资源可以提供10个2CPU+2G内存的虚拟机和5个4CPU+8G内存的虚拟机,则云主机的空闲资源至少为40CPU+60G 内存。
[0023]在一些可选的实现方式中,可以分别获取云主机的每一个机房节点的空闲资源量,来确定云主机的空闲资源总量。具体地,可以收集与云主机关联的各独立主机的空闲CPU数量以及空闲内存量,作为云主机的空闲资源总量。其中,与云主机关联的各独立主机可以为提供云主机的公有云服务的不同机房中的各物理机。可选地,云主机可以通过Resource Agent (资源代理)来收集空闲CPU数量和空闲内存量。具体地,Resource Agent可以通过安装在各物理机上的代理进程对各物理机的CPU和内存量进行估算。各物理机通过代理进程将自身的空闲资源量反馈给Resource Agent,则可以获取云主机的空闲资源总量。
[0024]可选地,可以以预定周期收集不同机房反馈的资源余量,并进行记录。进一步地,在获取云主机的空闲CPU数量和空闲内存量之后,可以计算当前空闲的CPU数量和内存量所能创建的虚拟机的规格和对应的数量,作为云主机的空闲资源总量。
[0025]需要说明的是,不同机房的空闲资源量也可以用其所能创建的虚拟机数量来表示。例如,某一机房的空闲资源量为10CPU+40G内存,则该机房的空闲资源量还可以表示为10个1CPU+4G内存的虚拟机。将所有为云主机提供资源的机房所能创建的虚拟机数量和规格进行统计,则可以得到云主机的空闲资源总量。
[0026]步骤103,估算云主机的待执行订单队列所需求的资源量。
[0027]订单处理器在接收到订单请求后,可以将允许执行的订单保存在云主机的待执行订单队列中,之后为待执行订单队列中的订单分配资源。在接收到新的订单时,订单处理器可以对待执行订单队列所需求的资源量进行估算,确定云主机是否可以为新的订单请求中的订单分配资源。
[0028]具体地,可以按照如下方式快速地估算云主机的待执行订单队列所需求的资源量:首先获取待执行订单队列中的订单数量,然后确定待执行订单队列中资源需求量最大的订单,之后将资源需求量最大的订单所需求的资源乘以待执行订单队列中的订单数量,即可获取待执行订单队列所需求的资源量的大致估计。
[0029]在一些实施例中,还可以通过其他方式估算待执行订
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1