CN108572871B - 一种资源分配方法、装置、电子设备及存储介质 - Google Patents

一种资源分配方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN108572871B
CN108572871B CN201711326791.7A CN201711326791A CN108572871B CN 108572871 B CN108572871 B CN 108572871B CN 201711326791 A CN201711326791 A CN 201711326791A CN 108572871 B CN108572871 B CN 108572871B
Authority
CN
China
Prior art keywords
resource
linked list
target
resources
physical machine
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201711326791.7A
Other languages
English (en)
Other versions
CN108572871A (zh
Inventor
眭聚磊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Kingsoft Cloud Network Technology Co Ltd
Beijing Kingsoft Cloud Technology Co Ltd
Original Assignee
Beijing Kingsoft Cloud Network Technology Co Ltd
Beijing Kingsoft Cloud Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Kingsoft Cloud Network Technology Co Ltd, Beijing Kingsoft Cloud Technology Co Ltd filed Critical Beijing Kingsoft Cloud Network Technology Co Ltd
Priority to CN201711326791.7A priority Critical patent/CN108572871B/zh
Publication of CN108572871A publication Critical patent/CN108572871A/zh
Application granted granted Critical
Publication of CN108572871B publication Critical patent/CN108572871B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明实施例提供了一种资源分配方法、装置、电子设备及存储介质,其中方法包括:获取请求方发送的请求消息中包括的一种或多种物理机集群资源请求;确定与每种物理机集群资源请求对应的每个目标服务器;针对每个目标服务器,在目标服务器预先建立的资源链表中,确定与目标服务器对应的每种物理机集群资源请求对应的每个目标资源链表;获取与每种物理机集群资源请求所请求的资源对应个数的目标资源;将获取的与每种物理机集群资源请求对应的每种目标资源,分配给请求方。本发明实施例实现了快速、准确的分配当前请求中的一种或多种物理机集群资源请求对应的资源。

Description

一种资源分配方法、装置、电子设备及存储介质
技术领域
本发明涉及计算机技术领域,特别是涉及一种资源分配方法、装置、电子设备及存储介质。
背景技术
在传统的电商系统中,商品表示系统出售的物品;库存表示商品总量、商品售卖量和商品可售卖量,以及资源总量、资源售卖量和资源可售卖量;资源表示承载商品的实体,库存反应的是商品的售卖情况和库存中剩余商品对应的资源存储情况,商品与库存、资源是一一对应的关系。
但在虚拟机领域中,商品表示虚拟机;库存表示虚拟机总量、虚拟机售卖量和虚拟机可售卖量,以及虚拟机的资源总量、虚拟机的资源售卖量和虚拟机的资源可售卖量;资源表示与虚拟机对应的物理机集群可售卖的资源总量、资源售卖量和资源可售卖量。其中,物理机集群表示多个属性对应的物理资源组成的资源集合。在虚拟机中各属性共享使用物理机的资源,则可以折算出各属性共享的物理机集群的资源量。例如,当前各属性包括中央处理器以及内存,则当前物理机集群为中央处理器和内存组成的资源集合,则每次可折算出所需的1核2G内存的资源量、2核4G内存的资源量、4核8G内存的资源量等。但不能同时计算出多种物理机集群资源的数量,例如,多少个1核2G内存的资源量和多少个2核4G内存的资源量和多少个4核8G内存的资源量等。
现有在虚拟机领域中资源分配方法为,获取请求消息中包括的多种物理机集群资源请求,每次在虚拟机剩余库存中计算并获取多种物理机集群需求的当前物理机集群需求对应的资源,直至在虚拟机剩余库存获取到与该多种物理机集群资源请求对应的所有物理机集群的资源量,并将对应的所有物理机集群的资源量返回给该请求方。
现有技术存在的问题为,当请求消息中包含多种物理机集群请求时,每次需要在剩余库存中计算与当前物理机集群请求对应的资源,这种重复计算的过程繁琐且浪费时间。
发明内容
本发明实施例的目的在于提供一种资源分配方法、装置、电子设备及存储介质,以实现快速、准确的分配当前请求中的一种或多种物理机集群资源请求对应的资源。具体技术方案如下:
为达到上述发明目的,本发明实施例公开了一种资源分配方法,包括:
获取请求方发送的请求消息中包括的一种或多种物理机集群资源请求;
确定与每种物理机集群资源请求对应的每个目标服务器;
针对每个所述目标服务器,在所述目标服务器预先建立的资源链表中,确定与所述目标服务器对应的每种物理机集群资源请求对应的每个目标资源链表;
在每个所述目标服务器对应的每个物理机集群资源请求对应的每种目标资源链表中,获取与所述每种物理机集群资源请求所请求的资源对应个数的目标资源;
将获取的与所述每种物理机集群资源请求对应的每种目标资源,分配给所述请求方。
可选地,在每个所述服务器中建立资源链表的过程包括:
对历史请求的每种物理机集群资源请求排序,将前N种物理机集群资源请求所请求的资源确定为所述资源链表的每种资源,所述N为大于1的自然数;
分别在每个所述服务器中建立包含所述每种资源的链表。
可选地,所述分别在每个所述服务器中建立包含所述每种资源的链表之后,所述方法还包括:
按照每个所述服务器总资源以及所述N种物理机集群资源请求所请求的资源比例,分别确定每个所述目标服务器的所述资源链表中每种资源的剩余个数。
可选地,所述在每个所述目标服务器对应的每个物理机集群资源请求对应的每种目标资源链表中,获取与所述每种物理机集群资源请求所请求的资源对应个数的目标资源,包括:
针对每个所述目标服务器,分别判断所述目标服务器对应的每种物理机集群资源请求对应的每种目标资源链表的资源,剩余个数是否满足对应的每种物理机集群资源请求所请求资源的个数;
若满足对应的每种物理机集群资源请求所请求资源的个数,则在所述目标服务器对应的每种物理机集群资源请求对应的每种目标资源链表中,获取与每种物理机集群资源请求所请求资源的个数对应个数的目标资源;
若任一目标资源链表的资源不满足对应的物理机集群资源请求所请求资源的个数,则分裂或合并所述目标资源链表所在的所述资源链表其余资源链表的资源到所述目标资源链表,并在所述目标资源链表中,获取与所述对应的物理机集群资源请求所请求的资源对应个数的目标资源。
可选地,所述分裂所述目标资源链表所在的所述资源链表其余资源链表的资源到所述目标资源链表,包括:
在所述目标资源链表所在的所述资源链表中,将剩余资源链表中数值大于所述对应的物理机集群资源请求的资源链表,依次确定为第一分裂资源链表;
将所述对应的物理机集群资源请求所请求资源的个数确定为目标资源个数;
从最小数值的所述第一分裂资源链表开始,判断是否存在第二分裂资源链表,所述第二分裂资源链表剩余个数的资源分裂到所述目标资源链表中,能够使得所述目标资源链表中当前资源个数等于或大于所述目标资源个数;
若存在所述第二分裂资源链表,将所述第二分裂资源链表中最小数值的资源链表确定为目标分裂资源链表;
分裂所述目标分裂资源链表的资源到所述目标资源链表。
可选地,所述合并所述目标资源链表所在的所述资源链表其余资源链表的资源到所述目标资源链表,包括:
在所述目标资源链表所在的所述资源链表中,将剩余资源链表中数值小于所述对应的物理机集群资源请求的资源链表,依次确定为第一合并资源链表;
将所述对应的物理机集群资源请求所请求资源的个数确定为目标资源个数;
从最大数值的所述第一合并资源链表开始,判断是否存在第二合并资源链表,所述第二合并资源链表剩余个数的资源合并到所述目标资源链表中,能够使得所述目标资源链表中当前资源个数等于或大于所述目标资源个数;
若存在所述第二合并资源链表,将所述第二合并资源链表中最大数值的资源链表确定为目标合并资源链表;
合并所述目标合并资源链表的资源到所述目标资源链表。
可选地,所述确定与每种物理机集群资源请求对应的每个目标服务器,包括:
根据所述每种物理机集群资源请求所请求的资源,分别查找与每种物理机集群资源请求对应的资源链表中剩余资源比例最大的资源链表;
在所述剩余资源比例最大的资源链表对应的每个服务器中,查找到与所述每种物理机集群资源请求对应的总资源最大的服务器,分别确定为与所述每种物理机集群资源请求对应的每个所述目标服务器。
为达到上述发明目的,本发明实施例还公开了一种基于虚拟机配置的资源分配装置,包括:
获取请求模块,用于获取请求方发送的请求消息中包括的一种或多种物理机集群资源请求;
目标服务器确定模块,用于确定与每种物理机集群资源请求对应的每个目标服务器;
目标资源链表确定模块,用于针对每个所述目标服务器,在所述目标服务器预先建立的资源链表中,确定与所述目标服务器对应的每种物理机集群资源请求对应的每个目标资源链表;
目标资源获取模块,用于在每个所述目标服务器对应的每个物理机集群资源请求对应的每种目标资源链表中,获取与所述每种物理机集群资源请求所请求的资源对应个数的目标资源;
目标资源分配模块,用于将获取的与所述每种物理机集群资源请求对应的每种目标资源,分配给所述请求方。
可选地,所述装置还包括:
资源确定模块,用于对历史请求的每种物理机集群资源请求排序,将前N种物理机集群资源请求所请求的资源确定为所述资源链表的每种资源,所述N为大于1的自然数;
链表建立模块,用于分别在每个所述服务器中建立包含所述每种资源的链表。
可选地,所述装置还包括:
资源个数确定模块,用于按照每个所述服务器总资源以及所述N种物理机集群资源请求所请求的资源比例,分别确定每个所述目标服务器的所述资源链表中每种资源的剩余个数。
可选地,所述目标资源获取模块,包括:
资源个数判断子模块,用于针对每个所述目标服务器,分别判断所述目标服务器对应的每种物理机集群资源请求对应的每种目标资源链表的资源,剩余个数是否满足对应的每种物理机集群资源请求所请求资源的个数;
第一目标资源获取子模块,用于若满足对应的每种物理机集群资源请求所请求资源的个数,则在所述目标服务器对应的每种物理机集群资源请求对应的每种目标资源链表中,获取与每种物理机集群资源请求所请求资源的个数对应个数的目标资源;
第二目标资源获取子模块,用于若任一目标资源链表的资源不满足对应的物理机集群资源请求所请求资源的个数,则分裂或合并所述目标资源链表所在的所述资源链表其余资源链表的资源到所述目标资源链表,并在所述目标资源链表中,获取与所述对应的物理机集群资源请求所请求的资源对应个数的目标资源。
所述第二目标资源获取子模块,包括:
第一分裂资源链表确定单元,用于在所述目标资源链表所在的所述资源链表中,将剩余资源链表中数值大于所述对应的物理机集群资源请求的资源链表,依次确定为第一分裂资源链表;
目标资源个数确定单元,用于将所述对应的物理机集群资源请求所请求资源的个数确定为目标资源个数;
第二分裂资源链表确定单元,用于从最小数值的所述第一分裂资源链表开始,判断是否存在第二分裂资源链表,所述第二分裂资源链表剩余个数的资源分裂到所述目标资源链表中,能够使得所述目标资源链表中当前资源个数等于或大于所述目标资源个数;
目标分裂资源链表确定单元,用于若存在所述第二分裂资源链表,将所述第二分裂资源链表中最小数值的资源链表确定为目标分裂资源链表;
目标分裂资源链表分裂单元,用于分裂所述目标分裂资源链表的资源到所述目标资源链表。
可选地,所述第二目标资源获取子模块,包括:
第一合并资源链表确定单元,用于在所述目标资源链表所在的所述资源链表中,将剩余资源链表中数值小于所述对应的物理机集群资源请求的资源链表,依次确定为第一合并资源链表;
目标资源个数确定单元,用于将所述对应的物理机集群资源请求所请求资源的个数确定为目标资源个数;
第二合并资源链表确定单元,用于从最大数值的所述第一合并资源链表开始,判断是否存在第二合并资源链表,所述第二合并资源链表剩余个数的资源合并到所述目标资源链表中,能够使得所述目标资源链表中当前资源个数等于或大于所述目标资源个数;
目标合并资源链表确定单元,用于若存在所述第二合并资源链表,将所述第二合并资源链表中最大数值的资源链表确定为目标合并资源链表;
目标合并资源链表合并单元,用于合并所述目标合并资源链表的资源到所述目标资源链表。
可选地,所述目标服务器确定模块,包括:
第一查找子模块,用于根据所述每种物理机集群资源请求所请求的资源,分别查找与每种物理机集群资源请求对应的资源链表中剩余资源比例最大的资源链表;
第二查找子模块,用于在所述剩余资源比例最大的资源链表对应的每个服务器中,查找到与所述每种物理机集群资源请求对应的总资源最大的服务器,分别确定为与所述每种物理机集群资源请求对应的每个所述目标服务器。
为达到上述发明目的,本发明实施例还公开了一种电子设备,包括处理器和存储器。
所述存储器,用于存放计算机程序;
所述处理器,用于执行存储器上所存放的程序时,实现上述资源分配方法中任一所述的方法步骤。
为达到上述发明目的,本发明实施例还公开了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时,实现上述基于虚拟机配置的资源分配方法中任一所述的方法步骤。
本发明实施例提供的一种资源分配方法、装置、电子设备及存储介质,可实现快速、准确的分配请求中的一种或多种物理机集群资源请求对应的资源。具体为,在每个服务器中建立多种资源形成的资源链表,获取到请求方请求中的一种或多种物理机集群资源请求后,可分别确定出与每种物理机集群资源请求对应的目标服务器,在每个目标服务器中可确定出与当前物理机集群资源请求对应的目标资源链表。因为可并行的确定出一种或多种物理机集群资源请求对应的目标资源链表,进而在每个目标资源链表中获取对应的资源,提高了获取多种物理机集群资源请求所请求资源的效率;每个服务器的建立有多种资源链表,直接在对应的资源链表中获取资源,减少了计算的繁琐,提高了资源获取的效率。另外,当某一资源链表的资源不足时,可动态的合并或分裂该资源链表中其他链表的资源,提高了资源的利用率。本发明实施例还通过确定每种物理机集群资源请求对应的目标服务器,确保所有服务器的负载保持均衡,提高了服务器的性能。当然,实施本发明的任一产品或方法必不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例的一种资源分配方法流程图;
图2为本发明实施例的一种建立资源链表的方法流程图;
图3为本发明实施例的一种资源分配方法中建立资源链表的实施方式图;
图4为本发明实施例的一种目标资源获取方法流程图;
图5为本发明实施例的另一种目标资源获取方法流程图;
图6为本发明实施例的一种资源分配方法中资源链表分裂的方法流程图;
图7为本发明实施例的另一种目标资源获取方法流程图;
图8为本发明实施例的一种资源分配方法中资源链表合并的方法流程图;
图9为本发明实施例的一种目标服务器的确定方法流程图;
图10为本发明实施例还的一种基于虚拟机配置的资源分配装置结构示意图;
图11为本发明实施例的一种电子设备结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
现有技术在对虚拟机请求物理资源分配的过程为,获取请求方发送的请求中的多种物理机集群资源请求,每次在库存中实时计算以及获取其中一种物理机集群资源请求所请求的资源,直至获取到该请求中的每种物理机集群资源请求对应的资源,并将所有获取到的资源分配给该请求方。这种资源分配方法存在的问题是,每次只能为多种物理机集群资源请求中当前一种物理机集群资源请求在剩余库存的资源中获取对应的资源,直至该请求中每种物理机集群资源请求都获取到对应资源后,将所有获取到的资源分配至该请求方,这种重复计算的过程繁琐且浪费时间。
为解决现有技术中存在的上述问题,本发明实施例提出了一种资源分配方法、装置、电子设备及存储介质,在每个服务器中建立多种物理机集群请求所需的链表形成本发明实施例的资源链表,可并行的将多种物理机集群请求同时进行处理,在对应的目标服务器以及对应的目标资源链表中获取所需的资源,以实现快速、准确的分配当前请求中的一种或多种物理机集群资源请求对应的资源。另外,通过实时动态的分裂或者合并其他资源链表的资源,减少资源碎片的产生。具体实施方式如下:
为达到上述发明目的,本发明实施例公开了一种资源分配方法,可如图1所示。图1为本发明实施例的一种资源分配方法流程图,包括:
S101,获取请求方发送的请求消息中包括的一种或多种物理机集群资源请求。
本发明实施例的执行主体为管理服务器端,以及管理请求方的第三方实体装置或者软件程序,或者可为服务器端的管理所有服务器与请求方通信的总服务器。以下步骤均为同一执行主体,故不在每一步骤中赘述执行主体,但本领域技术人员可知为上述执行主体。
在本发明实施例中,物理机集群资源请求表示请求对应种类的物理机集群资源,一种物理机集群资源请求表示请求一种类型的物理机集群资源。物理机集群表示多个属性对应的物理资源组成的资源集合,物理机集群资源表示该物理机集群所对应的资源,例如,物理机集群请求的类型为1核2G内存,则该物理机集群资源为1核2G内存所对应的资源;物理机集群请求的类型为2核4G内存,则该物理机集群资源为2核4G内存所对应的资源。
在本步骤中,可使用通信网络检测技术,检测到当前有请求方发送的请求消息后,获取该请求消息后,拆分并获取该请求消息中包括的一种或多种物理机集群资源请求。
S102,确定与每种物理机集群资源请求对应的每个目标服务器。
在上述获取到该请求消息中包括的一种或多种物理机集群资源请求后,根据每种物理机集群资源请求确定对应的资源。在本发明实施例中,在保证每种物理机集群资源请求能够获取到对应的资源的同时,也要保证每个服务器的资源分配是均匀的,即确保每个服务器的负载均衡,则在本发明实施例中需要先确定出每种物理机集群资源请求在哪个服务器中获取资源,即为本发明实施例中确定每种物理机集群资源请求对应的每个目标服务器。
在本步骤中,得到每种物理机集群资源请求后,可知每种物理机集群资源请求所需要的资源,以其中一种物理机集群资源请求为例,说明如何确定对应的目标服务器。
假设为每种物理机集群资源请求中当前物理机集群资源请求确定目标服务器,可首先在所有服务器的资源链表中查找含有当前物理机集群资源请求所需的资源对应的资源链表。以确保每个服务器的负载均衡为原则,在找到的各服务器中对应的资源链表中,查找当前物理机集群资源请求对应的资源链表中剩余比例最大,且当前物理机集群资源请求对应的资源链表中剩余比例最大的各服务器中服务器总资源最大的服务器,将该服务器确定为与该当前物理机集群资源请求对应的目标服务器。按照这种方式可采用多线程的程序处理方式,一次性并行的确定出该请求消息中包括的每种物理机集群资源请求对应的目标服务器。
需要说明说明的是,上述确定每种物理机集群资源请求对应的每个目标服务器的方式,仅为确保系统中各服务器负载均衡的一种确定方式,其他能够保证该系统各服务器负载均衡的目标服务器的确定方式也是可取的,此处不再一一赘述。
S103,针对每个目标服务器,在目标服务器预先建立的资源链表中,确定与目标服务器对应的每种物理机集群资源请求对应的每个目标资源链表。
在本发明实施例中,为了保证能够对请求方的一个请求中包含的多种物理机集群资源请求同时处理,在每个服务器库存系统中先提前建立多种资源对应的资源链表。
资源链表的建立可通过统计历史数据中每种物理机集群资源请求的数目,将较多的前几种物理机集群资源请求所请求的资源设置为每个服务器中包括的各种资源。在每个服务器中将上述确定的各种资源每种资源对应建立一个资源链表,并根据所处的服务器的总资源分配各资源链表中每种资源的数量,形成本发明实施例的资源链表。
在本步骤中,在上述确定了每种物理机集群资源请求对应的每个目标服务器后,在每个目标服务器的资源链表中对应确定出当前物理机集群资源请求所需要的资源链表,并将其确定为与各物理机集群资源请求对应的目标资源链表。
S104,在每个目标服务器对应的每个物理机集群资源请求对应的每种目标资源链表中,获取与每种物理机集群资源请求所请求的资源对应个数的目标资源。
在上述步骤中,确定了每个目标服务器对应的每种物理机集群资源请求对应的目标资源链表后,在每个目标资源链表中获取与每种物理机集群资源请求所请求的资源对应个数的目标资源。
当首次在目标资源链表中无法获得与物理机集群资源请求所请求的对应个数的目标资源时,可将该目标资源链表所在的服务器中其他资源链表的资源分裂或者合并到该目标资源链表中,并在该目标资源链表中获取与每种物理机集群资源请求所请求的资源对应个数的目标资源。
S105,将获取的与每种物理机集群资源请求对应的每种目标资源,分配给请求方。
在上述获取每种物理机集群资源请求对应的目标资源后,可将每种目标资源一次性返回给该请求方。或者按照时间先后顺序,在上述并行的获取每种物理机集群资源请求对应的目标资源过程中,那种物理机集群资源请求先获取到目标资源后,将该目标资源返回该请求方,以使该请求方获取到每种物理机集群资源请求对应的每种目标资源。
本发明实施例提供的一种资源分配方法,可实现快速、准确的分配当前请求中的一种或多种物理机集群资源请求对应的资源。具体为,在每个服务器中建立多种资源形成的资源链表,获取到请求方当前请求中的一种或多种物理机集群资源请求后,可分别确定出与每种物理机集群资源请求对应的目标服务器,在每个目标服务器中可确定出与当前物理机集群资源请求对应的目标资源链表。因为可并行的确定出一种或多种物理机集群资源请求对应的目标资源链表,进而在每个目标资源链表中获取对应的资源,提高了现有技术中获取多种物理机集群资源请求所请求资源的效率;每个服务器中有多种资源链表,直接在对应的资源链表中获取资源,减少了计算的繁琐,提高了资源获取的效率。
可选地,在本发明实施例的一种资源分配方法的一种实施例中,可有如图2所示的本发明实施例的一种建立资源链表的方法流程图。包括:
S201,对历史请求的每种物理机集群资源请求排序,将前N种物理机集群资源请求所请求的资源确定为资源链表的每种资源,N为大于1的自然数。
在本发明实施例中,为了实现快速、准确的分配当前请求中的一种或多种物理机集群资源请求对应的资源,可在每个服务器的库存中设置资源链表,方便获取每种物理机集群资源请求对应的资源,以及实现多种物理机集群资源请求的并行处理。
在本步骤中,可统计历史数据中请求的多种物理机集群资源请求中每种物理机集群资源请求的数量,设置一个阈值,将每种物理机集群资源请求的数量高于阈值的前N种物理机集群资源请求所请求的资源确定为资源链表的每种资源。或者确定一个N值,将前N种物理机集群资源请求所请求的资源,确定为本发明实施例每个服务中要设置的资源链表的每种资源。
S202,分别在每个服务器中建立包含每种资源的链表。
在上述确定了每个服务器所要建立的资源链表的每种资源后,在每个服务器的库存中建立每种资源对应的资源链表,将该建立完成的资源链表确定为本发明实施例的资源链表。
具体地,将上述确定的资源链表的每种资源分别作为最小单位,在每个服务器库存中以每种最小单位建立每种资源链表,将每个服务器的总资源对应分配在各资源链表中,进而形成本发明实施例的资源链表。
可见,通过本发明实施例的建立资源链表的方法,可实现在每个服务器库存中建立资源链表,该资源链表包括多种物理机集群资源请求所需资源对应的各资源链表,进而实现通过在各对应链表中查找所需的资源,达到快速、准确的分配资源的方式。另外,通过资源链表还可实现并行的处理多种物理机集群资源请求,更好的实现快速、准确的分配资源的方式。
可选地,在本发明实施例的一种资源分配方法的一种实施例中,分别在每个服务器中建立包含每种资源的链表之后,方法还包括:
按照每个服务器总资源以及N种物理机集群资源请求所请求的资源比例,分别确定每个目标服务器的资源链表中每种资源的剩余个数。
在本实施例中,可对每个服务器建立的资源链表的每种资源链表的资源数量进行分配。可按照历史请求中每种物理机集群资源请求的请求量,得到每个服务器的资源链表的每种资源链表的比例,按照该比例以及每个服务器的总资源量,在每个服务器建立的资源链表的每种资源链表中,对应分配每种资源链表中含有资源的个数,将该个数确定为每种资源的剩余个数。
可见,通过本发明实施例可实现在每个服务器库存中建立与每个服务器的总资源相符合的多个资源链表,并将每个资源链表的数量合理分配,以使得后期方便在对应的资源链表中获取相应个数的目标资源。
为了更好地说明本发明实施例的一种资源分配方法中建立资源链表的方法,可参见图3。图3为本发明实施例的一种资源分配方法中建立资源链表的实施方式图。
步骤一,对历史请求的每种物理机集群资源请求排序,将前N种物理机集群资源请求所请求的资源确定为资源链表的每种资源。
步骤二,分别在每个服务器中建立包含每种资源的链表。
在本发明实施例中,可将每种物理机集群资源请求所需要的资源抽象概括成U,该最小单元为1U,该1U资源表示与物理机集群资源请求中包含的各种属性最小的单位资源,例如1核2G内存资源可表示为1U,2核4G内存资源可表示为2U,4核8G内存资源可表示为4U,8核16G内存资源可表示为8U等。
按照上述两个步骤,在图3中对历史请求的每种物理机集群资源请求排序,将前4种物理机集群资源请求所请求的资源确定为资源链表的每种资源。即形成图3中本发明实施例的1U资源链表、2U资源链表、4U资源链表以及8U资源链表。1U资源链表上记录的1核2G内存的消耗,2U资源链表上记录的2核4G内存的消耗,4U资源链表上记录的4核8G内存的消耗,8U资源链表上记录的8核16G内存的消耗。1U上每个格子代表了一个1核2G内存对应的资源,2U上每个格子代表一个2核4G内存对应的资源,依次类推。
步骤三,按照每个服务器总资源以及N种物理机集群资源请求所请求的资源比例,分别确定每个目标服务器的资源链表中每种资源的剩余个数。
每个资源链表的剩余个数可按照服务器总资源,以及历史数据中该4种物理机集群资源请求所请求的资源比例确定。且每个资源链表的资源可动态地分裂或者合并到其他资源链表中,以使得一个服务器的多个资源链表的各种资源均匀的分配。
比如现有一个服务的总资源量为100U,当有一个物理机集群资源请求对应的目标资源为1U时,从1U的链表上申请一个,如果物理机集群资源请求对应的目标资源是4U时,从4U的链表上申请一个。
另外,还可将所有资源都分配在1U资源链表上,其他链表上没有任何资源,如果物理机集群资源请求对应的目标资源为4U时,则4U服务会触发1U资源链表上的资源合并,4个1U合并为1个4U,即4U资源链表上会增加一个4U资源,1U资源链表上会减少4个1U资源。如果物理机集群资源请求对应的目标资源为1U,但是1U资源链表上已经没有资源,则1U服务会触发2U的分裂,即从2U资源链表上摘取一个2U的资源,在1U资源链表上增加2个1U的资源。
可见,通过本发明实施例在每个服务器中建立资源链表,可实现方便快速的在对应的资源链表中获取到目标资源。另外,还可以动态的分裂或者合并其他资源链表的资源到目标资源链表中,使得动态的实时调整每个服务器的各种资源链表中包含的资源数量。
可选地,在本发明实施例的一种资源分配方法的一种实施例中,在每个目标服务器对应的每个物理机集群资源请求对应的每种目标资源链表中,获取与每种物理机集群资源请求所请求的资源对应个数的目标资源,可如图4所示。图4为本发明实施例的一种目标资源获取方法流程图,包括:
S401,针对每个目标服务器,分别判断目标服务器对应的每种物理机集群资源请求对应的每种目标资源链表的资源,剩余个数是否满足对应的每种物理机集群资源请求所请求资源的个数。
在确定了每种物理机集群资源请求对应的每个目标服务器后,需要判断每种目标资源链表的资源能否满足对应的物理机集群资源请求所需的资源个数。
需要说明的是,一个目标服务器可对应多种物理机集群资源请求,进而一个目标服务器可包含有多种物理机集群资源请求对应的多个目标资源链表,则需要判断每个目标资源链表的资源能否对应满足每种物理机集群资源请求所需的资源个数。
进而,可设置监测程序,判断每个目标资源链表中剩余的资源个数能否满足对应的物理机集群资源请求中所请求的资源的个数。
通过上述判断方式,可并行的判断每个目标服务器对应的每种物理机集群资源请求的每个目标资源链表的资源,剩余个数是否满足对应的每种物理机集群资源请求所请求资源的个数。
S402,若满足对应的每种物理机集群资源请求所请求资源的个数,则在目标服务器对应的每种物理机集群资源请求对应的每种目标资源链表中,获取与每种物理机集群资源请求所请求资源的个数对应个数的目标资源。
在上述若判断每个目标服务器对应的每种物理机集群资源请求对应的每种目标资源链表的资源,剩余个数均满足对应的每种物理机集群资源请求所请求资源的个数后,直接在对应的目标资源链表中获取与每种物理机集群资源请求所请求资源的个数对应个数的目标资源。
S403,若任一目标资源链表的资源不满足对应的物理机集群资源请求所请求资源的个数,则分裂或合并目标资源链表所在的资源链表其余资源链表的资源到目标资源链表,并在目标资源链表中,获取与对应的物理机集群资源请求所请求的资源对应个数的目标资源。
在上述判断过程中,若任一目标服务器的任一目标资源链表的资源不满足对应的物理机集群资源请求所需资源的个数时,将当前物理机集群资源请求对应的目标资源链表所在的资源链表中其他资源链表的资源,分裂或者合并到该目标资源链表的资源中,然后在该目标资源链表中获取与对应的物理机集群资源请求所请求的资源对应个数的目标资源。
可见,通过本发明实施例设置的资源链表,可方便快速的获取到与每种物理机集群资源请求对应的资源,提高资源的获取速度以及准确度。
可选地,在本发明实施例的一种资源分配方法的一种实施例中,分裂目标资源链表所在的资源链表其余资源链表的资源到目标资源链表,可如图5所示。图5为本发明实施例的另一种目标资源获取方法流程图,包括:
S501,在目标资源链表所在的资源链表中,将剩余资源链表中数值大于对应的物理机集群资源请求的资源链表,依次确定为第一分裂资源链表。
在本发明实施例中,若判断每个目标服务器对应的每种物理机集群资源请求的每个目标资源链表的资源,剩余个数是否满足对应的每种物理机集群资源请求所请求资源的个数过程中,任一目标资源链表的资源不满足对应的物理机集群资源请求所需资源的个数时,可分裂该物理机集群资源请求对应的该目标资源链表所在的资源链表中其他资源链表的资源,进而使得在该目标资源链表中获取到对应的物理机集群资源请求所需个数的目标资源。
在本步骤中,在目标资源链表所在的资源链表中,可将该目标资源链表的单位资源设为判断阈值,通过检测判断程序,检测该目标资源链表所在的服务器中其余链表的单位资源是否存在大于该目标资源链表的单位资源对应的资源链表,将检测结果中大于该目标资源链表的单位资源对应的资源链表,依次确定为第一分裂资源链表。
设置该第一分裂资源链表的目的为在该第一分裂资源链表中确定出目标分裂资源链表,分裂该目标分裂资源链表到目标资源链表中,使得在该目标资源链表中获得到对应的物理机集群资源请求所需要的目标资源。
S502,将对应的物理机集群资源请求所请求资源的个数确定为目标资源个数。
在本步骤中,可设置检测程序检测该物理机集群资源请求中所请求的个数,将该个数确定为目标资源个数。确定该目标资源个数的目的相当于设置一个阈值,使得分裂第一分裂资源链表到目标资源链表中,方便在目标资源链表中得到对应个数的目标资源。
具体地,可先进行上述步骤中的在目标资源链表所在的资源链表中,将剩余资源链表中数值大于对应的物理机集群资源请求的资源链表依次确定为第一分裂资源链表的步骤,然后进行本步骤的将对应的物理机集群资源请求所请求资源的个数确定为目标资源个数。也可并行处理S501以及S502步骤。
S503,从最小数值的第一分裂资源链表开始,判断是否存在第二分裂资源链表,第二分裂资源链表剩余个数的资源分裂到目标资源链表中,能够使得目标资源链表中当前资源个数等于或大于目标资源个数。
在上述确定了第一分裂资源链表后,需要在一个或多个第一分裂资源链表中寻找能够分裂到目标资源链表中,使得该目标资源链表当前资源个数等于或大于目标资源个数对应的第二分裂资源链表。
具体地,可设置检测判断程序,判断将该最小数值的第一分裂资源链表剩余资源分裂到目标资源链表中是否能够满足目标资源链表中当前资源个数等于或大于目标资源个数。若不能满足,在剩余的比该最小数值的第一分裂资源链表的单位资源大的最小第一分裂资源链表中,判断剩余资源分裂到目标资源链表中是否能够满足目标资源链表中当前资源个数等于或大于目标资源个数。按照上述方式依次判断,直至找到能够满足分裂后目标资源链表中当前资源个数等于或大于目标资源个数对应的第二分裂资源链表。
在第一分裂资源链表中确定第二分裂资源链表时,可采用并行的方式,同时对多个第一分裂资源链表检测判断,分裂到目标资源链表中是否能够满足目标资源链表中当前资源个数等于或大于目标资源个数,进而确定出第二分裂资源链表。
S504,若存在第二分裂资源链表,将第二分裂资源链表中最小数值的资源链表确定为目标分裂资源链表。
在上述得到第二分裂资源链表后,可能存在多个第二分裂资源链表,则将多个第二分裂资源链表中最小数值的资源链表,确定为目标分裂资源链表。
在本实施例中,也可分裂多个资源链表的资源到目标资源链表中,使得在目标资源链表中获取目标资源。
S505,分裂目标分裂资源链表的资源到目标资源链表。
在上述确定了目标分裂资源链表后,可分裂该目标资源链表的资源到目标资源链表。因为每个资源链表都是以最小资源单位1U的倍数建立的,则每个资源链表的单元资源之间也是有倍数关系的。即在分裂目标分裂资源链表时,以目标资源链表的单位资源为基准单位,将目标分裂资源链表中单位资源分裂成该基准单位的多个单位资源至该目标资源链表中,使得该目标资源链表当前资源个数等于或大于目标资源个数。
另外,在本发明实话实例中还可分裂多个第二分裂资源链表的资源到目标资源链表中,使得在该目标资源链表中获得对应的物理机集群资源请求所需的目标资源。具体分裂方式如上,此处不再赘述。
可见,在本发明实施例中,通过动态的分裂物理机集群资源请求对应的目标服务器的其他资源链表的资源,可实现动态的调整服务器建立的资源链表中各资源的个数,使得直接在目标资源链表中获取对应个数的目标资源,进而实现实时、准确、方便的获取所需要的目标资源。
为了更好地说明本发明实施例的一种资源分配方法中,动态分裂其他资源链表的资源到目标资源链表的实现过程,可参见图6。图6为本发明实施例的一种资源分配方法中资源链表分裂的方法流程图。包括:
假设当前物理机集群资源请求所请求的资源为4个2U资源,则具体的资源分配方法如下:
S601,判断2U资源链表剩余个数是否大于等于4,若大于等于4则执行步骤S602,若小于4则执行步骤S603;
S602,在2U资源链表中获取4个2U资源分配给该物理机集群资源请求。
S603,判断4U资源链表剩余资源的个数分裂到2U资源链表中,能否使得在该2U资源链表中获取到4个2U资源,若能,则执行步骤S604,若不能,则执行步骤S605;
S604,分裂该4U资源链表至2U资源链表中,并在该2U资源链表中获取4个2U资源;
S605,分裂该8U资源链表至2U资源链表中,并在该2U资源链表中获取4个2U资源。
可选地,在本发明实施例的一种资源分配方法的一种实施例中,合并目标资源链表所在的资源链表其余资源链表的资源到目标资源链表,可如图7所示。图7为本发明实施例的另一种目标资源获取方法流程图,包括:
S701,在目标资源链表所在的资源链表中,将剩余资源链表中数值小于对应的物理机集群资源请求的资源链表,依次确定为第一合并资源链表。
在本发明实施例中,若判断每个目标服务器对应的每种物理机集群资源请求的每个目标资源链表的资源,剩余个数是否满足对应的每种物理机集群资源请求所请求资源的个数过程中,任一目标资源链表的资源不满足对应的物理机集群资源请求所需资源的个数时,可合并该物理机集群资源请求对应的该目标资源链表所在的资源链表中其他资源链表的资源,进而使得在该目标资源链表中获取到对应的物理机集群资源请求所需个数的目标资源。
在本步骤中,在目标资源链表所在的资源链表中,可将该目标资源链表的单位资源设为判断阈值,通过检测判断程序,检测该目标资源链表所在的服务器中其余链表的单位资源是否存在小于该目标资源链表的单位资源对应的资源链表,将检测结果中小于该目标资源链表的单位资源对应的资源链表,依次确定为第一合并资源链表。
设置该第一合并资源链表的目的为在该第一分裂资源链表中确定出目标合并资源链表,合并该目标合并资源链表到目标资源链表中,使得在该目标资源链表中获得到对应的物理机集群资源请求所需要的目标资源。
S702,将对应的物理机集群资源请求所请求资源的个数确定为目标资源个数。
在本步骤中,可设置检测程序检测该物理机集群资源请求中所请求的个数,将该个数确定为目标资源个数。确定该目标资源个数的目的相当于设置一个阈值,使得合并第一合并资源链表到目标资源链表中,方便在目标资源链表中得到对应个数的目标资源。
具体地,可先进行上述步骤中的在目标资源链表所在的资源链表中,将剩余资源链表中数值小于对应的物理机集群资源请求的资源链表依次确定为第一合并资源链表的步骤,然后进行本步骤的将对应的物理机集群资源请求所请求资源的个数确定为目标资源个数。也可并行处理S701以及S702步骤。
S703,从最大数值的第一合并资源链表开始,判断是否存在第二合并资源链表,第二合并资源链表剩余个数的资源合并到目标资源链表中,能够使得目标资源链表中当前资源个数等于或大于目标资源个数。
在上述确定了第一合并资源链表后,需要在一个或多个第一合并资源链表中寻找能够合并到目标资源链表中,使得该目标资源链表当前资源个数等于或大于目标资源个数对应的第二合并资源链表。
具体地,可设置检测判断程序,判断将该最大数值的第一合并资源链表剩余资源合并到目标资源链表中是否能够满足目标资源链表中当前资源个数等于或大于目标资源个数。若不能满足,在剩余的比该最大数值的第一合并资源链表的单位资源小的最大第一分裂资源链表中,判断剩余资源合并到目标资源链表中是否能够满足目标资源链表中当前资源个数等于或大于目标资源个数。按照上述方式依次判断,直至找到能够满足合并后目标资源链表中当前资源个数等于或大于目标资源个数对应的第二分裂资源链表。
在第一合并资源链表中确定第二合并资源链表时,可采用并行的方式,同时对多个第一合并资源链表检测判断,合并到目标资源链表中是否能够满足目标资源链表中当前资源个数等于或大于目标资源个数,进而确定出第二合并资源链表。
S704,若存在第二合并资源链表,将第二合并资源链表中最大数值的资源链表确定为目标合并资源链表。
在上述得到第二合并资源链表后,可能存在多个第二合并资源链表,则将多个第二合并资源链表中最大数值的资源链表,确定为目标分裂资源链表。
在本实施例中,也可合并多个资源链表的资源到目标资源链表中,使得在目标资源链表中获取目标资源。
S705,合并目标合并资源链表的资源到目标资源链表。
在上述确定了目标合并资源链表后,可合并该目标资源链表的资源到目标资源链表。因为每个资源链表都是以最小资源单位1U的倍数建立的,则每个资源链表的单元资源之间也是有倍数关系的。即在合并目标分裂资源链表时,以目标资源链表的单位资源为基准单位,将目标分裂资源链表中多个单位资源合并成该基准单位的一个单位资源至该目标资源链表中,使得该目标资源链表当前资源个数等于或大于目标资源个数。
另外,在本发明实话实例中还可合并多个第二合并资源链表的资源到目标资源链表中,使得在该目标资源链表中获得对应的物理机集群资源请求所需的目标资源。具体合并方式如上,此处不再赘述。
可见,在本发明实施例中,通过动态的合并物理机集群资源请求对应的目标服务器的其他资源链表的资源,可实现动态的调整服务器建立的资源链表中各资源的个数,使得直接在目标资源链表中获取对应个数的目标资源,进而实现实时、准确、方便的获取所需要的目标资源。
另外,现有技术中若请求的多种物理机集群需求中一种物理机集群请求的所需的资源大于当前服务器剩余库存的资源时,该请求无法获得该资源,造成库存中资源的浪费的问题。在本发明实施例中,通过动态的合并物理机集群资源请求对应的目标服务器的其他资源链表的资源,可实现将该部合并的资源添加到目标资源链表中,使得将该目标资源链表的剩余资源再次分配给请求方,从而减少了资源碎片的产生以及减少了资源的浪费。
为了更好地说明本发明实施例的一种资源分配方法中,动态合并其他资源链表的资源到目标资源链表的实现过程,可参见图8。图8为本发明实施例的一种资源分配方法中资源链表合并的方法流程图。包括:
假设当前物理机集群资源请求所请求的资源为2个4U资源,则具体的资源分配方法如下:
S801,判断4U资源链表剩余个数是否大于等于2,若大于等于2则执行步骤S802,若小于2则执行步骤S803;
S802,在4U资源链表中获取2个4U资源分配给该物理机集群资源请求。
S803,判断2U资源链表剩余资源的个数合并到4U资源链表中,能否使得在该4U资源链表中获取到2个4U资源,若能,则执行步骤S804,若不能,则执行步骤S805;
S804,合并2U资源链表至4U资源链表中,并在该4U资源链表中获取2个4U资源。
S805,合并1U资源链表至4U资源链表中,并在该4U资源链表中获取2个4U资源。
可选地,在本发明实施例的一种资源分配方法的一种实施例中,确定与每种物理机集群资源请求对应的每个目标服务器,可如图9所示,图9为本发明实施例的一种目标服务器的确定方法流程图,包括:
S901,根据每种物理机集群资源请求所请求的资源,分别查找与每种物理机集群资源请求对应的资源链表中剩余资源比例最大的资源链表。
在本发明实施例中,需要确定每种物理机集群资源请求在那个服务器的资源链表中获取对应资源。将每种物理机集群资源请求对应获取资源的服务器确定为与每种物理机集群资源请求对应的目标服务器。
在本步骤中,根据每种物理机集群资源请求,可知道与每种物理机集群资源请求所需的资源,进而可知与每种物理机集群资源请求对应的资源链表。以每种物理机集群资源请求所请求的资源中的一种物理机集群资源请求所请求的资源为例,确定目标服务器的方式可为:知道了该物理机集群资源请求所请求的资源,可对应确定出该物理机集群资源请求对应的资源链表,在每个服务器中查找与该物理机集群资源请求对应的资源链表中剩余资源比例最大的资源链表,以及确定剩余资源比例最大的资源链表对应的各服务器。
可按照上述方式,并行的在每个服务器中查找与每种物理机集群资源请求对应的资源链表中剩余资源比例最大的资源链表,以及确定与每种物理机集群资源请求对应的剩余资源比例最大的资源链表对应的各服务器。
S902,在剩余资源比例最大的资源链表对应的每个服务器中,查找到与每种物理机集群资源请求对应的总资源最大的服务器,分别确定为与每种物理机集群资源请求对应的每个目标服务器。
在上述查找到与每种物理机集群资源请求对应的剩余资源比例最大的资源链表对应的各服务器后,以每种物理机集群资源请求所请求的资源中的一种物理机集群资源请求所请求的资源为例,在与当前物理机集群资源请求对应的剩余资源比例最大的资源链表对应的每个服务器中,查找到与该当前物理机集群资源请求对应的服务器总资源最大的服务器,将该服务器确定与当前物理机集群资源请求对应的目标服务器。
按照上述方式,并行的查找确定与每种物理机集群资源请求对应的每个目标服务器。
可见,通过本发明实施例,可确定出与每种物理机集群资源请求对应的目标服务器,避免其中部分服务器分配的资源过多,导致服务器的性能降低,使得系统中各服务器的负载保持均衡;另外,通过本发明实施例确定出与每种物理机集群资源请求对应的目标服务器,可实现方便、准确的在该服务器中获得所需要的物理资源。
为达到上述发明目的,本发明实施例还公开了一种基于虚拟机配置的资源分配装置,如图10所示。图10为本发明实施例还的一种基于虚拟机配置的资源分配装置结构示意图,包括:
获取请求模块1001,用于获取请求方发送的请求消息中包括的一种或多种物理机集群资源请求;
目标服务器确定模块1002,用于确定与每种物理机集群资源请求对应的每个目标服务器;
目标资源链表确定模块1003,用于针对每个目标服务器,在目标服务器预先建立的资源链表中,确定与目标服务器对应的每种物理机集群资源请求对应的每个目标资源链表;
目标资源获取模块1004,用于在每个目标服务器对应的每个物理机集群资源请求对应的每种目标资源链表中,获取与每种物理机集群资源请求所请求的资源对应个数的目标资源;
目标资源分配模块1005,用于将获取的与每种物理机集群资源请求对应的每种目标资源,分配给请求方。
本发明实施例提供的一种基于虚拟机配置的资源分配装置,可实现快速、准确的分配当前请求中的一种或多种物理机集群资源请求对应的资源。具体为,在每个服务器中建立多种资源形成的资源链表,获取到请求方当前请求中的一种或多种物理机集群资源请求后,可分别确定出与每种物理机集群资源请求对应的目标服务器,在每个目标服务器中可确定出与当前物理机集群资源请求对应的目标资源链表。因为可并行的确定出一种或多种物理机集群资源请求对应的目标资源链表,进而在每个目标资源链表中获取对应的资源,提高了现有技术中获取多种物理机集群资源请求所请求资源的效率;每个服务器中有多种资源链表,直接在对应的资源链表中获取资源,减少了计算的繁琐,提高了资源获取的效率。
需要说明的是,本发明实施例的装置是应用上述一种资源分配方法的装置,则上述一种资源分配方法的所有实施例均适用于该装置,且均能达到相同或相似的有益效果。
可选地,在本发明实施例的一种基于虚拟机配置的资源分配装置的一种实施例中,装置还包括:
资源确定模块,用于对历史请求的每种物理机集群资源请求排序,将前N种物理机集群资源请求所请求的资源确定为资源链表的每种资源,N为大于1的自然数;
链表建立模块,用于分别在每个服务器中建立包含每种资源的链表。
可选地,装置还包括:
资源个数确定模块,用于按照每个服务器总资源以及N种物理机集群资源请求所请求的资源比例,分别确定每个目标服务器的资源链表中每种资源的剩余个数。
可选地,在本发明实施例的一种基于虚拟机配置的资源分配装置的一种实施例中,目标资源获取模块,包括:
资源个数判断子模块,用于针对每个目标服务器,分别判断目标服务器对应的每种物理机集群资源请求对应的每种目标资源链表的资源,剩余个数是否满足对应的每种物理机集群资源请求所请求资源的个数;
第一目标资源获取子模块,用于若满足对应的每种物理机集群资源请求所请求资源的个数,则在目标服务器对应的每种物理机集群资源请求对应的每种目标资源链表中,获取与每种物理机集群资源请求所请求资源的个数对应个数的目标资源;
第二目标资源获取子模块,用于若任一目标资源链表的资源不满足对应的物理机集群资源请求所请求资源的个数,则分裂或合并目标资源链表所在的资源链表其余资源链表的资源到目标资源链表,并在目标资源链表中,获取与对应的物理机集群资源请求所请求的资源对应个数的目标资源。
可选地,在本发明实施例的一种基于虚拟机配置的资源分配装置的一种实施例中,第二目标资源获取子模块,包括:
第一分裂资源链表确定单元,用于在目标资源链表所在的资源链表中,将剩余资源链表中数值大于对应的物理机集群资源请求的资源链表,依次确定为第一分裂资源链表;
目标资源个数确定单元,用于将对应的物理机集群资源请求所请求资源的个数确定为目标资源个数;
第二分裂资源链表确定单元,用于从最小数值的第一分裂资源链表开始,判断是否存在第二分裂资源链表,第二分裂资源链表剩余个数的资源分裂到目标资源链表中,能够使得目标资源链表中当前资源个数等于或大于目标资源个数;
目标分裂资源链表确定单元,用于若存在第二分裂资源链表,将第二分裂资源链表中最小数值的资源链表确定为目标分裂资源链表;
目标分裂资源链表分裂单元,用于分裂目标分裂资源链表的资源到目标资源链表。
可选地,在本发明实施例的一种基于虚拟机配置的资源分配装置的一种实施例中,第二目标资源获取子模块,包括:
第一合并资源链表确定单元,用于在目标资源链表所在的资源链表中,将剩余资源链表中数值小于对应的物理机集群资源请求的资源链表,依次确定为第一合并资源链表;
目标资源个数确定单元,用于将对应的物理机集群资源请求所请求资源的个数确定为目标资源个数;
第二合并资源链表确定单元,用于从最大数值的第一合并资源链表开始,判断是否存在第二合并资源链表,第二合并资源链表剩余个数的资源合并到目标资源链表中,能够使得目标资源链表中当前资源个数等于或大于目标资源个数;
目标合并资源链表确定单元,用于若存在第二合并资源链表,将第二合并资源链表中最大数值的资源链表确定为目标合并资源链表;
目标合并资源链表合并单元,用于合并目标合并资源链表的资源到目标资源链表。
可选地,在本发明实施例的一种基于虚拟机配置的资源分配装置的一种实施例中,目标服务器确定模块1002,包括:
第一查找子模块,用于根据每种物理机集群资源请求所请求的资源,分别查找与每种物理机集群资源请求对应的资源链表中剩余资源比例最大的资源链表;
第二查找子模块,用于在剩余资源比例最大的资源链表对应的每个服务器中,查找到与每种物理机集群资源请求对应的总资源最大的服务器,分别确定为与每种物理机集群资源请求对应的每个目标服务器。
为达到上述发明目的,本发明实施例还公开了一种电子设备,如图11所示。图11为本发明实施例的一种电子设备结构示意图,包括处理器1101和存储器1102:
存储器1102,用于存放计算机程序;
处理器1101,用于执行存储器1102上所存放的程序时,实现以下方法步骤:
获取请求方发送的请求消息中包括的一种或多种物理机集群资源请求;
确定与每种物理机集群资源请求对应的每个目标服务器;
针对每个目标服务器,在目标服务器预先建立的资源链表中,确定与目标服务器对应的每种物理机集群资源请求对应的每个目标资源链表;
在每个目标服务器对应的每个物理机集群资源请求对应的每种目标资源链表中,获取与每种物理机集群资源请求所请求的资源对应个数的目标资源;
将获取的与每种物理机集群资源请求对应的每种目标资源,分配给请求方。
存储器1102可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器1102还可以是至少一个位于远离前述处理器1101的存储装置。
上述的处理器1101可以是通用处理器,包括中央处理器(Central ProcessingUnit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(DigitalSignal Processing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本发明实施例提供的一种电子设备,可实现快速、准确的分配当前请求中的一种或多种物理机集群资源请求对应的资源。具体为,在每个服务器中建立多种资源形成的资源链表,获取到请求方当前请求中的一种或多种物理机集群资源请求后,可分别确定出与每种物理机集群资源请求对应的目标服务器,在每个目标服务器中可确定出与当前物理机集群资源请求对应的目标资源链表。因为可并行的确定出一种或多种物理机集群资源请求对应的目标资源链表,进而在每个目标资源链表中获取对应的资源,提高了现有技术中获取多种物理机集群资源请求所请求资源的效率;每个服务器中有多种资源链表,直接在对应的资源链表中获取资源,减少了计算的繁琐,提高了资源获取的效率。另外,当某一资源链表的资源不足时,可动态的合并或分裂该资源链表中其他链表的资源,提高了资源的利用率。本发明实施例还通过确定每种物理机集群资源请求对应的目标服务器,确保所有服务器的负载保持均衡,提高了服务器的性能。
为达到上述发明目的,本发明实施例还公开了一种计算机可读存储介质,计算机可读存储介质内存储有计算机程序,计算机程序被处理器执行时,实现以下方法步骤:
获取请求方发送的请求消息中包括的一种或多种物理机集群资源请求;
确定与每种物理机集群资源请求对应的每个目标服务器;
针对每个目标服务器,在目标服务器预先建立的资源链表中,确定与目标服务器对应的每种物理机集群资源请求对应的每个目标资源链表;
在每个目标服务器对应的每个物理机集群资源请求对应的每种目标资源链表中,获取与每种物理机集群资源请求所请求的资源对应个数的目标资源;
将获取的与每种物理机集群资源请求对应的每种目标资源,分配给请求方。
本发明实施例提供的一种计算机可读存储介质,可实现快速、准确的分配当前请求中的一种或多种物理机集群资源请求对应的资源。具体为,在每个服务器中建立多种资源形成的资源链表,获取到请求方当前请求中的一种或多种物理机集群资源请求后,可分别确定出与每种物理机集群资源请求对应的目标服务器,在每个目标服务器中可确定出与当前物理机集群资源请求对应的目标资源链表。因为可并行的确定出一种或多种物理机集群资源请求对应的目标资源链表,进而在每个目标资源链表中获取对应的资源,提高了现有技术中获取多种物理机集群资源请求所请求资源的效率;每个服务器中有多种资源链表,直接在对应的资源链表中获取资源,减少了计算的繁琐,提高了资源获取的效率。另外,当某一资源链表的资源不足时,可动态的合并或分裂该资源链表中其他链表的资源,提高了资源的利用率。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备及介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (16)

1.一种资源分配方法,其特征在于,包括:
获取请求方发送的请求消息中包括的一种或多种物理机集群资源请求;
确定与每种物理机集群资源请求对应的每个目标服务器;
针对每个所述目标服务器,在所述目标服务器预先建立的资源链表中,确定与所述目标服务器对应的每种物理机集群资源请求对应的每个目标资源链表;
在每个所述目标服务器对应的每个物理机集群资源请求对应的每种目标资源链表中,获取与所述每种物理机集群资源请求所请求的资源对应个数的目标资源;
将获取的与所述每种物理机集群资源请求对应的每种目标资源,分配给所述请求方;
其中,所述在每个所述目标服务器对应的每个物理机集群资源请求对应的每种目标资源链表中,获取与所述每种物理机集群资源请求所请求的资源对应个数的目标资源,包括:
当首次在所述目标资源链表中无法获得与物理机集群资源请求所请求的对应个数的目标资源时,将所述目标资源链表所在的服务器中其他资源链表的资源分裂或者合并到所述目标资源链表中,并在所述目标资源链表中获取与每种物理机集群资源请求所请求的资源对应个数的目标资源。
2.根据权利要求1所述的资源分配方法,其特征在于,在每个所述服务器中建立资源链表的过程包括:
对历史请求的每种物理机集群资源请求排序,将前N种物理机集群资源请求所请求的资源确定为所述资源链表的每种资源,所述N为大于1的自然数;
分别在每个所述服务器中建立包含所述每种资源的链表。
3.根据权利要求2所述的资源分配方法,其特征在于,所述分别在每个所述服务器中建立包含所述每种资源的链表之后,所述方法还包括:
按照每个所述服务器总资源以及所述N种物理机集群资源请求所请求的资源比例,分别确定每个所述目标服务器的所述资源链表中每种资源的剩余个数。
4.根据权利要求3所述的资源分配方法,其特征在于,所述在每个所述目标服务器对应的每个物理机集群资源请求对应的每种目标资源链表中,获取与所述每种物理机集群资源请求所请求的资源对应个数的目标资源,包括:
针对每个所述目标服务器,分别判断所述目标服务器对应的每种物理机集群资源请求对应的每种目标资源链表的资源,剩余个数是否满足对应的每种物理机集群资源请求所请求资源的个数;
若满足对应的每种物理机集群资源请求所请求资源的个数,则在所述目标服务器对应的每种物理机集群资源请求对应的每种目标资源链表中,获取与每种物理机集群资源请求所请求资源的个数对应个数的目标资源;
若任一目标资源链表的资源不满足对应的物理机集群资源请求所请求资源的个数,则分裂或合并所述目标资源链表所在的所述资源链表其余资源链表的资源到所述目标资源链表,并在所述目标资源链表中,获取与所述对应的物理机集群资源请求所请求的资源对应个数的目标资源。
5.根据权利要求4所述的资源分配方法,其特征在于,所述分裂所述目标资源链表所在的所述资源链表其余资源链表的资源到所述目标资源链表,包括:
在所述目标资源链表所在的所述资源链表中,将剩余资源链表中数值大于所述对应的物理机集群资源请求的资源链表,依次确定为第一分裂资源链表;
将所述对应的物理机集群资源请求所请求资源的个数确定为目标资源个数;
从最小数值的所述第一分裂资源链表开始,判断是否存在第二分裂资源链表,所述第二分裂资源链表剩余个数的资源分裂到所述目标资源链表中,能够使得所述目标资源链表中当前资源个数等于或大于所述目标资源个数;
若存在所述第二分裂资源链表,将所述第二分裂资源链表中最小数值的资源链表确定为目标分裂资源链表;
分裂所述目标分裂资源链表的资源到所述目标资源链表。
6.根据权利要求5所述的资源分配方法,其特征在于,所述合并所述目标资源链表所在的所述资源链表其余资源链表的资源到所述目标资源链表,包括:
在所述目标资源链表所在的所述资源链表中,将剩余资源链表中数值小于所述对应的物理机集群资源请求的资源链表,依次确定为第一合并资源链表;
将所述对应的物理机集群资源请求所请求资源的个数确定为目标资源个数;
从最大数值的所述第一合并资源链表开始,判断是否存在第二合并资源链表,所述第二合并资源链表剩余个数的资源合并到所述目标资源链表中,能够使得所述目标资源链表中当前资源个数等于或大于所述目标资源个数;
若存在所述第二合并资源链表,将所述第二合并资源链表中最大数值的资源链表确定为目标合并资源链表;
合并所述目标合并资源链表的资源到所述目标资源链表。
7.根据权利要求1所述的资源分配方法,其特征在于,所述确定与每种物理机集群资源请求对应的每个目标服务器,包括:
根据所述每种物理机集群资源请求所请求的资源,分别查找与每种物理机集群资源请求对应的资源链表中剩余资源比例最大的资源链表;
在所述剩余资源比例最大的资源链表对应的每个服务器中,查找到与所述每种物理机集群资源请求对应的总资源最大的服务器,分别确定为与所述每种物理机集群资源请求对应的每个所述目标服务器。
8.一种基于虚拟机配置的资源分配装置,其特征在于,包括:
获取请求模块,用于获取请求方发送的请求消息中包括的一种或多种物理机集群资源请求;
目标服务器确定模块,用于确定与每种物理机集群资源请求对应的每个目标服务器;
目标资源链表确定模块,用于针对每个所述目标服务器,在所述目标服务器预先建立的资源链表中,确定与所述目标服务器对应的每种物理机集群资源请求对应的每个目标资源链表;
目标资源获取模块,用于在每个所述目标服务器对应的每个物理机集群资源请求对应的每种目标资源链表中,获取与所述每种物理机集群资源请求所请求的资源对应个数的目标资源;其中,所述在每个所述目标服务器对应的每个物理机集群资源请求对应的每种目标资源链表中,获取与所述每种物理机集群资源请求所请求的资源对应个数的目标资源,包括:当首次在所述目标资源链表中无法获得与物理机集群资源请求所请求的对应个数的目标资源时,将所述目标资源链表所在的服务器中其他资源链表的资源分裂或者合并到所述目标资源链表中,并在所述目标资源链表中获取与每种物理机集群资源请求所请求的资源对应个数的目标资源;
目标资源分配模块,用于将获取的与所述每种物理机集群资源请求对应的每种目标资源,分配给所述请求方。
9.根据权利要求8所述的资源分配装置,其特征在于,所述装置还包括:
资源确定模块,用于对历史请求的每种物理机集群资源请求排序,将前N种物理机集群资源请求所请求的资源确定为所述资源链表的每种资源,所述N为大于1的自然数;
链表建立模块,用于分别在每个所述服务器中建立包含所述每种资源的链表。
10.根据权利要求9所述的资源分配装置,其特征在于,所述装置还包括:
资源个数确定模块,用于按照每个所述服务器总资源以及所述N种物理机集群资源请求所请求的资源比例,分别确定每个所述目标服务器的所述资源链表中每种资源的剩余个数。
11.根据权利要求10所述的资源分配装置,其特征在于,所述目标资源获取模块,包括:
资源个数判断子模块,用于针对每个所述目标服务器,分别判断所述目标服务器对应的每种物理机集群资源请求对应的每种目标资源链表的资源,剩余个数是否满足对应的每种物理机集群资源请求所请求资源的个数;
第一目标资源获取子模块,用于若满足对应的每种物理机集群资源请求所请求资源的个数,则在所述目标服务器对应的每种物理机集群资源请求对应的每种目标资源链表中,获取与每种物理机集群资源请求所请求资源的个数对应个数的目标资源;
第二目标资源获取子模块,用于若任一目标资源链表的资源不满足对应的物理机集群资源请求所请求资源的个数,则分裂或合并所述目标资源链表所在的所述资源链表其余资源链表的资源到所述目标资源链表,并在所述目标资源链表中,获取与所述对应的物理机集群资源请求所请求的资源对应个数的目标资源。
12.根据权利要求11所述的资源分配装置,其特征在于,所述第二目标资源获取子模块,包括:
第一分裂资源链表确定单元,用于在所述目标资源链表所在的所述资源链表中,将剩余资源链表中数值大于所述对应的物理机集群资源请求的资源链表,依次确定为第一分裂资源链表;
目标资源个数确定单元,用于将所述对应的物理机集群资源请求所请求资源的个数确定为目标资源个数;
第二分裂资源链表确定单元,用于从最小数值的所述第一分裂资源链表开始,判断是否存在第二分裂资源链表,所述第二分裂资源链表剩余个数的资源分裂到所述目标资源链表中,能够使得所述目标资源链表中当前资源个数等于或大于所述目标资源个数;
目标分裂资源链表确定单元,用于若存在所述第二分裂资源链表,将所述第二分裂资源链表中最小数值的资源链表确定为目标分裂资源链表;
目标分裂资源链表分裂单元,用于分裂所述目标分裂资源链表的资源到所述目标资源链表。
13.根据权利要求11所述的资源分配装置,其特征在于,所述第二目标资源获取子模块,包括:
第一合并资源链表确定单元,用于在所述目标资源链表所在的所述资源链表中,将剩余资源链表中数值小于所述对应的物理机集群资源请求的资源链表,依次确定为第一合并资源链表;
目标资源个数确定单元,用于将所述对应的物理机集群资源请求所请求资源的个数确定为目标资源个数;
第二合并资源链表确定单元,用于从最大数值的所述第一合并资源链表开始,判断是否存在第二合并资源链表,所述第二合并资源链表剩余个数的资源合并到所述目标资源链表中,能够使得所述目标资源链表中当前资源个数等于或大于所述目标资源个数;
目标合并资源链表确定单元,用于若存在所述第二合并资源链表,将所述第二合并资源链表中最大数值的资源链表确定为目标合并资源链表;
目标合并资源链表合并单元,用于合并所述目标合并资源链表的资源到所述目标资源链表。
14.根据权利要求8所述的资源分配装置,其特征在于,所述目标服务器确定模块,包括:
第一查找子模块,用于根据所述每种物理机集群资源请求所请求的资源,分别查找与每种物理机集群资源请求对应的资源链表中剩余资源比例最大的资源链表;
第二查找子模块,用于在所述剩余资源比例最大的资源链表对应的每个服务器中,查找到与所述每种物理机集群资源请求对应的总资源最大的服务器,分别确定为与所述每种物理机集群资源请求对应的每个所述目标服务器。
15.一种电子设备,其特征在于,包括处理器和存储器:
所述存储器,用于存放计算机程序;
所述处理器,用于执行所述存储器上所存放的程序时,实现权利要求1-7任一所述的方法步骤。
16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-7任一所述的方法步骤。
CN201711326791.7A 2017-12-13 2017-12-13 一种资源分配方法、装置、电子设备及存储介质 Active CN108572871B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711326791.7A CN108572871B (zh) 2017-12-13 2017-12-13 一种资源分配方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711326791.7A CN108572871B (zh) 2017-12-13 2017-12-13 一种资源分配方法、装置、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN108572871A CN108572871A (zh) 2018-09-25
CN108572871B true CN108572871B (zh) 2021-03-26

Family

ID=63576418

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711326791.7A Active CN108572871B (zh) 2017-12-13 2017-12-13 一种资源分配方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN108572871B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114124968B (zh) * 2022-01-27 2022-05-20 深圳华锐金融技术股份有限公司 基于行情数据的负载均衡方法、装置、设备及介质

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5121936B2 (ja) * 2008-10-13 2013-01-16 三菱電機株式会社 リソース割り当て装置及びリソース割り当てプログラム及び記録媒体及びリソース割り当て方法
CN101702138B (zh) * 2009-10-30 2012-01-25 深圳市新飞扬数码技术有限公司 一种内存管理方法、系统及服务器
WO2013123650A1 (zh) * 2012-02-22 2013-08-29 华为技术有限公司 虚拟机分配方法和虚拟机分配装置
CN103383653B (zh) * 2012-05-02 2017-07-04 中国科学院计算技术研究所 云资源管理和调度方法及系统
CN103593243B (zh) * 2013-11-01 2017-05-10 浪潮电子信息产业股份有限公司 一种可动态扩展的增加虚拟机资源集群系统
US9396035B2 (en) * 2013-12-06 2016-07-19 International Business Machines Corporation Multi-dimensional computing and communication resource allocation using bin-packing with per-branch combination tries
CN106033373B (zh) * 2015-03-11 2019-09-27 苏宁易购集团股份有限公司 一种云计算平台中虚拟机资源调度方法和调度系统
CN106681829B (zh) * 2016-12-09 2020-07-24 北京康吉森技术有限公司 一种内存管理方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
全国林业资源数据集群存储技术研究;黄颖,谢阳生;《计算机科学与技术》;20140705;全文 *

Also Published As

Publication number Publication date
CN108572871A (zh) 2018-09-25

Similar Documents

Publication Publication Date Title
CN109660607B (zh) 一种业务请求分发方法、接收方法、装置及服务器集群
US10558498B2 (en) Method for scheduling data flow task and apparatus
WO2018095066A1 (zh) 任务分组方法、装置、电子设备及计算机存储介质
CN109684074B (zh) 物理机资源分配方法及终端设备
US8024737B2 (en) Method and a system that enables the calculation of resource requirements for a composite application
US20150295970A1 (en) Method and device for augmenting and releasing capacity of computing resources in real-time stream computing system
US20150381453A1 (en) Integrated global resource allocation and load balancing
US9069623B2 (en) Management apparatus, method, and privileged and confidential medium storing program to migrate a virtual machine when a resource shortage or booting occurs
CN110162270B (zh) 基于分布式存储系统的数据存储方法、存储节点及介质
US11496413B2 (en) Allocating cloud computing resources in a cloud computing environment based on user predictability
CN106874100B (zh) 计算资源分配方法及装置
CN108718327B (zh) 一种许可证资源调度方法及系统
EP3958122A1 (en) Memory management method, apparatus, and system
CN110909978A (zh) 资源处理方法、装置、服务器及计算机可读存储介质
CN104679444B (zh) 虚拟化存储资源的动态调整方法与装置
CN108572871B (zh) 一种资源分配方法、装置、电子设备及存储介质
CN114461407A (zh) 数据处理方法、装置、分发服务器、系统及存储介质
CN112615795A (zh) 流量控制方法、装置、电子设备、存储介质及产品
US10067778B2 (en) Management system, recording medium and method for managing virtual machines
CN115237960A (zh) 信息推送方法、装置、存储介质以及电子设备
CN114612037A (zh) 一种仓库信息的管理方法和系统
GB2504737A (en) Load balancing in SAP (RTM) system
CN112860432A (zh) 一种进程管理方法、装置及服务器
CN113079062A (zh) 一种资源调整方法、装置、计算机设备和存储介质
CN115080220A (zh) 云资源分配方法及设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant