CN111538597B - 资源配置方法、装置、计算机可读存储介质及电子设备 - Google Patents

资源配置方法、装置、计算机可读存储介质及电子设备 Download PDF

Info

Publication number
CN111538597B
CN111538597B CN202010343258.7A CN202010343258A CN111538597B CN 111538597 B CN111538597 B CN 111538597B CN 202010343258 A CN202010343258 A CN 202010343258A CN 111538597 B CN111538597 B CN 111538597B
Authority
CN
China
Prior art keywords
resource occupation
current resource
occupation data
data
current
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
CN202010343258.7A
Other languages
English (en)
Other versions
CN111538597A (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.)
Beike Technology Co Ltd
Original Assignee
Beike 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 Beike Technology Co Ltd filed Critical Beike Technology Co Ltd
Priority to CN202010343258.7A priority Critical patent/CN111538597B/zh
Publication of CN111538597A publication Critical patent/CN111538597A/zh
Application granted granted Critical
Publication of CN111538597B publication Critical patent/CN111538597B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本公开实施例公开了一种资源配置方法和装置,其中,该方法包括:获取至少一种服务中的每种服务对应的、预设历史时长内的历史资源占用数据;基于历史资源占用数据,预测每种服务的当前资源占用数据;基于当前资源占用数据,生成多个当前资源占用数据序列;基于多个当前资源占用数据序列,确定使预设的虚拟机集群的资源利用率最大的当前资源占用数据序列作为待配置当前资源占用数据序列;按照待配置当前资源占用数据序列中的每个当前资源占用数据,为每种服务配置虚拟机资源。本公开实施例实现了针对线上服务的运行状况自动配置资源和调整资源,避免了配置资源时的人工干预,并使各个服务所需的资源的利用率最优,从而降低了机器运营成本。

Description

资源配置方法、装置、计算机可读存储介质及电子设备
技术领域
本公开涉及计算机技术领域,尤其是一种资源配置方法、装置、计算机可读存储介质及电子设备。
背景技术
随着互联网技术的应用越来越广,网站在垂直和横向会划分出越来越多的微服务。每个服务的特点和访问量不尽相同,并且都需要配备有相应的计算资源,如CPU,内存,磁盘资源等,随着业务范围的不断扩大,对物理资源的需求和消耗也会越来越高,也带来机器硬件成本的不断上涨。目前对机器资源的分配部署的方式比较单一,例如基于隔离方式来进行资源分配,即对一个微服务系统,人为地分配几台机器,固定了可以使用的CPU的数量,内存以及磁盘空间。
发明内容
本公开的实施例提供了一种资源配置方法、装置、计算机可读存储介质及电子设备。
本公开的实施例提供了一种资源配置方法,该方法包括:获取至少一种服务中的每种服务对应的、预设历史时长内的历史资源占用数据;基于历史资源占用数据,预测每种服务的当前资源占用数据;基于所得到的当前资源占用数据,生成多个当前资源占用数据序列;基于多个当前资源占用数据序列,确定使预设的虚拟机集群的资源利用率最大的当前资源占用数据序列作为待配置当前资源占用数据序列;按照待配置当前资源占用数据序列中的每个当前资源占用数据,为至少一种服务中的每种服务配置虚拟机资源。
在一些实施例中,获取至少一种服务中的每种服务对应的、预设历史时长内的历史资源占用数据,包括:获取至少一种服务中的每种服务对应的、预设历史时长内每天的原始资源占用数据;对原始资源占用数据进行去噪处理,得到历史资源占用数据。
在一些实施例中,基于历史资源占用数据,预测每种服务的当前资源占用数据,包括:基于历史资源占用数据,确定当前的资源占用数据基准量;基于预设历史时长内的资源占用数据,确定与当前时间对应的历史时间的数据波动比率;基于资源占用数据基准量和数据波动比率,预测每种服务的当前资源占用数据。
在一些实施例中,基于预设历史时长内的资源占用数据,确定与当前时间对应的历史时间的数据波动比率,包括:基于预设历史时长内与当前时间所处的小时周期对应的历史资源占用数据,确定小时波动比率;基于预设历史时长内与当前日期对应的历史资源占用数据,确定单日波动比率。
在一些实施例中,基于资源占用数据基准量和数据波动比率,预测每种服务的当前资源占用数据,包括:基于小时波动比率、单日波动比率、预设的安全系数,预测每种服务的当前资源占用数据。
在一些实施例中,基于多个当前资源占用数据序列,确定使预设的虚拟机集群的资源利用率最大的当前资源占用数据序列作为待配置当前资源占用数据序列,包括:对于多个当前资源占用数据序列中的每个当前资源占用数据序列,利用该当前资源占用数据序列中的当前资源占用数据,依次为至少一种服务中的每种服务分配虚拟机资源;确定该当前资源占用数据序列对应的虚拟机资源利用率;基于虚拟机资源利用率,确定该当前资源占用数据序列对应的适应度;基于适应度,迭代调整多个当前资源占用数据序列中的每个当前资源占用数据序列;将迭代调整后所得到的,最大适应度对应的当前资源占用数据序列确定为待配置当前资源占用数据序列。
在一些实施例中,当前资源占用数据包括多个维度的子数据,每个子数据对应于一个资源种类;以及确定该当前资源占用数据序列对应的虚拟机资源利用率,包括:将该当前资源占用数据序列中的各个当前资源占用数据包括的同一维度的子数据相加,得到各个维度分别对应的数据和;将所得到的各个数据和分别除以对应维度的虚拟机资源占用量,得到每个维度对应的虚拟机资源利用率。
在一些实施例中,基于虚拟机资源利用率,确定该当前资源占用数据序列对应的适应度,包括:将该当前资源占用数据序列对应的各个维度的虚拟资源利用率进行加权求和,得到该当前资源占用数据序列对应的适应度。
在一些实施例中,基于适应度,迭代调整多个当前资源占用数据序列中的每个当前资源占用数据序列,包括:每次迭代调整前,基于最近一次生成的多个当前资源占用数据序列的适应度的大小,重新生成新的多个当前资源占用数据序列,基于新的多个当前资源占用数据序列,继续进行下一次迭代,直到适应度收敛。
在一些实施例中,重新生成新的多个当前资源占用数据序列,包括:从最近一次生成的多个当前资源占用数据序列中,提取对应的适应度最大的第一目标数量个当前资源占用数据序列;利用第一目标数量个当前资源占用数据序列,重新生成多个当前资源占用数据序列。
在一些实施例中,利用第一目标数量个当前资源占用数据序列,重新生成多个当前资源占用数据序列,包括:对于第一目标数量个当前资源占用数据序列中的每个当前资源占用数据序列,重复执行第二目标数量次如下步骤:从该当前资源占用数据序列中随机提取预设数量个片段,将提取的片段重新插入该当前资源占用数据序列中的目标位置,得到新的当前资源占用数据序列。
根据本公开实施例的另一个方面,提供了一种资源配置装置,该装置包括:获取模块,用于获取至少一种服务中的每种服务对应的、预设历史时长内的历史资源占用数据;预测模块,用于基于历史资源占用数据,预测每种服务的当前资源占用数据;生成模块,用于基于所得到的当前资源占用数据,生成多个当前资源占用数据序列;确定模块,用于基于多个当前资源占用数据序列,确定使预设的虚拟机集群的资源利用率最大的当前资源占用数据序列作为待配置当前资源占用数据序列;配置模块,用于按照待配置当前资源占用数据序列中的每个当前资源占用数据,为至少一种服务中的每种服务配置虚拟机资源。
在一些实施例中,获取模块包括:获取单元,用于获取至少一种服务中的每种服务对应的、预设历史时长内每天的原始资源占用数据;去噪单元,用于对原始资源占用数据进行去噪处理,得到历史资源占用数据。
在一些实施例中,预测模块包括:第一确定单元,用于基于历史资源占用数据,确定当前的资源占用数据基准量;第二确定单元,用于基于预设历史时长内的资源占用数据,确定与当前时间对应的历史时间的数据波动比率;预测单元,用于基于资源占用数据基准量和数据波动比率,预测每种服务的当前资源占用数据。
在一些实施例中,第二确定单元包括:第一确定子单元,用于基于预设历史时长内与当前时间所处的小时周期对应的历史资源占用数据,确定小时波动比率;第二确定子单元,用于基于预设历史时长内与当前日期对应的历史资源占用数据,确定单日波动比率。
在一些实施例中,预测单元进一步用于:基于小时波动比率、单日波动比率、预设的安全系数,预测每种服务的当前资源占用数据。
在一些实施例中,确定模块包括:第三确定单元,用于对于多个当前资源占用数据序列中的每个当前资源占用数据序列,利用该当前资源占用数据序列中的当前资源占用数据,依次为至少一种服务中的每种服务分配虚拟机资源;确定该当前资源占用数据序列对应的虚拟机资源利用率;基于虚拟机资源利用率,确定该当前资源占用数据序列对应的适应度;调整单元,用于基于适应度,迭代调整多个当前资源占用数据序列中的每个当前资源占用数据序列;第四确定单元,用于将迭代调整后所得到的,最大适应度对应的当前资源占用数据序列确定为待配置当前资源占用数据序列。
在一些实施例中,当前资源占用数据包括多个维度的子数据,每个子数据对应于一个资源种类;以及第三确定单元包括:第一计算子单元,用于将该当前资源占用数据序列中的各个当前资源占用数据包括的同一维度的子数据相加,得到各个维度分别对应的数据和;第二计算子单元,用于将所得到的各个数据和分别除以对应维度的虚拟机资源占用量,得到每个维度对应的虚拟机资源利用率。
在一些实施例中,第三确定单元包括:第三计算子单元,用于将该当前资源占用数据序列对应的各个维度的虚拟资源利用率进行加权求和,得到该当前资源占用数据序列对应的适应度。
在一些实施例中,调整单元包括:迭代子单元,用于每次迭代调整前,基于最近一次生成的多个当前资源占用数据序列的适应度的大小,重新生成新的多个当前资源占用数据序列,基于新的多个当前资源占用数据序列,继续进行下一次迭代,直到适应度收敛。
在一些实施例中,迭代子单元进一步用于:从最近一次生成的多个当前资源占用数据序列中,提取对应的适应度最大的第一目标数量个当前资源占用数据序列;利用第一目标数量个当前资源占用数据序列,重新生成多个当前资源占用数据序列。
在一些实施例中,迭代子单元进一步用于:对于第一目标数量个当前资源占用数据序列中的每个当前资源占用数据序列,重复执行第二目标数量次如下步骤:从该当前资源占用数据序列中随机提取预设数量个片段,将提取的片段重新插入该当前资源占用数据序列中的目标位置,得到新的当前资源占用数据序列。
根据本公开实施例的另一个方面,提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序用于执行上述资源配置方法。
根据本公开实施例的另一个方面,提供了一种电子设备,电子设备包括:处理器;用于存储处理器可执行指令的存储器;处理器,用于从存储器中读取可执行指令,并执行指令以实现上述资源配置方法。
基于本公开上述实施例提供的资源配置方法、装置、计算机可读存储介质及电子设备,通过基于历史资源占用数据,预测每种服务的当前资源占用数据,再利用所得到的当前资源占用数据,使虚拟机集群的资源利用率最大,最后利用资源利用率最大的当前资源占用数据序列,配置各个服务所需的虚拟机资源,从而实现了针对线上服务的运行状况自动配置资源和调整资源,避免了配置资源时的人工干预,并使各个服务所需的资源的利用率最优,从而降低了机器运营成本。
下面通过附图和实施例,对本公开的技术方案做进一步的详细描述。
附图说明
通过结合附图对本公开实施例进行更详细的描述,本公开的上述以及其他目的、特征和优势将变得更加明显。附图用来提供对本公开实施例的进一步理解,并且构成说明书的一部分,与本公开实施例一起用于解释本公开,并不构成对本公开的限制。在附图中,相同的参考标号通常代表相同部件或步骤。
图1是本公开所适用的系统图。
图2是本公开一示例性实施例提供的资源配置方法的流程示意图。
图3是本公开一示例性实施例提供的生成多个当前资源占用数据序列的示意图。
图4是本公开另一示例性实施例提供的资源配置方法的流程示意图。
图5是本公开又一示例性实施例提供的资源配置方法的流程示意图。
图6是本公开的实施例的资源配置方法的重新生成当前资源占用数据序列的示例性示意图。
图7是本公开一示例性实施例提供的资源配置装置的结构示意图。
图8是本公开另一示例性实施例提供的资源配置装置的结构示意图。
图9是本公开一示例性实施例提供的电子设备的结构图。
具体实施方式
下面,将参考附图详细地描述根据本公开的示例实施例。显然,所描述的实施例仅仅是本公开的一部分实施例,而不是本公开的全部实施例,应理解,本公开不受这里描述的示例实施例的限制。
应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
本领域技术人员可以理解,本公开实施例中的“第一”、“第二”等术语仅用于区别不同步骤、设备或模块等,既不代表任何特定技术含义,也不表示它们之间的必然逻辑顺序。
还应理解,在本公开实施例中,“多个”可以指两个或两个以上,“至少一个”可以指一个、两个或两个以上。
还应理解,对于本公开实施例中提及的任一部件、数据或结构,在没有明确限定或者在前后文给出相反启示的情况下,一般可以理解为一个或多个。
另外,本公开中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本公开中字符“/”,一般表示前后关联对象是一种“或”的关系。
还应理解,本公开对各个实施例的描述着重强调各个实施例之间的不同之处,其相同或相似之处可以相互参考,为了简洁,不再一一赘述。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,技术、方法和设备应当被视为说明书的一部分。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
本公开实施例可以应用于终端设备、计算机系统、服务器等电子设备,其可与众多其它通用或专用计算系统环境或配置一起操作。适于与终端设备、计算机系统、服务器等电子设备一起使用的众所周知的终端设备、计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统、大型计算机系统和包括上述任何系统的分布式云计算技术环境,等等。
终端设备、计算机系统、服务器等电子设备可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机系统/服务器可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
申请概述
目前对机器资源的分配部署的方式比较单一,例如基于隔离方式来进行资源分配,即对一个微服务系统,人为地分配几台机器,固定了可以使用的CPU的数量,内存以及磁盘空间。这样存在的问题是由于不同服务对机器硬件性能要求差异很大,实际对机器的各种资源的利用率也不相同,会导致由于初始资源分配的不合理造成一部分服务的机器负载过大,一部分的资源利用率过低的情况。
示例性系统
图1示出了可以应用本公开的实施例的资源配置方法或资源配置装置的示例性系统架构100。
如图1所示,系统架构100可以包括终端设备101,网络102,服务器103和虚拟机集群104。网络102用于在终端设备101和服务器103之间提供通信链路的介质。网络102可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101通过网络102与服务器103交互,以接收或发送消息等。终端设备101上可以安装有各种通讯客户端应用,例如搜索类应用、网页浏览器应用、购物类应用、即时通信工具等。
终端设备101可以是各种电子设备,包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。
服务器103可以是提供各种服务的服务器,例如为终端设备101上的各种服务提供支持的后台资源配置服务器。后台资源配置服务器可以为多个服务所需的资源预测和配置。
虚拟机集群104为通过虚拟化技术将物理资源虚拟化成固定规格的多个虚拟机,例如,虚拟机的规格可以为4核CPU,8G内存,40G硬盘。虚拟机集群中的虚拟机可以设置在服务器103中,也可以设置在于服务器103通信连接的其他服务器上。
需要说明的是,本公开的实施例所提供的资源配置方法可以一般由服务器103执行,相应地,资源配置装置一般设置于服务器103中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
示例性方法
图2是本公开一示例性实施例提供的资源配置方法的流程示意图。本实施例可应用在电子设备(如图1所示的服务器103)上,如图2所示,该方法包括如下步骤:
步骤201,获取至少一种服务中的每种服务对应的、预设历史时长内的历史资源占用数据。
在本实施例中,电子设备可以获取至少一种服务中的每种服务对应的、预设历史时长内的历史资源占用数据。其中,上述服务是指如图1所示的服务器103为终端设备101上运行的各种功能提供的支持,例如信息推送服务、图像处理服务等。每种服务需要一定的硬件资源,历史资源占用数据即表征在预设历史时长(例如过去三个月)内各个服务的硬件资源使用情况,例如,历史资源占用数据可以包括但不限于CPU的使用率、内存的使用量、硬盘的使用量等。
需要说明的是,历史资源占用数据可以是基于预设的时间粒度采集的,例如,按照每周、每天、每小时等周期采集资源占用数据。
在一些可选的实现方式中,步骤201可以如下执行:
首先,获取至少一种服务中的每种服务对应的、预设历史时长内每天的原始资源占用数据。作为示例,预设历史时长可以为过去三个月,原始资源占用数据是各种硬件资源实际的占用量。
然后,对原始资源占用数据进行去噪处理,得到历史资源占用数据。具体地,由于存在一些不可控的因素,会造成某天的数据异常,因此,需要对原始资源占用数据进行去噪处理。作为示例,可以将处于预设范围之外的原始资源占用数据作为噪声数据去除掉。再例如,可以计算最近一周的数据的平均值μ和标准差σ,正常数据所处区间是[μ-2σ,μ+2σ],将不处在该区间内的数据替换为平均值μ。本实现方式通过对原始资源占用数据进行预处理,可以去除异常数据,使预测的当前资源占用数据更准确。
步骤202,基于历史资源占用数据,预测每种服务的当前资源占用数据。
在本实施例中,电子设备可以基于历史资源占用数据,预测每种服务的当前资源占用数据。其中,当前资源占用数据是预测得到的,即每种服务在未来的一段时间(例如一小时、一天等)内可能占用的硬件资源量。具体地,电子设备可以按照各种方法预测每种服务的当前资源占用数据。作为示例,可以利用现有的线性回归算法、指数平滑算法等,预测每种服务的当前资源占用数据。
步骤203,基于所得到的当前资源占用数据,生成多个当前资源占用数据序列。
在本实施例中,电子设备可以基于所得到的当前资源占用数据,生成多个当前资源占用数据序列。作为示例,如图3所示,假设服务的数量为M,各个服务的当前资源占用数据的编号为1-M,图中用服务1-服务器M表示M个当前资源占用数据,这里将当前资源占用数据序列简称序列,则可以生成多个序列,每个序列包括M个当前资源占用数据,且各个序列中的当前资源占用数据的排列顺序为随机确定的。如图3所示,序列1-序列Q是生成的多个序列。
步骤204,基于多个当前资源占用数据序列,确定使预设的虚拟机集群的资源利用率最大的当前资源占用数据序列作为待配置当前资源占用数据序列。
在本实施例中,电子设备可以基于多个当前资源占用数据序列,确定使预设的虚拟机集群(例如图1所示的虚拟机集群104)的资源利用率最大的当前资源占用数据序列作为待配置当前资源占用数据序列。其中,资源利用率为针对各个服务预测的当前资源占用数据与实际占用的资源量的比值。由于一个服务通常需要在同一个虚拟机上运行,在基于某个当前资源占用数据序列配置虚拟机时,按照序列中的当前资源占用数据的顺序,依次将预测的各个服务的资源占用量配置到虚拟机中,当某个虚拟机中的资源不够支持某个服务时,将该服务所需的资源量配置到下一个虚拟机中。因此,对于各个服务来说,实际占用的资源量通常大于被预测的当前资源占用数据,造成虚拟机资源的浪费。本申请即为了优化配置虚拟机资源,得到使虚拟机的资源利用率最大的当前资源占用数据序列,并使用该当前资源占用数据序列配置虚拟机资源。
具体地,作为示例,可以使用各种方法优化虚拟机资源的配置方式。例如,使用贪心算法、遗传算法等。
步骤205,按照待配置当前资源占用数据序列中的每个当前资源占用数据,为至少一种服务中的每种服务配置虚拟机资源。
在本实施例中,电子设备可以按照待配置当前资源占用数据序列中的每个当前资源占用数据,为至少一种服务中的每种服务配置虚拟机资源。具体地,可以按照待配置当前资源占用数据序列中的当前资源占用数据的顺序,依次配置虚拟机,配置后的虚拟机集群的资源利用率最大。
本公开的上述实施例提供的方法,通过基于历史资源占用数据,预测每种服务的当前资源占用数据,再利用所得到的当前资源占用数据,使虚拟机集群的资源利用率最大,最后利用资源利用率最大的当前资源占用数据序列,配置各个服务所需的虚拟机资源,从而实现了针对线上服务的运行状况自动配置资源和调整资源,避免了配置资源时的人工干预,并使各个服务所需的资源的利用率最优,从而降低了机器运营成本。
进一步参考图4,示出了资源配置方法的又一个实施例的流程示意图。如图4所示,在上述图2所示实施例的基础上,步骤202可以包括如下步骤:
步骤2021,基于历史资源占用数据,确定当前的资源占用数据基准量。
在本实施例中,电子设备可以基于历史资源占用数据,确定当前的资源占用数据基准量。其中,当前的资源占用数据基准量可以是当前的一天、一小时等时间段内的资源占用数据基准量,资源占用数据基准量为该段时间预测的基准。
作为示例,电子设备可以按照如下公式确定资源占用数据基准量:
其中,S1为当天的资源占用数据基准量,N为过去的天数,i为以当天为起点,过去的某天的序号(例如昨天的序号为1,前天的序号为2,…),Ui为序号为i的那天的实际资源占用数据。由式(1)可知,距离当天越近的时间,对资源占用数据基准量的贡献程度越大。
需要说明的是,还可以按照其他方法确定资源占用数据基准量,例如对上述N天的实际资源占用数据取平均。
步骤2022,基于预设历史时长内的资源占用数据,确定与当前时间对应的历史时间的数据波动比率。
在本实施例中,电子设备可以基于预设历史时长内的资源占用数据,确定与当前时间对应的历史时间的数据波动比率。其中,与当前时间对应的历史时间可以为上述预设历史时长内的,某个时间周期内与当前时间相同的时间。上述时间周期可以为一种或多种,从而得到的数据波动比率可以为一个或多个。作为示例,上述时间周期可以为小时周期(即过去的几天中,与当前时间所处的小时相同的时间,例如过去的每天12:00)、天周期(例如过去几周中,与当前的日期相同的时间,例如过去的每周一)等。数据波动比率为上述历史时间内,相对于基准量(以下将资源占用数据基准量简称为基准量)的波动程度。
在一些可选的实现方式中,数据波动比率可以按照如下步骤确定:
基于预设历史时长内与当前时间所处的小时周期对应的历史资源占用数据,确定小时波动比率。具体地,可以按照如下公式确定小时波动比率:
其中,N为过去的天数,Rh为小时波动比率,rhi为当天之前的第i天中的某个小时(即与当前时间所处的小时相同的小时)的资源占用数据占全天的比重。表示某个小时的比重与平均值的差。
基于预设历史时长内与当前日期对应的历史资源占用数据,确定单日波动比率。具体地,可以按照如下公式确定单日波动比率:
其中,Rw为单日波动比率,W为过去的星期数,rdj为当天之前的第j周中的某天(即与当前时间所处的日期相同的某天,例如每周一)的资源占用数据占全周的比重。表示某天的比重与平均值的差。
上述小时波动比率和单日波动比率均为数据波动比率。本实现方式得到的数据波动比率,充分涉及了某小时相对于的波动和某天相对于全周的波动,从而可以更精确地利用数据波动比率对资源占用数据进行预测。
步骤2023,基于资源占用数据基准量和数据波动比率,预测每种服务的当前资源占用数据。
在本实施例中,电子设备可以基于资源占用数据基准量和数据波动比率,预测每种服务的当前资源占用数据。作为示例,可以将基准量乘以数据波动比率得到当前资源占用数据。或者,可以将基准量乘以数据波动比率再乘以预设的系数(用于使当前资源占用数据存在一定的冗余),得到当前资源占用数据。
在一些可选的实现方式中,电子设备可以基于上述可选的实现方式中的小时波动比率、单日波动比率、预设的安全系数,预测每种服务的当前资源占用数据。具体地,可以按照如下公式预测每种服务的当前资源占用数据:
S=S1×(1+Rh+Rw)×K(4)
其中,S为单个服务的当前资源占用数据,S1为基准量,Rh为小时波动比率,Rw为单日波动比率,K为安全系数,安全系数用于使预测的当前资源占用数据具有一定程度的冗余,即提供的资源量高于最低消耗值。本实现方式通过小时波动比率、单日波动比率、安全系数预测当前资源占用数据,可以更准确及更合理地预测单个服务所需的资源量。
上述图4对应实施例提供的方法,通过确定资源占用基准量和数据波动比率,可以充分涉及当前所处的时间周期的数据波动情况,从而可以更准确地预测当前资源占用数据。
进一步参考图5,示出了资源配置方法的又一个实施例的流程示意图。如图5所示,在上述图2所示实施例的基础上,步骤204可以包括如下步骤:
步骤2041,对于多个当前资源占用数据序列中的每个当前资源占用数据序列,利用该当前资源占用数据序列中的当前资源占用数据,依次为至少一种服务中的每种服务分配虚拟机资源;确定该当前资源占用数据序列对应的虚拟机资源利用率;基于虚拟机资源利用率,确定该当前资源占用数据序列对应的适应度。
在本实施例中,对于多个当前资源占用数据序列中的每个当前资源占用数据序列,电子设备可以针对该当前资源占用数据序列(即其中一个当前资源占用数据序列)执行如下步骤:
步骤一,利用该当前资源占用数据序列中的当前资源占用数据,依次为至少一种服务中的每种服务分配虚拟机资源。
作为示例,如果序列中包括M个当前资源占用数据,即有M个服务,则可以将M个服务依次分配到虚拟机集群中。例如,序列包括的当前资源占用数据按顺序对应的服务的序号分别为6、3、7、9……、1、2,虚拟机1中载入服务6和服务3,虚拟机2中载入服务7和服务9,……,虚拟机E中载入服务2。
步骤二,确定该当前资源占用数据序列对应的虚拟机资源利用率。
具体地,可以将该当前资源占用数据除以分配的虚拟机资源总量,得到虚拟机资源利用率。
步骤三,基于虚拟机资源利用率,确定该当前资源占用数据序列对应的适应度。
其中,适应度用于表征虚拟机资源被利用的程度。通常,在迭代优化当前资源占用数据序列时,适应度被用来作为优化的目标,即调整当前资源占用数据序列中的当前资源占用数据的顺序,使适应度最大化。作为示例,适应度可以与虚拟资源利用率具有对应关系,该对应关系可以通过函数表征。
在一些可选的实现方式中,当前资源占用数据可以包括多个维度的子数据,每个子数据对应于一个资源种类。例如,资源种类可以包括但不限于以下至少一种:CPU利用率,内存利用量、硬盘利用量等。基于此,上述步骤二可以包括如下步骤:
首先,将该当前资源占用数据序列中的各个当前资源占用数据包括的同一维度的子数据相加,得到各个维度分别对应的数据和。例如,某服务i的维度x对应的数据和为
然后,将所得到的各个数据和分别除以对应维度的虚拟机资源占用量,得到每个维度对应的虚拟机资源利用率。例如,某服务i的维度x对应的虚拟机资源利用率为Rx=Tx/Tx',其中,为维度x对应的虚拟机资源的供应量,tj为虚拟机j的资源提供量。本实现方式通过计算多个维度的虚拟机资源利用率,可以有助于从多个维度对虚拟机资源进行优化,提高资源的利用率。
在一些可选的实现方式中,上述步骤三中的适应度可以按照如下方式得到:将该当前资源占用数据序列对应的各个维度的虚拟资源利用率进行加权求和,得到该当前资源占用数据序列对应的适应度。
作为示例,假设R1、R2、R3分别为CPU、内存、硬盘三个维度的资源利用率,则适应度A=k1×R1+k2×R2+k3×R3,其中,k1、k2、k3分别为各种资源分别对应的权重,k1、k2、k3均大于0小于1,且k1+k2+k3=0。本实现方式通过加权的方式确定适应度,可以灵活地调整各种资源配置时的使用量,提高资源优化的精准性。
步骤2042,基于适应度,迭代调整多个当前资源占用数据序列中的每个当前资源占用数据序列。
在本实施例中,电子设备可以基于适应度,迭代调整多个当前资源占用数据序列中的每个当前资源占用数据序列。作为示例,电子设备可以利用遗传算法,将上述多个当前资源占用数据序列作为一个种群,其中的每个当前资源占用数据序列为一个个体,以最大化适应度作为优化目标,反复迭代优化,调整个体中的数据的排列顺序,适应度收敛。需要说明的是,还可以使用贪心算法、蚁群算法等来调整多个当前资源占用数据序列中的每个当前资源占用数据序列。
在一些可选的实现方式中,步骤2042可以如下执行:
每次迭代调整前,基于最近一次生成的多个当前资源占用数据序列的适应度的大小,重新生成新的多个当前资源占用数据序列,基于新的多个当前资源占用数据序列,继续进行下一次迭代,直到适应度收敛。其中,重新生成新的多个当前资源占用数据序列的数量与初始的重新生成新的多个当前资源占用数据序列的数量相同。作为示例,可以采用遗传算法进行迭代优化,在重新生成多个序列时,可以保留上次生成的各个序列中的适应度最大的预设数量个序列,再随机生成其他序列,重新得到多个序列。本实现方式,通过在每次迭代调整前,基于适应度的大小重新生成多个序列,可以使优化的过程中,适应度逐渐增加,有助于得到使虚拟机资源的利用率最大的当前资源占用数据序列。
在一些可选的实现方式中,电子设备可以按照如下步骤重新生成新的多个当前资源占用数据序列:
首先,从最近一次生成的多个当前资源占用数据序列中,提取对应的适应度最大的第一目标数量个当前资源占用数据序列。其中,第一目标数量可以是按照预设的百分比确定的数量,例如提取适应度最大的前20%的序列。
然后,利用第一目标数量个当前资源占用数据序列,重新生成多个当前资源占用数据序列。具体地,可以将上述第一目标数量个序列作为基础,重新生成其他的序列,得到与初始的多个序列数量相同的序列。作为示例,可以将第一目标数量个序列中的每个序列的某些当前资源占用数据的位置固定,将其他数据的位置随机打乱,多次执行该操作,生成多个序列。
在一些可选的实现方式中,电子设备可以按照如下步骤重新生成多个当前资源占用数据序列:
对于第一目标数量个当前资源占用数据序列中的每个当前资源占用数据序列,重复执行第二目标数量次如下步骤:
从该当前资源占用数据序列中随机提取预设数量个片段,将提取的片段重新插入该当前资源占用数据序列中的目标位置,得到新的当前资源占用数据序列。
若采用遗传算法进行优化,则重新生成序列的过程可以被称为杂交过程。如图6所示,假设预设数量为二,原序列中的片段1包括服务1和服务7对应的当前资源占用数据,片段2包括服务3、服务9和服务5对应的当前资源占用数据,可以将片段1和片段2提取出来并拼接成杂交序列,再将杂交序列插入原序列的目标位置(例如末尾),得到新序列。
上述第二目标数量可以根据第一目标数量确定,例如,假设第一目标数量为Q×20%,其中,Q为上述多个当前资源占用数据序列的总数,则第二目标数量可以为5,即第一目标数量个序列中的每个序列生成五个新序列,则生成的序列总数仍然是Q。
步骤2043,将迭代调整后所得到的,最大适应度对应的当前资源占用数据序列确定为待配置当前资源占用数据序列。
在本实施例中,电子设备可以将迭代调整后所得到的,最大适应度对应的当前资源占用数据序列确定为待配置当前资源占用数据序列。
上述图5对应实施例提供的方法,通过确定每个当前资源占用数据序列对应的适应度,迭代调整当前资源占用数据序列中的当前资源占用数据的排列顺序,得到适应度最大的当前资源占用数据序列,从而可以高效地优化虚拟机资源的配置方式,提高虚拟机资源的利用率。
示例性装置
图7是本公开一示例性实施例提供的资源配置装置的结构示意图。本实施例可应用在电子设备上,如图7所示,资源配置装置包括:获取模块701,用于获取至少一种服务中的每种服务对应的、预设历史时长内的历史资源占用数据;预测模块702,用于基于历史资源占用数据,预测每种服务的当前资源占用数据;生成模块703,用于基于所得到的当前资源占用数据,生成多个当前资源占用数据序列;确定模块704,用于基于多个当前资源占用数据序列,确定使预设的虚拟机集群的资源利用率最大的当前资源占用数据序列作为待配置当前资源占用数据序列;配置模块705,用于按照待配置当前资源占用数据序列中的每个当前资源占用数据,为至少一种服务中的每种服务配置虚拟机资源。
在本实施例中,获取模块701可以获取至少一种服务中的每种服务对应的、预设历史时长内的历史资源占用数据。其中,上述服务是指如图1所示的服务器101为终端设备101上运行的各种功能提供的支持,例如信息推送服务、图像处理服务等。每种服务需要一定的硬件资源,历史资源占用数据即表征在预设历史时长(例如过去三个月)内各个服务的硬件资源使用情况,例如,历史资源占用数据可以包括但不限于CPU的使用率、内存的使用量、硬盘的使用量等。
需要说明的是,历史资源占用数据可以是基于预设的时间粒度采集的,例如,按照每周、每天、每小时等周期采集资源占用数据。
在本实施例中,预测模块702可以基于历史资源占用数据,预测每种服务的当前资源占用数据。其中,当前资源占用数据是预测得到的,即每种服务在未来的一段时间(例如一小时、一天等)内可能占用的硬件资源量。具体地,预测模块702可以按照各种方法预测每种服务的当前资源占用数据。作为示例,可以利用现有的线性回归算法、指数平滑算法等,预测每种服务的当前资源占用数据。
在本实施例中,生成模块703可以基于所得到的当前资源占用数据,生成多个当前资源占用数据序列。作为示例,假设服务的数量为M,各个服务的当前资源占用数据的编号为1-M,这里将当前资源占用数据序列简称序列,则可以生成多个序列,每个序列包括M个当前资源占用数据,且各个序列中的当前资源占用数据的排列顺序为随机确定的。
在本实施例中,确定模块704可以基于多个当前资源占用数据序列,确定使预设的虚拟机集群(例如图1所示的虚拟机集群104)的资源利用率最大的当前资源占用数据序列作为待配置当前资源占用数据序列。其中,资源利用率为针对各个服务预测的当前资源占用数据与实际占用的资源量的比值。由于一个服务通常需要在同一个虚拟机上运行,在基于某个当前资源占用数据序列配置虚拟机时,按照序列中的当前资源占用数据的顺序,依次将预测的各个服务的资源占用量配置到虚拟机中,当某个虚拟机中的资源不够支持某个服务时,将该服务所需的资源量配置到下一个虚拟机中。因此,会造成虚拟机资源的浪费,本申请即为了优化配置虚拟机资源,得到使虚拟机的资源利用率最大的当前资源占用数据序列,并使用该当前资源占用数据序列配置虚拟机资源。
具体地,作为示例,可以使用各种方法优化虚拟机资源的配置方式。例如,使用贪心算法、遗传算法等。
在本实施例中,配置模块705可以按照待配置当前资源占用数据序列中的每个当前资源占用数据,为至少一种服务中的每种服务配置虚拟机资源。具体地,可以按照待配置当前资源占用数据序列中的当前资源占用数据的顺序,依次配置虚拟机,配置后的虚拟机集群的资源利用率最大。
参照图8,图8是本公开另一示例性实施例提供的资源配置装置的结构示意图。
在一些可选的实现方式中,获取模块701可以包括:获取单元7011,用于获取至少一种服务中的每种服务对应的、预设历史时长内每天的原始资源占用数据;去噪单元7012,用于对原始资源占用数据进行去噪处理,得到历史资源占用数据。
在一些可选的实现方式中,预测模块702可以包括:第一确定单元7021,用于基于历史资源占用数据,确定当前的资源占用数据基准量;第二确定单元7022,用于基于预设历史时长内的资源占用数据,确定与当前时间对应的历史时间的数据波动比率;预测单元7023,用于基于资源占用数据基准量和数据波动比率,预测每种服务的当前资源占用数据。
在一些可选的实现方式中,第二确定单元7022可以包括:第一确定子单元70221,用于基于预设历史时长内与当前时间所处的小时周期对应的历史资源占用数据,确定小时波动比率;第二确定子单元70222,用于基于预设历史时长内与当前日期对应的历史资源占用数据,确定单日波动比率。
在一些可选的实现方式中,预测单元7023可以进一步用于:基于小时波动比率、单日波动比率、预设的安全系数,预测每种服务的当前资源占用数据。
在一些可选的实现方式中,确定模块704可以包括:第三确定单元7041,用于对于多个当前资源占用数据序列中的每个当前资源占用数据序列,利用该当前资源占用数据序列中的当前资源占用数据,依次为至少一种服务中的每种服务分配虚拟机资源;确定该当前资源占用数据序列对应的虚拟机资源利用率;基于虚拟机资源利用率,确定该当前资源占用数据序列对应的适应度;调整单元7042,用于基于适应度,迭代调整多个当前资源占用数据序列中的每个当前资源占用数据序列;第四确定单元7043,用于将迭代调整后所得到的,最大适应度对应的当前资源占用数据序列确定为待配置当前资源占用数据序列。
在一些可选的实现方式中,当前资源占用数据可以包括多个维度的子数据,每个子数据对应于一个资源种类;以及第三确定单元7041可以包括:第一计算子单元70411,用于将该当前资源占用数据序列中的各个当前资源占用数据包括的同一维度的子数据相加,得到各个维度分别对应的数据和;第二计算子单元70412,用于将所得到的各个数据和分别除以对应维度的虚拟机资源占用量,得到每个维度对应的虚拟机资源利用率。
在一些可选的实现方式中,第三确定单元7041可以包括:第三计算子单元70413,用于将该当前资源占用数据序列对应的各个维度的虚拟资源利用率进行加权求和,得到该当前资源占用数据序列对应的适应度。
在一些可选的实现方式中,调整单元7042可以包括:迭代子单元70421,用于每次迭代调整前,基于最近一次生成的多个当前资源占用数据序列的适应度的大小,重新生成新的多个当前资源占用数据序列,基于新的多个当前资源占用数据序列,继续进行下一次迭代,直到适应度收敛。
在一些可选的实现方式中,迭代子单元70421可以进一步用于:从最近一次生成的多个当前资源占用数据序列中,提取对应的适应度最大的第一目标数量个当前资源占用数据序列;利用第一目标数量个当前资源占用数据序列,重新生成多个当前资源占用数据序列。
在一些可选的实现方式中,迭代子单元70421可以进一步用于:对于第一目标数量个当前资源占用数据序列中的每个当前资源占用数据序列,重复执行第二目标数量次如下步骤:从该当前资源占用数据序列中随机提取预设数量个片段,将提取的片段重新插入该当前资源占用数据序列中的目标位置,得到新的当前资源占用数据序列。
本公开上述实施例提供的资源配置装置,通过基于历史资源占用数据,预测每种服务的当前资源占用数据,再利用所得到的当前资源占用数据,使虚拟机集群的资源利用率最大,最后利用资源利用率最大的当前资源占用数据序列,配置各个服务所需的虚拟机资源,从而实现了针对线上服务的运行状况自动配置资源和调整资源,避免了配置资源时的人工干预,并使各个服务所需的资源的利用率最优,从而降低了机器运营成本。
示例性电子设备
下面,参考图9来描述根据本公开实施例的电子设备。该电子设备可以是如图1所示的终端设备101和服务器103中的任一个或两者、或与它们独立的单机设备,该单机设备可以与终端设备101和服务器103进行通信,以从它们接收所采集到的输入信号。
图9图示了根据本公开实施例的电子设备的框图。
如图9所示,电子设备900包括一个或多个处理器901和存储器902。
处理器901可以是中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备900中的其他组件以执行期望的功能。
存储器902可以包括一个或多个计算机程序产品,计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器901可以运行程序指令,以实现上文的本公开的各个实施例的资源配置方法以及/或者其他期望的功能。在计算机可读存储介质中还可以存储诸如输入信号、信号分量、噪声分量等各种内容。
在一个示例中,电子设备900还可以包括:输入装置903和输出装置904,这些组件通过总线系统和/或其他形式的连接机构(未示出)互连。
例如,在该电子设备是终端设备101或服务器103时,该输入装置903可以是鼠标、键盘等设备,用于输入数据、命令等。在该电子设备是单机设备时,该输入装置903可以是通信网络连接器,用于从终端设备101和服务器103接收所输入的数据。
该输出装置904可以向外部输出各种信息,包括配置资源的命令等。该输出装置904可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出设备等等。
当然,为了简化,图9中仅示出了该电子设备900中与本公开有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,电子设备900还可以包括任何其他适当的组件。
示例性计算机程序产品和计算机可读存储介质
除了上述方法和设备以外,本公开的实施例还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本公开各种实施例的资源配置方法中的步骤。
所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
此外,本公开的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本公开各种实施例的资源配置方法中的步骤。
所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
以上结合具体实施例描述了本公开的基本原理,但是,需要指出的是,在本公开中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本公开的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本公开为必须采用上述具体的细节来实现。
本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似的部分相互参见即可。对于系统实施例而言,由于其与方法实施例基本对应,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本公开中涉及的器件、装置、设备、系统的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备、系统。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“诸如但不限于”,且可与其互换使用。
可能以许多方式来实现本公开的方法和装置。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本公开的方法和装置。用于所述方法的步骤的上述顺序仅是为了进行说明,本公开的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本公开实施为记录在记录介质中的程序,这些程序包括用于实现根据本公开的方法的机器可读指令。因而,本公开还覆盖存储用于执行根据本公开的方法的程序的记录介质。
还需要指出的是,在本公开的装置、设备和方法中,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本公开的等效方案。
提供所公开的方面的以上描述以使本领域的任何技术人员能够做出或者使用本公开。对这些方面的各种修改对于本领域技术人员而言是非常显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本公开的范围。因此,本公开不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。
为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本公开的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。

Claims (24)

1.一种资源配置方法,包括:
获取至少一种服务中的每种服务对应的、预设历史时长内的历史资源占用数据;
基于所述历史资源占用数据,预测所述每种服务的当前资源占用数据;
基于所得到的当前资源占用数据,生成多个当前资源占用数据序列,其中,所述多个当前资源占用数据序列中的每个当前资源占用数据序列分别对应的服务排列顺序不同;
基于所述多个当前资源占用数据序列,确定使预设的虚拟机集群的资源利用率最大的当前资源占用数据序列作为待配置当前资源占用数据序列;
按照所述待配置当前资源占用数据序列中的每个当前资源占用数据,为所述至少一种服务中的每种服务配置虚拟机资源;
所述基于所述多个当前资源占用数据序列,确定使预设的虚拟机集群的资源利用率最大的当前资源占用数据序列作为待配置当前资源占用数据序列,包括:
对于所述多个当前资源占用数据序列中的每个当前资源占用数据序列,利用该当前资源占用数据序列中的当前资源占用数据,依次为所述至少一种服务中的每种服务分配虚拟机资源;确定该当前资源占用数据序列对应的虚拟机资源利用率;基于所述虚拟机资源利用率,确定该当前资源占用数据序列对应的适应度;适应度用于表征虚拟机资源被利用的程度;
将适应度作为优化的目标,调整所述多个当前资源占用数据序列中的每个当前资源占用数据序列包括的当前资源占用数据的排列顺序,使所述虚拟机集群的资源利用率最大;
将最大资源利用率对应的当前资源占用数据序列作为待配置当前资源占用数据序列。
2.根据权利要求1所述的方法,其中,所述获取至少一种服务中的每种服务对应的、预设历史时长内的历史资源占用数据,包括:
获取所述至少一种服务中的每种服务对应的、所述预设历史时长内每天的原始资源占用数据;
对所述原始资源占用数据进行去噪处理,得到所述历史资源占用数据。
3.根据权利要求1所述的方法,其中,所述基于所述历史资源占用数据,预测所述每种服务的当前资源占用数据,包括:
基于所述历史资源占用数据,确定当前的资源占用数据基准量;
基于所述预设历史时长内的资源占用数据,确定与当前时间对应的历史时间的数据波动比率;
基于所述资源占用数据基准量和所述数据波动比率,预测所述每种服务的当前资源占用数据。
4.根据权利要求3所述的方法,其中,所述基于所述预设历史时长内的资源占用数据,确定与当前时间对应的历史时间的数据波动比率,包括:
基于所述预设历史时长内与当前时间所处的小时周期对应的历史资源占用数据,确定小时波动比率;
基于所述预设历史时长内与当前日期对应的历史资源占用数据,确定单日波动比率。
5.根据权利要求4所述的方法,其中,所述基于所述资源占用数据基准量和所述数据波动比率,预测所述每种服务的当前资源占用数据,包括:
基于所述小时波动比率、所述单日波动比率、预设的安全系数,预测所述每种服务的当前资源占用数据。
6.根据权利要求1所述的方法,还包括:
基于所述适应度,迭代调整所述多个当前资源占用数据序列中的每个当前资源占用数据序列;
将迭代调整后所得到的,最大适应度对应的当前资源占用数据序列确定为待配置当前资源占用数据序列。
7.根据权利要求6所述的方法,其中,所述当前资源占用数据包括多个维度的子数据,每个子数据对应于一个资源种类;以及
所述确定该当前资源占用数据序列对应的虚拟机资源利用率,包括:
将该当前资源占用数据序列中的各个当前资源占用数据包括的同一维度的子数据相加,得到各个维度分别对应的数据和;
将所得到的各个数据和分别除以对应维度的虚拟机资源占用量,得到每个维度对应的虚拟机资源利用率。
8.根据权利要求7所述的方法,其中,所述基于所述虚拟机资源利用率,确定该当前资源占用数据序列对应的适应度,包括:
将该当前资源占用数据序列对应的各个维度的虚拟资源利用率进行加权求和,得到该当前资源占用数据序列对应的适应度。
9.根据权利要求6所述的方法,其中,所述基于所述适应度,迭代调整所述多个当前资源占用数据序列中的每个当前资源占用数据序列,包括:
每次迭代调整前,基于最近一次生成的多个当前资源占用数据序列的适应度的大小,重新生成新的多个当前资源占用数据序列,基于所述新的多个当前资源占用数据序列,继续进行下一次迭代,直到所述适应度收敛。
10.根据权利要求9所述的方法,其中,所述重新生成新的多个当前资源占用数据序列,包括:
从所述最近一次生成的多个当前资源占用数据序列中,提取对应的适应度最大的第一目标数量个当前资源占用数据序列;
利用所述第一目标数量个当前资源占用数据序列,重新生成多个当前资源占用数据序列。
11.根据权利要求10所述的方法,其中,所述利用所述第一目标数量个当前资源占用数据序列,重新生成多个当前资源占用数据序列,包括:
对于所述第一目标数量个当前资源占用数据序列中的每个当前资源占用数据序列,重复执行第二目标数量次如下步骤:从该当前资源占用数据序列中随机提取预设数量个片段,将提取的片段重新插入该当前资源占用数据序列中的目标位置,得到新的当前资源占用数据序列。
12.一种资源配置装置,包括:
获取模块,用于获取至少一种服务中的每种服务对应的、预设历史时长内的历史资源占用数据;
预测模块,用于基于所述历史资源占用数据,预测所述每种服务的当前资源占用数据;
生成模块,用于基于所得到的当前资源占用数据,生成多个当前资源占用数据序列,其中,所述多个当前资源占用数据序列中的每个当前资源占用数据序列分别对应的服务排列顺序不同;
确定模块,用于基于所述多个当前资源占用数据序列,确定使预设的虚拟机集群的资源利用率最大的当前资源占用数据序列作为待配置当前资源占用数据序列;
配置模块,用于按照所述待配置当前资源占用数据序列中的每个当前资源占用数据,为所述至少一种服务中的每种服务配置虚拟机资源;
所述确定模块进一步用于:
对于各个当前资源占用数据序列,利用该当前资源占用数据序列中的当前资源占用数据,依次为所述至少一种服务中的每种服务分配虚拟机资源;确定该当前资源占用数据序列对应的虚拟机资源利用率;基于所述虚拟机资源利用率,确定该当前资源占用数据序列对应的适应度;适应度用于表征虚拟机资源被利用的程度;将适应度作为优化的目标,调整所述多个当前资源占用数据序列中的每个当前资源占用数据序列包括的当前资源占用数据的排列顺序,使所述虚拟机集群的资源利用率最大;将最大资源利用率对应的当前资源占用数据序列作为待配置当前资源占用数据序列。
13.根据权利要求12所述的装置,其中,所述获取模块包括:
获取单元,用于获取所述至少一种服务中的每种服务对应的、所述预设历史时长内每天的原始资源占用数据;
去噪单元,用于对所述原始资源占用数据进行去噪处理,得到所述历史资源占用数据。
14.根据权利要求12所述的装置,其中,所述预测模块包括:
第一确定单元,用于基于所述历史资源占用数据,确定当前的资源占用数据基准量;
第二确定单元,用于基于所述预设历史时长内的资源占用数据,确定与当前时间对应的历史时间的数据波动比率;
预测单元,用于基于所述资源占用数据基准量和所述数据波动比率,预测所述每种服务的当前资源占用数据。
15.根据权利要求14所述的装置,其中,所述第二确定单元包括:
第一确定子单元,用于基于所述预设历史时长内与当前时间所处的小时周期对应的历史资源占用数据,确定小时波动比率;
第二确定子单元,用于基于所述预设历史时长内与当前日期对应的历史资源占用数据,确定单日波动比率。
16.根据权利要求15所述的装置,其中,所述预测单元进一步用于:
基于所述小时波动比率、所述单日波动比率、预设的安全系数,预测所述每种服务的当前资源占用数据。
17.根据权利要求12所述的装置,其中,所述确定模块包括:
调整单元,用于基于所述适应度,迭代调整所述多个当前资源占用数据序列中的每个当前资源占用数据序列;
第四确定单元,用于将迭代调整后所得到的,最大适应度对应的当前资源占用数据序列确定为待配置当前资源占用数据序列。
18.根据权利要求17所述的装置,其中,所述当前资源占用数据包括多个维度的子数据,每个子数据对应于一个资源种类;以及
第三确定单元包括:
第一计算子单元,用于将该当前资源占用数据序列中的各个当前资源占用数据包括的同一维度的子数据相加,得到各个维度分别对应的数据和;
第二计算子单元,用于将所得到的各个数据和分别除以对应维度的虚拟机资源占用量,得到每个维度对应的虚拟机资源利用率。
19.根据权利要求18所述的装置,其中,所述第三确定单元包括:
第三计算子单元,用于将该当前资源占用数据序列对应的各个维度的虚拟资源利用率进行加权求和,得到该当前资源占用数据序列对应的适应度。
20.根据权利要求17所述的装置,其中,所述调整单元包括:
迭代子单元,用于每次迭代调整前,基于最近一次生成的多个当前资源占用数据序列的适应度的大小,重新生成新的多个当前资源占用数据序列,基于所述新的多个当前资源占用数据序列,继续进行下一次迭代,直到所述适应度收敛。
21.根据权利要求20所述的装置,其中,所述迭代子单元进一步用于:
从所述最近一次生成的多个当前资源占用数据序列中,提取对应的适应度最大的第一目标数量个当前资源占用数据序列;
利用所述第一目标数量个当前资源占用数据序列,重新生成多个当前资源占用数据序列。
22.根据权利要求21所述的装置,其中,所述迭代子单元进一步用于:
对于所述第一目标数量个当前资源占用数据序列中的每个当前资源占用数据序列,重复执行第二目标数量次如下步骤:从该当前资源占用数据序列中随机提取预设数量个片段,将提取的片段重新插入该当前资源占用数据序列中的目标位置,得到新的当前资源占用数据序列。
23.一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行上述权利要求1-11任一所述的方法。
24.一种电子设备,所述电子设备包括:
处理器;
用于存储所述处理器可执行指令的存储器;
所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现上述权利要求1-11任一所述的方法。
CN202010343258.7A 2020-04-27 2020-04-27 资源配置方法、装置、计算机可读存储介质及电子设备 Active CN111538597B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010343258.7A CN111538597B (zh) 2020-04-27 2020-04-27 资源配置方法、装置、计算机可读存储介质及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010343258.7A CN111538597B (zh) 2020-04-27 2020-04-27 资源配置方法、装置、计算机可读存储介质及电子设备

Publications (2)

Publication Number Publication Date
CN111538597A CN111538597A (zh) 2020-08-14
CN111538597B true CN111538597B (zh) 2024-02-27

Family

ID=71978804

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010343258.7A Active CN111538597B (zh) 2020-04-27 2020-04-27 资源配置方法、装置、计算机可读存储介质及电子设备

Country Status (1)

Country Link
CN (1) CN111538597B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111985726B (zh) * 2020-08-31 2023-04-18 重庆紫光华山智安科技有限公司 资源数量预测方法、装置、电子设备及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104283946A (zh) * 2014-09-26 2015-01-14 东北大学 一种单物理机下多虚拟机的资源自适应调整系统及方法
CN105760213A (zh) * 2016-02-22 2016-07-13 东北大学 云环境下虚拟机资源利用率的预警系统及方法
CN106598727A (zh) * 2016-11-07 2017-04-26 北京邮电大学 一种通信系统的计算资源分配方法及系统
CN107491341A (zh) * 2017-08-31 2017-12-19 福州大学 一种基于粒子群优化的虚拟机分配方法
CN109284871A (zh) * 2018-09-30 2019-01-29 北京金山云网络技术有限公司 资源调整方法、装置和云平台
CN109857518A (zh) * 2019-01-08 2019-06-07 平安科技(深圳)有限公司 一种网络资源的分配方法及设备

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104283946A (zh) * 2014-09-26 2015-01-14 东北大学 一种单物理机下多虚拟机的资源自适应调整系统及方法
CN105760213A (zh) * 2016-02-22 2016-07-13 东北大学 云环境下虚拟机资源利用率的预警系统及方法
CN106598727A (zh) * 2016-11-07 2017-04-26 北京邮电大学 一种通信系统的计算资源分配方法及系统
CN107491341A (zh) * 2017-08-31 2017-12-19 福州大学 一种基于粒子群优化的虚拟机分配方法
CN109284871A (zh) * 2018-09-30 2019-01-29 北京金山云网络技术有限公司 资源调整方法、装置和云平台
CN109857518A (zh) * 2019-01-08 2019-06-07 平安科技(深圳)有限公司 一种网络资源的分配方法及设备

Also Published As

Publication number Publication date
CN111538597A (zh) 2020-08-14

Similar Documents

Publication Publication Date Title
CN108089921B (zh) 用于云端大数据运算架构的服务器及其运算资源最佳化方法
JP6457447B2 (ja) データセンターのネットワークトラフィックスケジューリング方法及び装置
CN111866775B (zh) 一种业务编排方法及装置
CN110753131A (zh) 微服务分布式限流方法及装置、存储介质和电子设备
CN103927229A (zh) 在动态可用服务器集群中调度映射化简作业
CN109542352B (zh) 用于存储数据的方法和装置
JP2009524135A (ja) リソースのフリープールをモデル化するための方法
CN103763346A (zh) 一种分布式资源调度方法及装置
CN101221517A (zh) 在数据处理系统的分区之间交易资源的装置、系统和方法
CN111538597B (zh) 资源配置方法、装置、计算机可读存储介质及电子设备
CN112486653A (zh) 调度多类型计算资源的方法、装置和系统
CN114237863A (zh) 云计算任务的调度方法、装置以及存储介质
CN114064249A (zh) 混合云的跨云计算任务的调度方法、装置以及存储介质
CN111626898B (zh) 用于实现事件归因的方法、装置、介质和电子设备
CN110825425A (zh) 配置数据管理方法及装置、电子设备、存储介质
CN110347546B (zh) 监控任务动态调整方法、装置、介质及电子设备
CN115858147A (zh) 成本建模方法和装置
CN107273423B (zh) 多媒体消息数据处理方法、装置和系统
CN114528109A (zh) 资源请求方法、装置和系统
CN113468442A (zh) 资源位流量的分发方法、计算设备及计算机存储介质
CN114020469A (zh) 基于边缘节点的多任务学习方法、装置、介质与设备
CN108830703B (zh) 额度控制系统及额度服务系统
CN112148497A (zh) 一种磁盘资源管理方法、装置及电子设备
CN112156453A (zh) 实例自适应调整方法、装置、计算机可读存储介质及设备
CN113760484A (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