CN108536533B - 一种资源调整方法及装置 - Google Patents
一种资源调整方法及装置 Download PDFInfo
- Publication number
- CN108536533B CN108536533B CN201710133962.8A CN201710133962A CN108536533B CN 108536533 B CN108536533 B CN 108536533B CN 201710133962 A CN201710133962 A CN 201710133962A CN 108536533 B CN108536533 B CN 108536533B
- Authority
- CN
- China
- Prior art keywords
- service
- flow
- instance
- definition
- historical
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45583—Memory management, e.g. access or allocation
Abstract
本发明实施例提供一种资源调整方法及装置,涉及通信领域,能够实时计算服务的预估资源用量,对服务的资源进行分配,从而保证了业务流程的性能。该资源调整方法包括:资源管理装置在检测到第一服务满足资源调整规则后,确定当前时刻调用第一服务的至少一个流程实例;资源管理装置根据至少一个流程实例,计算第二服务的预估资源用量,其中,第二服务为调用顺序在第一服务后的服务;资源管理装置基于预估资源用量确定对第二服务的资源分配。
Description
技术领域
本发明实施例涉及通信领域,尤其涉及一种资源调整方法及装置。
背景技术
业务流程是一组将输入转化为输出的相互关联或相互作用的活动(activity)。业务流程的逻辑由流程定义描述,每个流程定义可以对应多个流程实例。其中,流程定 义中的每个任务或者步骤(也可以称为活动)通过调用与其对应的服务来实现。通常, 每个服务都可以对应一个或多个虚拟机(Virtual Machine,VM)。同时,VM的数量 也会随着服务所需的资源用量的变化而变化(如当服务所需的资源用量增大的时候 VM的数量会增加,当服务所需的资源用量减少的时候VM的数量会减少),这种调 整过程被称为资源调整,也可以称之为扩容/缩容。
现有的资源调整的方法通常包括两种(以扩容为例):方法一、首先设定服务负 载的上限阈值,当服务负载超过预先设定的上限阈值时,执行相对应的动作(如增加 一个VM)。例如可以设定服务a所在的每个VM的待处理任务数的上限阈值均为100 个任务,当服务a所在的各个VM的平均待处理任务数超过该上限阈值时需要增加一 个VM。示例性的,假设服务a对应2个VM,当前待处理任务数为300,即每个VM 的平均待处理任务数为150,超过了上限阈值100,此时需要为服务a增加一个VM, 即服务a对应的VM的个数由2个增加到3个。方法二、首先,确定至少两个服务之 间的资源用量比值;其次,设定服务的资源调整规则,当其中一个服务满足资源调整 规则时,执行相对应的动作(如为该服务增加一个VM);最后,按照至少两个服务 之间的资源用量比值为其他服务增加VM。示例性的,服务a、服务b和服务c的资 源用量比值为1:2:8,设定服务所在的VM的待处理任务数的上限阈值为100个任务, 当该服务的各个VM的平均待处理任务数超过该上限阈值时为该服务增加1个VM。 假设服务a对应2个VM,当前待处理任务数为300,即服务a的每个VM的平均待 处理任务数为150,超过了上限阈值100,此时需要为服务a增加1个VM。由于服务 a、服务b和服务c的资源用量比值为1:2:8,则为服务a增加1个VM的同时,需要 为服务b增加2个VM,为服务c增加8个VM。
然而,在上述两种资源调整的方法中,方法一在负载激增(Access Bursting)的情况下增加VM的个数也只能是预先设定好的固定值,无法根据服务负载的变化灵活 调整;而方法二的至少两个服务之间的资源用量比值是基于对过去一段时间内的服务 的资源用量计算的,是一个固定的比例,因此,对于负载实时变化的VM,存在一定 滞后性。
发明内容
本发明的实施例提供一种资源调整方法及装置,能够实时计算服务的预估资源用量,对服务的资源进行分配,从而保证了业务流程的性能。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,本发明实施例提供一种资源调整方法。首先,资源管理装置在检测到第一服务满足资源调整规则后,确定当前时刻调用第一服务的至少一个流程实例;其 次,资源管理装置根据至少一个流程实例,计算第二服务的预估资源用量,其中,第 二服务为调用顺序在第一服务后的服务;最后,资源管理装置基于预估资源用量确定 对第二服务的资源分配。
可见,资源管理装置能够计算第二服务的预估资源用量,并根据计算出的第二服务的预估资源用量判断资源管理装置是否需要为第二服务调整资源配额。因此,与现 有技术相比,本发明实施例提供的资源调整方法能够实时计算服务的预估资源用量, 对服务的资源进行分配,从而保证了业务流程的性能。
在第一方面的第一种可选的实现方式中,确定当前时刻调用第一服务的至少一个流程实例的方法具体可以包括:首先,资源管理装置从流程定义库中找出需要调用第 一服务的流程定义;其中,流程定义库中存储有至少一个流程定义,每个流程定义中 定义了执行该流程定义需调用的服务;随后,资源管理装置获取需要调用第一服务的 流程定义正在运行的流程实例,从正在运行的流程实例中确定出正在调用第一服务的 至少一个流程实例。可见,资源管理装置能够先确定出需要调用第一服务的流程定义, 并从这些流程定义实例化生成的流程实例中,找出当前时刻正在调用第一服务的至少 一个流程实例。
在第一方面的第二种可选的实现方式中,资源管理装置根据至少一个流程实例,计算第二服务的预估资源用量的方法具体可以包括:首先,资源管理装置根据预先计 算的流程定义中的各服务的预估执行概率,确定至少一个流程实例在调用第一服务后 调用第二服务的概率;预估执行概率是基于历史已结束的流程实例的路径信息计算得 到的;其次,资源管理装置根据至少一个流程实例中每个流程实例调用第二服务的概 率,计算第二服务的预估负载比例;最后,资源管理装置根据第二服务的预估负载比 例,计算第二服务的预估资源用量。
在第一方面的第三种可选的实现方式中,资源管理装置根据预先计算的流程定义中的各服务的预估执行概率,确定至少一个流程实例在调用第一服务后调用第二服务 的概率的方法具体可以包括:资源管理装置首先判断在调用第一服务的流程实例的流 程定义中,在调用第一服务的活动后是否存在分支;若在调用第一服务的活动后不存 在分支,则资源管理装置将所述流程实例在调用所述第一服务后调用所述第二服务的 概率确定为1;若在调用第一服务的活动后存在分支,则资源管理装置判断第二服务 是否位于分支上;若第二服务不位于分支上,则资源管理装置将所述流程实例在调用 所述第一服务后调用所述第二服务的概率确定为1;若第二服务位于分支上,则将所 述第二服务在所述流程定义中的预估执行概率除以与所述第二服务所在分支连接同 一决策点的所有分支的预估执行概率之和,得到所述流程实例在调用所述第一服务后 调用所述第二服务的概率。
在第一方面的第四种可选的实现方式中,资源调整方法还可以包括:预先基于历史已结束的流程实例的路径信息,计算流程定义库中的流程定义中各服务的预估执行 概率。这样,在资源管理装置计算好流程定义中各服务的预估执行概率之后,每次执 行本发明实施例提供的资源调整方法时,资源管理装置都能够直接获取某个服务的预 估执行概率。
在第一方面的第五种可选的实现方式中,基于历史已结束的流程实例的路径信息,计算流程定义库中的流程定义中各服务的预估执行概率的方法具体可以包括:资 源管理装置获取该流程定义的历史数据(包括该流程定义的历史流程实例的路径信 息,流程定义的历史流程实例的路径信息用于指示该流程定义的历史流程实例调用服 务的顺序);资源管理装置根据该流程定义的历史流程实例的路径信息,计算该服务 在该流程定义的历史流程实例的路径信息中所占的比例,并将比例设置为预估执行概 率。
在第一方面的第六种可选的实现方式中,基于历史已结束的流程实例的路径信息,计算流程定义库中的流程定义中各服务的预估执行概率的方法具体可以包括:首 先,资源管理装置获取该流程定义的历史数据(包括该流程定义的历史流程实例的路 径信息和该流程定义的历史流程实例的上下文变量,流程定义的历史流程实例的路径 信息用于指示该流程定义的历史流程实例调用服务的顺序);其次,资源管理装置根 据该流程定义的历史流程实例的上下文变量,对该流程定义的历史流程实例的路径信 息进行分类;最后,对于同一类型的该流程定义的历史流程实例的路径信息,资源管 理装置计算该服务在同一类型的该流程定义的历史流程实例的路径信息中所占的比 例,并将比例设置为预估执行概率。
可见,若流程定义的历史数据包括该流程定义的历史流程实例的路径信息,资源管理装置只需要计算该服务在该流程定义的历史流程实例的路径信息中所占的比例 即可。若流程定义的历史数据包括该流程定义的历史流程实例的路径信息和该流程定 义的历史流程实例的上下文变量,资源管理装置需要先对该流程定义的历史流程实例 的路径信息进行分类;再以同一类型的该流程定义的历史流程实例的路径信息为单 位,计算该服务在同一类型的该流程定义的历史流程实例的路径信息中所占的比例。
在第一方面的第七种可选的实现方式中,第二服务的预估资源用量为第二服务的待处理任务数,或者运行第二服务的VM的内存使用率,或者运行第二服务的VM的 中央处理器CPU使用率。
第二方面,本发明实施例提供一种资源管理装置,该资源管理装置包括控制模块,执行模块和计算模块。所述控制模块,用于检测第一服务是否满足资源调整规则;所 述执行模块,用于在所述检测模块检测到第一服务满足资源调整规则后,确定当前时 刻调用所述第一服务的至少一个流程实例;所述计算模块,用于根据所述执行模块确 定的所述至少一个流程实例,计算第二服务的预估资源用量,其中,所述第二服务为 调用顺序在所述第一服务后的服务;所述控制模块,还用于基于所述计算模块计算的 所述预估资源用量确定对所述第二服务的资源分配。
在第二方面的第一种可选的实现方式中,执行模块,具体用于从流程定义库中找出需要调用第一服务的流程定义;其中,流程定义库中存储有至少一个流程定义,每 个流程定义中定义了执行该流程定义需调用的服务;获取需要调用第一服务的流程定 义正在运行的流程实例,从正在运行的流程实例中确定出正在调用第一服务的至少一 个流程实例。
在第二方面的第二种可选的实现方式中,计算模块,具体用于根据预先计算的流程定义中的各服务的预估执行概率,确定至少一个流程实例在调用第一服务后调用第 二服务的概率;预估执行概率是基于历史已结束的流程实例的路径信息计算得到的; 根据至少一个流程实例中每个流程实例调用第二服务的概率,计算第二服务的预估负 载比例;以及根据第二服务的预估负载比例,计算第二服务的预估资源用量。
在第二方面的第三种可选的实现方式中,计算模块,具体用于判断在调用所述第一服务的流程实例的流程定义中,在调用所述第一服务的活动后是否存在分支;若在 调用所述第一服务的活动后不存在分支,则将所述流程实例在调用所述第一服务后调 用所述第二服务的概率确定为1;若在调用所述第一服务的流程实例的流程定义中, 在调用所述第一服务的活动后存在分支,则判断所述第二服务是否位于所述分支上; 若所述第二服务不位于所述分支上,则将所述流程实例在调用所述第一服务后调用所 述第二服务的概率确定为1;若所述第二服务位于所述分支上,则将所述第二服务在 所述流程定义中的预估执行概率除以与所述第二服务所在分支连接同一决策点的所 有分支的预估执行概率之和,得到所述流程实例在调用所述第一服务后调用所述第二 服务的概率。
在第二方面的第四种可选的实现方式中,计算模块,还用于预先基于历史已结束的流程实例的路径信息,计算流程定义库中的流程定义中各服务的预估执行概率。
在第二方面的第五种可选的实现方式中,计算模块,具体用于获取该流程定义的历史数据,其中,历史数据包括该流程定义的历史流程实例的路径信息,流程定义的 历史流程实例的路径信息用于指示该流程定义的历史流程实例调用服务的顺序;以及 根据该流程定义的历史流程实例的路径信息,计算该服务在该流程定义的历史流程实 例的路径信息中所占的比例,并将比例设置为预估执行概率。
在第二方面的第六种可选的实现方式中,计算模块,具体用于获取该流程定义的历史数据,其中,历史数据包括该流程定义的历史流程实例的路径信息和该流程定义 的历史流程实例的上下文变量,流程定义的历史流程实例的路径信息用于指示该流程 定义的历史流程实例调用服务的顺序;根据该流程定义的历史流程实例的上下文变 量,对该流程定义的历史流程实例的路径信息进行分类;以及对于同一类型的该流程 定义的历史流程实例的路径信息,计算该服务在同一类型的该流程定义的历史流程实 例的路径信息中所占的比例,并将比例设置为预估执行概率。
在第二方面的第七种可选的实现方式中,第二服务的预估资源用量为第二服务的待处理任务数,或者运行第二服务的VM的内存使用率,或者运行第二服务的VM的 中央处理器CPU使用率。
本发明实施例第二方面及其各种实现方式的具体描述,可以参考第一方面及其各种实现方式中的详细描述;并且,第二方面及其各种实现方式的有益效果,可以参考 第一方面及其各种实现方式中的有益效果分析,此处不再赘述。
第三方面,本发明实施例还提供一种资源管理装置,包括存储器、处理器、通信 接口和系统总线;存储器、处理器和通信接口通过系统总线连接,存储器用于存储计 算机指令,处理器用于执行存储器存储的计算机指令,以使资源管理装置执行上述第 一方面或其任意一种可选的实现方式中的资源调整方法。
本发明实施例第三方面及其各种实现方式的具体描述,可以参考第一方面及其各种实现方式中的详细描述;并且,第三方面及其各种实现方式的有益效果,可以参考 第一方面及其各种实现方式中的有益效果分析,此处不再赘述。
第四方面,本发明实施例还提供一种软件产品,该软件产品包括实现资源调整方法的计算机指令。计算机指令可以存储在可读存储介质上;处理器可以从该可读存储 介质上读取到计算机指令并执行,使得处理器实现上述第一方面或其任意一种可选的 实现方式中的资源调整方法。
本发明实施例第四方面及其各种实现方式的具体描述,可以参考第一方面及其各种实现方式中的详细描述;并且,第四方面及其各种实现方式的有益效果,可以参考 第一方面及其各种实现方式中的有益效果分析,此处不再赘述。
在本发明实施例中,上述资源管理装置的名字对设备或功能模块本身不构成限定,在实际实现中,这些设备或功能模块可以以其他名称出现。只要各个设备或功能 模块的功能和本申请类似,属于本申请权利要求及其等同技术的范围之内。
本发明实施例的这些方面或其他方面在以下的描述中会更加简明易懂。
附图说明
图1为本发明实施例提供的一个公司为员工提供的差旅报价流程定义的示意图;
图2为本发明实施例提供的多个流程定义与其调用的服务的关系示意图;
图3为本发明实施例提供的多个VM之间的服务示意图;
图4为本发明实施例提供的一种网元结构的结构示意图;
图5为本发明实施例提供的资源管理装置计算至少一个流程定义调用的每个服务的预估执行概率的流程示意图一;
图6为本发明实施例提供的流程定义1的示意图;
图7为本发明实施例提供的流程定义1针对表1的调用的每个服务的预估执行概率示意图;
图8为本发明实施例提供的资源管理装置计算至少一个流程定义调用的每个服务的预估执行概率的流程示意图二;
图9为本发明实施例提供的流程定义1针对表2的调用的每个服务的预估执行概率示意图;
图10为本发明实施例提供的一种资源调整方法的流程示意图;
图11为本发明实施例提供的流程定义2的示意图;
图12为本发明实施例提供的流程定义2调用的每个服务的预估执行概率示意图;
图13为本发明实施例提供的流程定义1针对表1的在调用所述第一服务后调用 所述第二服务的概率示意图;
图14为本发明实施例提供的流程定义2在调用所述第一服务后调用所述第二服务的概率示意图;
图15为本发明实施例提供的流程定义1针对表2的在调用所述第一服务后调用 所述第二服务的概率示意图;
图16为本发明实施例提供的一种资源管理装置的结构示意图一;
图17为本发明实施例提供的一种资源管理装置的结构示意图二。
具体实施方式
本发明实施例提供的技术方案可以用于业务流程管理(Business ProcessManagement,BPM)系统中。其中,BPM系统包括业务流程的分析、定义、运行、 监控和优化等阶段。业务流程的每个任务或者步骤之间有严格的先后顺序限定,业务 流程的逻辑由流程定义描述,每个流程定义可以对应多个流程实例。其中,流程定义 可以用流程图来表示。
示例性的,图1所示的是一个公司为员工提供的差旅报价流程定义,其中,圆角 矩形表示流程定义的任务或者步骤(也可以被称为活动),菱形表示决策点,基于所 设条件决定流程路径的分流。当员工使用该差旅报价流程定义时,会触发该流程定义 的实例化,生成流程实例,每个流程定义可以有多个正在执行的流程实例。即服务器 在接收员工出差申请时,首先选择是否乘坐飞机,并针对员工的选择获取乘坐相应的 交通工具的价格,随后在获取出差目的地的各个酒店价格后,为员工返回最优价格。 流程实例可以包括流程实例的身份标识码(identity,ID)、令牌(token)信息、流程 实例的上下文变量(如员工的姓名、工号、所属部门、使用该差旅报价流程定义的日 期)等信息。其中,令牌信息用于指明当前正在被执行的任务或者步骤。
需要说明的是,流程定义中的每个任务或者步骤(即图1所示的圆角矩形)通过 调用与其对应的服务(如互联网(web)服务)来实现。其中,web服务是一种软件 系统,用以支持网络间不同机器的互动操作。同时,一个流程定义可以调用多个服务, 不同的流程定义可能会调用相同的服务。多个流程定义与其调用的服务的关系示意图 如图2所示。从图2中可以看出,流程定义1中的活动1和流程定义2中的活动1都 调用服务a,流程定义1中的活动3和流程定义2中的活动4都调用服务b,流程定 义1中的活动4和流程定义2中的活动2都调用服务c,流程定义1中的活动2和流 程定义2中的活动3都调用服务d,流程定义2中的活动5单独调用服务e。
当然,在流程定义中的活动调用服务时,可以采用但并不限于Web服务业务流程执行语言(The Web Services Business Process Execution Language,WS-BPEL)语言定义业务过程及各个活动和web服务的调用关系。WS-BPEL是基于web服务描述语言 (WebServices Description Language,WSDL)建立,WSDL负责描述Web服务的部 署路径、公共接口、具体操作和变量。WS-BPEL通过WSDL文件来调用服务以实现 业务流程。
进一步地,VM是通过软件模拟的、具有完整硬件系统功能的、运行在一个隔离 环境中的计算机系统。一个VM内的变动不会影响其他VM的运行环境。因此,BPM 系统可以部署在云计算系统中,流程定义中的活动调用的服务可以运行在VM中,每 个服务都可以对应一个或者多个VM。服务对外提供统一的调用路径,并通过负载均 衡器保证VM之间的负载均衡。多个VM之间的服务示意图如图3所示。VM的数量 也会随着服务所需的资源用量的变化而变化,这种调整过程被称为资源调整。
基于上述描述,本发明实施例提供一种资源调整方法,能够实时计算服务的预估资源用量,对服务的资源进行分配,从而保证了业务流程的性能。
具体的,本发明实施例提供的资源调整方法可以适用于下述网元结构中。如图4所示,网元结构可以包括流程设计客户端、流程定义仓库、用户客户端、执行模块、 计算模块、控制模块、历史数据存储器和管理客户端。需要说明的是,本发明实施例 提供的资源调整方法并不仅仅只适用于图4所示的网元结构,其他能够实现本发明实 施例提供的资源调整方法的网元结构(例如在图4所示的网元结构上做出一定修改得 到的新的网元结构:如将执行模块、计算模块和控制模块集成为处理模块,或者去除 流程设计客户端等)也属于本发明实施例的保护范围,本发明实施例对此不作具体限 制。
流程设计客户端:业务人员通过流程设计客户端采用流程描述语言(如WS-BPEL)设计流程定义,生成流程定义文件。
流程定义仓库:与流程设计客户端相连,所有流程定义文件被存储在流程定义仓库中。
用户客户端:用户在用户客户端操作可以触发流程定义的实例化,生成流程实例。
执行模块:与流程定义仓库和用户客户端均相连,执行模块主要由流程引擎构成,流程实例化时执行模块从流程定义仓库获取相应的流程定义文件,并根据流程定义调 用部署在VM中的服务。同时,执行模块还负责记录当前流程实例的运行态信息,包 括流程实例的ID、对应的流程定义ID、流程定义中的活动执行顺序、各个活动所调 用的服务信息、流程实例的令牌信息、流程实例的上下文变量等。
计算模块:与执行模块相连,包括运行服务的若干个VM和监控模块,监控模块 用于监控VM的运行状态。
控制模块:与流程定义仓库、执行模块和计算模块均相连,主要包括弹性伸缩组件和资源调度器,流程实例的执行信息通过控制模块存储到历史数据存储器中。
弹性伸缩组件:根据计算模块监控模块获得的VM运行状态触发资源调整流程, 并解析流程定义仓库中流程定义中暗含的服务调用顺序,结合当前流程实例的动态信 息、已结束流程实例的历史数据来确定关联服务的预估资源用量。当前序服务发生资 源调整时,用于对后续服务进行的相应的资源调整。其中,前序服务和后续服务是一 个相对的概念。一个流程定义可以按一定的顺序调用多个服务,如果服务一在服务二 之前被调用,那么在该流程定义中,服务一可以被称为服务二的前序服务,服务二可 以被称为服务一的后续服务。
资源调度器:为需要扩容的服务在计算模块上分配资源。
历史数据存储器:与控制模块相连,用于存储流程实例的运行日志等信息。
管理客户端:与控制模块相连,管理员可以通过管理客户端配置资源调整规则。
需要说明的是,本发明下述实施例提供的资源调整方法主要可以通过上述网元结构中的执行模块、计算模块和控制模块实现。具体实现过程将在下述实施例中进行详 细描述,为了简洁,此处不再赘述。
首先,图4所示的网元结构的流程定义仓库中存储了至少一个流程定义,且每个流程定义中定义了执行该流程定义需调用的服务。在执行本发明实施例提供的资源调 整方法前,资源管理装置可以预先基于历史已结束的流程实例的路径信息,计算流程 定义库中的流程定义中各服务的预估执行概率。具体的,以任意一个流程定义为例, 上述计算方法可以包括:
S100、资源管理装置预先基于历史已结束的流程实例的路径信息,计算流程定义库中的流程定义中各服务的预估执行概率。
需要说明的是,本发明实施例中提到的步骤S100是一个可独立执行的过程,其 目的是为了计算流程定义库中的流程定义中各服务的预估执行概率,以方便资源管理 装置对流程定义中各服务的预估执行概率的取用。当然,由于历史已结束的流程实例 的数据信息是不断增加的,本发明实施例中提到的步骤S100可以重复执行,例如资 源管理装置周期性地执行步骤S100,以保证流程定义中各服务的预估执行概率的准确 性。资源管理装置计算了所有流程定义中的每个流程定义调用的每个服务的预估执行 概率后,资源管理装置可以将预估执行概率存储在流程定义仓库中。当资源管理装置 在后续的过程中执行本发明实施例提供的资源调整方法,即资源管理装置需要使用某 一个流程定义调用的某个服务的预估执行概率(例如下述步骤S202a)时,资源管理 装置可以直接从流程定义仓库中获取到该服务的预估执行概率,以节省资源管理装置 计算预估执行概率的时间。
需要说明的是,流程定义仓库中存储有流程定义,每个流程定义可以通过实例化的方式创建流程实例来执行该流程定义。每个流程定义可实例化多个流程实例。资源 管理装置可以记录每个流程实例的运行状态信息,包括流程实例的ID、对应的流程定 义ID、流程定义中的活动执行顺序、各个活动所调用的服务信息、流程实例的令牌信 息、流程实例的上下文变量等。流程实例结束后,可将该流程实例的运行状态信息作 为该流程实例对应的流程定义的历史数据。其中,流程实例在流程定义中的活动执行 顺序,和/或,流程实例在执行过程中所调用的服务信息可作为表征该流程实例的执行 路径的路径信息。资源管理装置能够根据流程定义对应的历史已结束的流程实例的历 史数据,计算该流程定义调用的每个服务的预估执行概率。
具体的,在计算预估执行概率时,可根据该流程定义的历史数据中的各流程实例的路径信息来计算,也可以根据该流程定义的历史数据中的各流程实例的路径信息和 上下文变量来计算。
以根据该流程定义的历史流程实例的路径信息来计算预估执行概率为例,如图5所示,步骤S100可以包括步骤S100a和S100b:
S100a、资源管理装置获取该流程定义的历史数据,其中,历史数据中包括该流 程定义的历史流程实例的路径信息,流程定义的历史流程实例的路径信息用于指示该 流程定义的历史流程实例调用服务的顺序。
以图6所示的流程定义1为例,流程定义1的圆角矩形中的数字表示活动的序号,流程定义1的历史数据包括流程定义1的历史流程实例的路径信息,流程定义1的历 史流程实例的路径信息如表1所示:
表1
流程定义ID | 历史流程实例的ID | 路径信息 |
流程定义1 | 1-001 | 124679 |
流程定义1 | 1-002 | 135689 |
流程定义1 | 1-003 | 135679 |
流程定义1 | 1-004 | 124679 |
… | … | … |
S100b、资源管理装置根据该流程定义的历史流程实例的路径信息,计算该服务在该流程定义的历史流程实例的路径信息中所占的比例,并将比例设置为预估执行概 率。
从表1可以看出,流程定义1的历史流程实例的ID为1-001的路径信息是124679,即历史流程实例的ID为1-001在执行该流程定义1的第一个决策点时,选择执行活动 2和活动4,历史流程实例的ID为1-001在执行该流程定义1的第二个决策点时,选 择执行活动7。因此,根据表1中的流程定义1的历史数据,可以计算流程定义1调 用的每个服务的预估执行概率。具体的,资源管理装置计算流程定义1调用的每个服 务的预估执行概率的方法可以包括:对于流程定义1调用的每个服务,资源管理装置 都可以从流程定义1的历史流程实例的路径信息中,计算该服务在该流程定义的历史 流程实例的路径信息中所占的比例,并将比例设置为预估执行概率。例如,从表1中 可以看出,流程定义1的所有历史流程实例都执行了活动1,则活动1的预估执行概 率为1。
图7所示为流程定义1针对表1的调用的每个服务的预估执行概率示意图,其中,流程定义1的圆角矩形上方的数字表示该圆角矩形中的数字表示的活动所对应的服务 的预估执行概率。即流程定义1的历史数据中60%的流程实例在第一个决策点后执行 活动2和活动4、40%的流程实例在第一个决策点后执行活动3和活动5,在第二个决 策点后执行活动7和活动8的流程实例各占50%。
以根据该流程定义的历史流程实例的路径信息和该流程定义的历史流程实例的上下文变量来计算预估执行概率为例,如图8所示,步骤S100可以包括步骤 S100c-S100e:
S100c、资源管理装置获取该流程定义的历史数据,其中,历史数据中包括该流 程定义的历史流程实例的路径信息和该流程定义的历史流程实例的上下文变量,流程 定义的历史流程实例的路径信息用于指示该流程定义的历史流程实例调用服务的顺 序。
仍旧以流程定义1为例,流程定义1的历史数据包括流程定义1的历史流程实例 的路径信息和流程定义1的历史流程实例的上下文变量(如用户类型和商品类型), 流程定义1的历史流程实例的路径信息和历史流程实例的上下文变量如表2所示:
表2
S100d、资源管理装置根据该流程定义的历史流程实例的上下文变量,对该流程定义的历史流程实例的路径信息进行分类。
从表2可以看出,流程定义1的历史流程实例的ID为1-001的路径信息是124679,即历史流程实例的ID为1-001在执行该流程定义1的第一个决策点时,选择执行活动 2和活动4,历史流程实例的ID为1-001在执行该流程定义1的第二个决策点时,选 择执行活动7,且历史流程实例的ID为1-001的用户类型为高级会员,商品类型为服 务类。流程定义1的历史流程实例的ID为1-002的路径信息是135689,即历史流程 实例的ID为1-002在执行该流程定义1的第一个决策点时,选择执行活动3和活动4, 历史流程实例的ID为1-002在执行该流程定义1的第二个决策点时,选择执行活动8, 且历史流程实例的ID为1-002的用户类型为普通会员,商品类型为实物类。因此,根 据表2中的流程定义1的历史数据,可以计算流程定义1调用的每个服务的预估执行 概率。具体的,资源管理装置计算流程定义1调用的每个服务的预估执行概率的方法 可以包括:对于流程定义1调用的每个服务,资源管理装置可以先按照用户类型和商 品类型对该活动进行分类,再从同一类型的历史流程实例的路径信息中,计算该服务 在同一类型的该流程定义的历史流程实例的路径信息中所占的比例,并将比例设置为 预估执行概率。
S100e、对于同一类型的该流程定义的历史流程实例的路径信息,资源管理装置计算该服务在同一类型的该流程定义的历史流程实例的路径信息中所占的比例,并将 比例设置为预估执行概率。
图9所示为流程定义1针对表2的调用的每个服务的预估执行概率示意图,其中,流程定义1的圆角矩形上方的数字表示该圆角矩形中的数字表示的活动所对应的服务 的预估执行概率。即流程定义1可以根据用户类型与商品类型对该流程定义的历史流 程实例的路径信息进行分类。对于用户类型为高级会员,商品类型为服务类的流程定 义1的历史流程实例,历史数据中60%的流程实例在第一个决策点后执行活动2和活 动4、40%的流程实例在第一个决策点后执行活动3和活动5,30%的流程实例在第二 个决策点后执行活动7、70%的流程实例在第二个决策点后执行活动8。对于用户类型 为普通会员,商品类型为实物类的流程定义1的历史流程实例,历史数据中50%的流 程实例在第一个决策点后执行活动2和活动4、50%的流程实例在第一个决策点后执 行活动3和活动5,80%的流程实例在第二个决策点后执行活动7、20%的流程实例在 第二个决策点后执行活动8。
需要说明的是,对于流程定义1的历史数据包括流程定义1的历史流程实例的路径信息和流程定义1的历史流程实例的上下文变量的情况,由于在计算流程定义1调 用的每个服务的预估执行概率时根据上下文变量的不同分类,计算得出了不同的流程 定义1调用的每个服务的预估执行概率,因此能够满足用户的个性化设置。
需要补充的是,本发明实施例中提到的流程定义1的历史数据可以是某个时间段内的历史数据,也可以是存储的所有的历史数据,本发明实施例对此不作具体限制。
如图5和图8所示,资源管理装置计算出流程定义库中的流程定义中各服务的预估执行概率可以使用在下述实施例所描述的资源调整方法中。
本发明实施例提供一种资源调整方法,如图10所示,该方法包括步骤S201-S203:
S201、资源管理装置在检测到第一服务满足资源调整规则后,确定当前时刻调用第一服务的至少一个流程实例。
以流程定义1中的服务b为例,服务b的资源调整规则为“服务b的每个VM的 待处理任务数上限为80个任务,当服务b的各个VM的平均待处理任务超过该上限 值时需要对服务b进行扩容操作,每次扩容增加一个VM”。若当前时刻服务b只有1 个VM,且当前时刻待处理任务数为100个,则可以认为服务b满足资源调整规则。 从而资源管理装置可以对服务b扩容,例如可以为服务b增加一个VM。
需要说明的是,服务b的资源调整规则还可以使用其他性能指标定义触发条件,如服务b的VM的内存使用率或者服务b的VM的中央处理器(Central Processing Unit,CPU)使用率,本发明实施例对此不作具体限制。
具体的,步骤S201可以包括S201a和S201b:
S201a、资源管理装置在检测到第一服务满足资源调整规则后,从流程定义库中找出需要调用第一服务的流程定义。
其中,流程定义库中存储有至少一个流程定义,每个流程定义中定义了执行该流程定义需调用的服务。假设流程定义文件用WS-BPEL语言描述,流程定义1的部分 内容如下。
需要说明的是,本申请也可用于除WS-BPEL之外的其他流程定义语言。
由于资源管理装置内存储有至少一个流程定义,且每个流程定义可以有至少一个流程实例被实例化,因此当前时刻可能存在不止一个流程实例在调用服务b,因此, 资源管理装置需要找出所有正在调用服务b的流程实例。
具体的,以WS-BPEL语言描述的流程定义1为例,资源管理装置首先通过匹配“service-b.wsdl”字段确定服务b的namespace ID,例如“http://service/service-b/”。然后 在描述活动和服务的映射关系的“partnerLinks”字段匹配该namespace ID,确定映射关 系“call_service-b”中包含了namespace ID。这样就可以确定有哪些流程定义需要调用 服务b,返回流程定义ID。
S201b、资源管理装置获取需要调用第一服务的流程定义正在运行的流程实例,从正在运行的流程实例中确定出正在调用第一服务的至少一个流程实例。
返回流程定义ID后,资源管理装置再根据确定出来的流程定义ID,获取这些流 程定义ID正在实例化的流程实例。这里假设需要调用服务b的流程实例有流程实例1、 流程实例2、流程实例3、……、流程实例n。需要强调的是本发明实施例也可用除 WS-BPEL之外的其他流程定义语言。随后,资源管理装置再从流程实例1、流程实例 2和流程实例3中选择正在调用服务b的流程实例,可以根据流程实例中的令牌信息 所指向的活动(对应于上述WS-BPEL文件中的invoke partnerLink字段),确定 partnerLink的ID,然后进一步根据该partnerLink的定义确定该服务的namespace ID, 根据namespace的描述可以解析正在调用的服务ID(即WSDL文件的名称)。这里 假设40个流程实例1和60个流程实例2正在调用服务b,流程实例1对应流程定义 1,流程实例2对应流程定义2,为了保证流程实例1和流程实例2中的后续活动能够 顺利执行,可以对流程实例1和流程实例2中的后续活动所对应的服务进行提前扩容。
S202、资源管理装置根据至少一个流程实例,计算第二服务的预估资源用量,其中,第二服务为调用顺序在第一服务后的服务。
其中,第二服务的预估资源用量为第二服务的待处理任务数,或者第二服务的 VM的内存使用率,或者第二服务的VM的中央处理器CPU使用率。
具体的,步骤S202可以包括S202a-S202c:
S202a、资源管理装置根据预先计算的流程定义中的各服务的预估执行概率,确定至少一个流程实例在调用第一服务后调用第二服务的概率。
预估执行概率是基于历史已结束的流程实例的路径信息计算得到的。
具体的,在步骤S100中,资源管理装置已经计算了所有流程定义中的每个流程 定义调用的每个服务的预估执行概率,并将所有流程定义中的每个流程定义调用的每 个服务的预估执行概率存储在流程定义仓库中。因此,在步骤S202a中,资源管理装 置只需要直接从流程定义仓库获取至少一个流程实例中的每个流程实例对应的流程 定义调用的每个服务的预估执行概率即可。
示例性的,以图7所示的流程定义1针对表1的调用的每个服务的预估执行概率 示意图可知,若资源管理装置需要获取服务h的预估执行概率,资源管理装置只需要 直接读取服务h的预估执行概率即可,即服务h的预估执行概率为0.5。
需要说明的是,资源管理装置根据预先计算的流程定义中的各服务的预估执行概率,确定至少一个流程实例在调用第一服务后调用第二服务的概率的方法具体可以包 括:步骤a、资源管理装置判断在调用第一服务的流程实例的流程定义中,在调用第 一服务的活动后是否存在分支;步骤b、若在调用第一服务的活动后不存在分支,则 资源管理装置将所述流程实例在调用所述第一服务后调用所述第二服务的概率确定 为1;步骤c、若在调用第一服务的活动后存在分支,则资源管理装置判断第二服务 是否位于该分支上;步骤d、若第二服务不位于该分支上,则资源管理装置将所述流 程实例在调用所述第一服务后调用所述第二服务的概率确定为1;步骤e、若第二服 务位于该分支上,则资源管理装置将所述第二服务在所述流程定义中的预估执行概率 除以与所述第二服务所在分支连接同一决策点的所有分支的预估执行概率之和,得到 所述流程实例在调用所述第一服务后调用所述第二服务的概率。其中,步骤b和步骤 c为并列的步骤,步骤d和步骤e为步骤c的后续步骤,且步骤d和步骤e为并列的 步骤。即在确定至少一个流程实例在调用第一服务后调用第二服务的概率时,若执行 了步骤b,则步骤c、步骤d和步骤e不执行;若执行了步骤c,则还需执行后续步骤 d和步骤e中的其中一个步骤,本发明实施例对此不作具体限制。
S202b、资源管理装置根据至少一个流程实例中每个流程实例调用第二服务的概率,计算第二服务的预估负载比例。
S202c、资源管理装置根据第二服务的预估负载比例,计算第二服务的预估资源用量。
下面,将结合具体实施例对步骤S202b和S202c进行解释。
具体的,对于步骤S202a,资源管理装置可以先判断需要调用第一服务的流程定义中是否存在分支:若需要调用第一服务的流程定义中存在分支,则资源管理装置根 据预先计算的流程定义中的各服务的预估执行概率,计算至少一个流程实例在调用第 一服务后调用第二服务的概率;若需要调用第一服务的流程定义中不存在分支,则资 源管理装置将预先计算的流程定义中的各服务的预估执行概率设置为至少一个流程 实例在调用第一服务后调用第二服务的概率。
示例性的,以服务h为例,流程实例1和流程实例2均需要调用服务h,服务h 在服务b后被调用,且流程实例1对应流程定义1,流程实例2对应流程定义2,流 程定义1和流程定义2中均存在分支。流程定义1如图6所示,流程定义2如图11 所示,流程定义2调用的每个服务的预估执行概率示意图如图12所示。
示例性一,以流程定义1调用的每个服务的预估执行概率示意图如图7所示,流 程定义2调用的每个服务的预估执行概率示意图如图12所示,流程定义1和流程定 义2分别有40个流程实例和60个流程实例正在调用服务b为例,对资源管理装置计 算服务h的预估负载比例进行说明:
对于流程定义1,如图13所示,流程定义1中调用服务b的是活动2,根据步骤 S202a中的计算方法,计算得到流程定义1在调用第一服务后调用后续其它服务的概 率如下:即活动2后第一个决策点之前的活动4被调用的概率从静态的预估执行概率 0.4变为1,第二个决策点之后的活动7、活动8和活动9被调用的概率与预估执行概 率一直。在此步骤中流程实例1的活动4的执行概率更新为1,活动6的预估执行概 率仍为1,活动7的预估执行概率仍为0.5,活动8的预估执行概率仍为0.5,活动9 的预估执行概率仍为1。由于流程定义1中有40个流程实例正在调用服务b,流程定 义1中调用服务h的是活动8,因此,服务h在流程定义1中的预估累计调用率为 40*0.5=20。
对于流程定义2,如图14所示,流程定义2中调用服务b的是活动3,因此可以 根据流程定义2调用的每个服务的预估执行概率,计算得到流程定义2在调用第一服 务后调用第二服务的概率。即活动3之后不存在决策点,那么后续活动5的预估执行 概率从0.4变为1。在此步骤中流程实例2的活动5的预估执行概率更新为1,活动6 的预估执行概率仍为1。由于流程定义2中有60个流程实例正在调用服务b,流程定 义2中调用服务h的是活动6,因此,服务h在流程定义2中的预估累计调用率为 60*1=60。
因此可以得出,服务h在流程定义1和流程定义2中的预估累计调用率的和为 60+20=80。服务h的预估负载比例为80/100=0.8。服务h的预估资源用量为80。
示例性二,以流程定义1调用的每个服务的预估执行概率示意图如图8所示,流 程定义2调用的每个服务的预估执行概率示意图如图12所示,流程定义1和流程定 义2各有40个流程实例(20个流程实例的上下文变量为用户类型为普通会员、商品 类型为实物类,20个流程实例的上下文变量为用户类型为高级会员、商品类型为服务 类)和60个流程实例正在调用服务b为例,对资源管理装置计算服务h的预估负载 比例进行说明:
对于流程定义1,如图15所示,流程定义1中调用服务b的是活动2,因此可以 根据流程定义1调用的每个服务的预估执行概率,计算得到流程定义1在调用第一服 务后调用第二服务的概率。即活动2后第一个决策点之前的活动4的预估执行概率从 0.4变为1,第二个决策点之后的活动7、活动8和活动9的预估执行概率保持不变。 在此步骤中流程实例1的活动4的预估执行概率更新为1,其余活动的概率不变。由 于流程定义1中有40个流程实例正在调用服务b,且其中20个流程实例的上下文变 量为用户类型为普通会员、商品类型为实物类,20个流程实例的上下文变量为用户类 型为高级会员、商品类型为服务类,流程定义1中调用服务h的是活动8,因此,服 务h在流程定义1中的预估累计调用率为20*0.2+20*0.7=18。
对于流程定义2,如图14所示,流程定义2中调用服务b的是活动3,因此可以 根据流程定义2调用的每个服务的预估执行概率,计算得到流程定义2在调用第一服 务后调用第二服务的概率。即活动3之后不存在决策点,那么后续活动5的预估执行 概率从0.4变为1。在此步骤中流程实例2的活动5的预估执行概率更新为1,活动6 的预估执行概率仍为1。由于流程定义2中有60个流程实例正在调用服务b,流程定 义2中调用服务h的是活动6,因此,服务h在流程定义1中的预估累计调用率为 60*1=60。
因此可以得出,服务h在流程定义1和流程定义2中的预估累计调用率的和为 60+18=78。服务h的预估负载比例为78/100=0.78。服务h的预估资源用量为78。
S203、资源管理装置基于预估资源用量确定对第二服务的资源分配。
需要说明的是,本发明实施例提到的资源管理装置基于预估资源用量确定对第二服务的资源分配的方法具体可以包括:资源管理装置为第二服务增加VM,或者资源 管理装置为第二服务增加单个VM的配额,资源管理装置为第二服务减少VM,或者 资源管理装置为第二服务减少单个VM的配额,或者其他能够满足第二服务的资源分 配方式,本发明实施例对此不做限制。为了便于理解,本发明实施例中是以资源管理 装置为第二服务增加VM为例进行说明的。
示例性一,若服务h的资源调整规则为“服务h的每个VM的待处理任务数上限 为70个任务,当服务h的各个VM的平均待处理任务超过该上限值时需要对服务h 进行扩容操作,每次扩容增加一个VM”。若当前时刻服务h只有1个VM,且服务h 的预估资源用量为80个,则服务h满足资源调整规则。从而资源管理装置为服务h 增加一个VM。
示例性二,若服务h的资源调整规则为“服务h的每个VM的待处理任务数上限 为80个任务,当服务h的各个VM的平均待处理任务超过该上限值时需要对服务h 进行扩容操作,每次扩容增加一个VM”。若当前时刻服务h只有1个VM,且服务h 的预估资源用量为70个,则服务h不满足资源调整规则。资源管理装置维持服务h 现有的VM个数不变。
需要说明的是,从而服务h的资源调整规则同样可以使用其他性能指标定义触发条件,本发明实施例对此不作具体限制。
本发明实施例提供一种资源调整方法,通过资源管理装置在检测到第一服务满足资源调整规则后,确定当前时刻调用第一服务的至少一个流程实例;资源管理装置根 据至少一个流程实例,计算第二服务的预估资源用量,其中,第二服务为调用顺序在 第一服务后的服务;资源管理装置基于预估资源用量确定对第二服务的资源分配。基 于上述实施例的描述,资源管理装置能够计算第二服务的预估资源用量,并根据计算 出的第二服务的预估资源用量判断资源管理装置是否需要为第二服务调整资源配额。 因此,与现有技术相比,本发明实施例提供的资源调整方法能够实时计算服务的预估 资源用量,对服务的资源进行分配,从而保证了业务流程的性能。
本发明实施例提供一种资源管理装置,该资源管理装置用于执行以上资源调整方法中的资源管理装置所执行的步骤。本发明实施例提供的资源管理装置可以包括相应 步骤所对应的模块。
本发明实施例可以根据上述方法示例对资源管理装置进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一 个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模 块的形式实现。本发明实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分, 实际实现时可以有另外的划分方式。
在采用对应各个功能划分各个功能模块的情况下,图16示出了上述实施例中所涉及的资源管理装置的一种可能的结构示意图。如图16所示,资源管理装置包括控 制模块10,执行模块11和计算模块12。控制模块10用于支持该资源管理装置检测 第一服务是否满足资源调整规则,支持该资源管理装置执行图10中的S203,和/或用 于本文所描述的技术的其它过程;执行模块11用于支持该资源管理装置执行图10中 的S201,和/或用于本文所描述的技术的其它过程;计算模块12用于支持该资源管理 装置执行图5、图6和图9中的S100,以及图10中的S202,和/或用于本文所描述的 技术的其它过程。其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到 对应功能模块的功能描述,在此不再赘述。进一步地,该资源管理装置还可以包括存 储模块13,用于存储上述实施例提到的预估执行概率。
在采用集成的单元的情况下,图16中的控制模块10,执行模块11和计算模块 12可以集成为一个处理器或控制器,例如可以是中央处理器(Central Processing Unit,CPU),数字信号处理器(Digital Signal Processor,DSP)。其可以实现或执行结合 本发明实施例公开内容所描述的各种示例性的逻辑方框,模块和电路。存储模块13 可以是存储器。
当控制模块10,执行模块11和计算模块12集成为一个处理器或控制器,存储模 块13为存储器时,本发明实施例所涉及的资源管理装置可以为图17所示的资源管理 装置。
如图17所示,该资源管理装置可以包括:通信接口20、处理器21和存储器22。 其中,通信接口20、处理器21与存储器22之间通过系统总线23连接,并完成相互 间通信。
当资源管理装置运行时,该资源管理装置执行如图10所示的实施例的资源调整方法。具体的资源调整方法可参见上述如图10所示的实施例中的相关描述,此处不 再赘述。
其中,通信接口20用于与其他设备通信;或者与通信网络,如以太网,无线局 域网络(Wireless Local Area Networks,WLAN)等通信。
其中,存储器22可用于存储软件程序以及应用模块,处理器21通过运行存储在 存储器22的软件程序以及应用模块,从而执行资源管理装置的各种功能应用以及数 据处理。
存储器22可主要包括存储程序区220和存储数据区221,其中,存储程序区220 可存储操作系统、至少一个功能所需的应用程序等;存储数据区221可存储上述实施 例提到的预估执行概率以及资源管理装置的相关数据。
其中,存储器22可以是只读存储器(Read-only Memory,ROM),或可存储静态 信息和指令的其他类型的静态存储设备,随机存取存储器(Random Access Memory, RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只 读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、磁盘 存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的 期望的程序代码并能够由资源管理装置存取的任何其他介质,但不限于此。
存储器22可以是独立存在,通过系统总线23与处理器21相连接。存储器22也 可以和处理器21集成在一起。
处理器21是资源管理装置的控制中心。处理器21利用各种接口和线路连接整个资源管理装置的各个部分,通过运行或执行存储在存储器22内的软件程序和/或应用 模块,以及调用存储在存储器22内的数据,执行资源管理装置的各种功能和处理数 据,从而对资源管理装置进行整体监控。
在具体实现中,作为一种实施例,处理器21可以包括一个或多个CPU,例如图 17中的处理器21包括CPU 0和CPU 1。由于CPU 1可以是可选的,因此图17中以 虚线框表示CPU1。
系统总线23可以分为地址总线、数据总线、控制总线等。本发明实施例中为了 清楚说明,在图17中将各种总线都示意为系统总线23。
本发明实施例提供一种资源管理装置,基于上述实施例的描述,资源管理装置能够计算第二服务的预估资源用量,并根据计算出的第二服务的预估资源用量判断资源 管理装置是否需要为第二服务调整资源配额。因此,与现有技术相比,本发明实施例 提供的资源调整方法能够实时计算服务的预估资源用量,对服务的资源进行分配,从 而保证了业务流程的性能。
本发明实施例还提供一种软件产品,该软件产品包括实现资源调整方法的计算机指令。计算机指令可以存储在可读存储介质上;处理器可以从该可读存储介质上读取 到计算机指令并执行,使得处理器实现如上述方法实施例描述的资源调整方法。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功 能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或 者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施 例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块 或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如 多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执 行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些 接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到 多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例 方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成 的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技 术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以 以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指 令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理 器(processor)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介 质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储 器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介 质。
以上所述,仅为本发明实施例的具体实施方式,但本发明实施例的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明实施例揭露的技术范围内,可轻 易想到变化或替换,都应涵盖在本发明实施例的保护范围之内。因此,本发明实施例 的保护范围应所述以权利要求的保护范围为准。
Claims (12)
1.一种资源调整方法,其特征在于,包括:
资源管理装置在检测到第一服务满足资源调整规则后,确定当前时刻调用所述第一服务的至少一个流程实例;
所述资源管理装置根据所述至少一个流程实例,计算第二服务的预估资源用量,其中,所述第二服务为调用顺序在所述第一服务后的服务;
所述资源管理装置基于所述预估资源用量确定对所述第二服务的资源分配;
所述方法还包括:
预先基于历史已结束的流程实例的路径信息,计算流程定义库中的流程定义中各服务的预估执行概率;
其中,所述资源管理装置根据所述至少一个流程实例,计算第二服务的预估资源用量具体包括:
所述资源管理装置根据预先计算的流程定义中的各服务的预估执行概率,确定所述至少一个流程实例在调用所述第一服务后调用所述第二服务的概率;所述预估执行概率是基于历史已结束的流程实例的路径信息计算得到的;
所述资源管理装置根据所述至少一个流程实例中每个流程实例调用所述第二服务的概率,计算所述第二服务的预估负载比例;
所述资源管理装置根据所述第二服务的预估负载比例,计算所述第二服务的预估资源用量。
2.根据权利要求1所述的资源调整方法,其特征在于,所述确定当前时刻调用所述第一服务的至少一个流程实例,具体包括:
所述资源管理装置从流程定义库中找出需要调用所述第一服务的流程定义;其中,所述流程定义库中存储有至少一个流程定义,每个流程定义中定义了执行该流程定义需调用的服务;
所述资源管理装置获取所述需要调用所述第一服务的流程定义正在运行的流程实例,从所述正在运行的流程实例中确定出正在调用所述第一服务的所述至少一个流程实例。
3.根据权利要求1所述的资源调整方法,其特征在于,所述资源管理装置根据预先计算的流程定义中的各服务的预估执行概率,确定所述至少一个流程实例在调用所述第一服务后调用所述第二服务的概率,具体包括:
所述资源管理装置判断在调用所述第一服务的流程实例的流程定义中,在调用所述第一服务的活动后是否存在分支;
若在调用所述第一服务的活动后不存在分支,则所述资源管理装置将所述流程实例在调用所述第一服务后调用所述第二服务的概率确定为1;
若在调用所述第一服务的活动后存在分支,则所述资源管理装置判断所述第二服务是否位于所述分支上;
若所述第二服务不位于所述分支上,则所述资源管理装置将所述流程实例在调用所述第一服务后调用所述第二服务的概率确定为1;
若所述第二服务位于所述分支上,则所述资源管理装置将所述第二服务在所述流程定义中的预估执行概率除以与所述第二服务所在分支连接同一决策点的所有分支的预估执行概率之和,得到所述流程实例在调用所述第一服务后调用所述第二服务的概率。
4.根据权利要求1所述的资源调整方法,其特征在于,所述基于历史已结束的流程实例的路径信息,计算流程定义库中的流程定义中各服务的预估执行概率,具体包括:
所述资源管理装置获取该流程定义的历史数据,其中,所述历史数据包括该流程定义的历史流程实例的路径信息,所述流程定义的历史流程实例的路径信息用于指示该流程定义的历史流程实例调用服务的顺序;
所述资源管理装置根据该流程定义的历史流程实例的路径信息,计算该服务在该流程定义的历史流程实例的路径信息中所占的比例,并将所述比例设置为预估执行概率。
5.根据权利要求1所述的资源调整方法,其特征在于,所述基于历史已结束的流程实例的路径信息,计算流程定义库中的流程定义中各服务的预估执行概率,具体包括:
所述资源管理装置获取该流程定义的历史数据,其中,所述历史数据包括该流程定义的历史流程实例的路径信息和该流程定义的历史流程实例的上下文变量,所述流程定义的历史流程实例的路径信息用于指示该流程定义的历史流程实例调用服务的顺序;
所述资源管理装置根据该流程定义的历史流程实例的上下文变量,对该流程定义的历史流程实例的路径信息进行分类;
对于同一类型的该流程定义的历史流程实例的路径信息,所述资源管理装置计算该服务在所述同一类型的该流程定义的历史流程实例的路径信息中所占的比例,并将所述比例设置为预估执行概率。
6.根据权利要求1-5中任意一项所述的资源调整方法,其特征在于,所述第二服务的预估资源用量为所述第二服务的待处理任务数,或者运行所述第二服务的VM的内存使用率,或者运行所述第二服务的VM的中央处理器CPU使用率。
7.一种资源管理装置,其特征在于,所述资源管理装置包括控制模块,执行模块和计算模块;
所述控制模块,用于检测第一服务是否满足资源调整规则;
所述执行模块,用于在所述检测模块检测到第一服务满足资源调整规则后,确定当前时刻调用所述第一服务的至少一个流程实例;
所述计算模块,用于根据所述执行模块确定的所述至少一个流程实例,计算第二服务的预估资源用量,其中,所述第二服务为调用顺序在所述第一服务后的服务;
所述控制模块,还用于基于所述计算模块计算的所述预估资源用量确定对所述第二服务的资源分配;
所述计算模块,还用于预先基于历史已结束的流程实例的路径信息,计算流程定义库中的流程定义中各服务的预估执行概率;
其中,所述计算模块根据所述执行模块确定的所述至少一个流程实例,计算第二服务的预估资源用量,具体用于根据预先计算的流程定义中的各服务的预估执行概率,确定所述至少一个流程实例在调用所述第一服务后调用所述第二服务的概率;所述预估执行概率是基于历史已结束的流程实例的路径信息计算得到的;
所述资源管理装置根据所述至少一个流程实例中每个流程实例调用所述第二服务的概率,计算所述第二服务的预估负载比例;
所述资源管理装置根据所述第二服务的预估负载比例,计算所述第二服务的预估资源用量。
8.根据权利要求7所述的资源管理装置,其特征在于,
所述执行模块,具体用于从流程定义库中找出需要调用所述第一服务的流程定义;其中,所述流程定义库中存储有至少一个流程定义,每个流程定义中定义了执行该流程定义需调用的服务;以及获取所述需要调用所述第一服务的流程定义正在运行的流程实例,从所述正在运行的流程实例中确定出正在调用所述第一服务的所述至少一个流程实例。
9.根据权利要求7所述的资源管理装置,其特征在于,
所述计算模块,具体用于判断在调用所述第一服务的流程实例的流程定义中,在调用所述第一服务的活动后是否存在分支;若在调用所述第一服务的活动后不存在分支,则将所述流程实例在调用所述第一服务后调用所述第二服务的概率确定为1;若在调用所述第一服务的活动后存在分支,则判断所述第二服务是否位于所述分支上;若所述第二服务不位于所述分支上,则将所述流程实例在调用所述第一服务后调用所述第二服务的概率确定为1;若所述第二服务位于所述分支上,则将所述第二服务在所述流程定义中的预估执行概率除以与所述第二服务所在分支连接同一决策点的所有分支的预估执行概率之和,得到所述流程实例在调用所述第一服务后调用所述第二服务的概率。
10.根据权利要求7所述的资源管理装置,其特征在于,
所述计算模块,具体用于获取该流程定义的历史数据,其中,所述历史数据包括该流程定义的历史流程实例的路径信息,所述流程定义的历史流程实例的路径信息用于指示该流程定义的历史流程实例调用服务的顺序;以及根据该流程定义的历史流程实例的路径信息,计算该服务在该流程定义的历史流程实例的路径信息中所占的比例,并将所述比例设置为预估执行概率。
11.根据权利要求7所述的资源管理装置,其特征在于,
所述计算模块,具体用于获取该流程定义的历史数据,其中,所述历史数据包括该流程定义的历史流程实例的路径信息和该流程定义的历史流程实例的上下文变量,所述流程定义的历史流程实例的路径信息用于指示该流程定义的历史流程实例调用服务的顺序;根据该流程定义的历史流程实例的上下文变量,对该流程定义的历史流程实例的路径信息进行分类;以及对于同一类型的该流程定义的历史流程实例的路径信息,计算该服务在所述同一类型的该流程定义的历史流程实例的路径信息中所占的比例,并将所述比例设置为预估执行概率。
12.根据权利要求7-11中任意一项所述的资源管理装置,其特征在于,所述第二服务的预估资源用量为所述第二服务的待处理任务数,或者运行所述第二服务的VM的内存使用率,或者运行所述第二服务的VM的中央处理器CPU使用率。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710133962.8A CN108536533B (zh) | 2017-03-06 | 2017-03-06 | 一种资源调整方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710133962.8A CN108536533B (zh) | 2017-03-06 | 2017-03-06 | 一种资源调整方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108536533A CN108536533A (zh) | 2018-09-14 |
CN108536533B true CN108536533B (zh) | 2021-02-12 |
Family
ID=63489676
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710133962.8A Active CN108536533B (zh) | 2017-03-06 | 2017-03-06 | 一种资源调整方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108536533B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112016795A (zh) * | 2020-07-15 | 2020-12-01 | 北京淇瑀信息科技有限公司 | 一种并行资源配额调整方法、装置及系统 |
CN112437132B (zh) * | 2020-11-11 | 2021-09-24 | 重庆南华中天信息技术有限公司 | 基于云计算和数字化升级的业务资源共享方法及云服务器 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101202765A (zh) * | 2007-12-19 | 2008-06-18 | 苏州大学 | 一种基于历史反馈的服务网格调度方法 |
JP2008203934A (ja) * | 2007-02-16 | 2008-09-04 | Nec Corp | 分散ワークフローシミュレーションシステム、方法、及び、プログラム |
CN101719082A (zh) * | 2009-12-24 | 2010-06-02 | 中国科学院计算技术研究所 | 虚拟化计算平台中应用请求调度的方法及其系统 |
CN101741850A (zh) * | 2009-12-25 | 2010-06-16 | 北京邮电大学 | 面向混合网络服务的多任务并发执行系统及方法 |
CN104283946A (zh) * | 2014-09-26 | 2015-01-14 | 东北大学 | 一种单物理机下多虚拟机的资源自适应调整系统及方法 |
-
2017
- 2017-03-06 CN CN201710133962.8A patent/CN108536533B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008203934A (ja) * | 2007-02-16 | 2008-09-04 | Nec Corp | 分散ワークフローシミュレーションシステム、方法、及び、プログラム |
CN101202765A (zh) * | 2007-12-19 | 2008-06-18 | 苏州大学 | 一种基于历史反馈的服务网格调度方法 |
CN101719082A (zh) * | 2009-12-24 | 2010-06-02 | 中国科学院计算技术研究所 | 虚拟化计算平台中应用请求调度的方法及其系统 |
CN101741850A (zh) * | 2009-12-25 | 2010-06-16 | 北京邮电大学 | 面向混合网络服务的多任务并发执行系统及方法 |
CN104283946A (zh) * | 2014-09-26 | 2015-01-14 | 东北大学 | 一种单物理机下多虚拟机的资源自适应调整系统及方法 |
Non-Patent Citations (1)
Title |
---|
云环境中SBS应用的动态资源调度方法研究;张涛;《中国优秀硕士学位论文全文数据库信息科技辑》;20140715;第2.3.1,3.3.1,5.1-5.2节 * |
Also Published As
Publication number | Publication date |
---|---|
CN108536533A (zh) | 2018-09-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10999216B2 (en) | Resource allocation and provisioning in a multi-tier edge-cloud virtualization environment | |
CN104657194B (zh) | 用于计算网络中动作的影响的方法和系统 | |
US20140143773A1 (en) | Method and system for running a virtual appliance | |
da Rosa Righi et al. | Enhancing performance of IoT applications with load prediction and cloud elasticity | |
US11171825B2 (en) | Context-based resource allocation with extended user concepts | |
US20210034278A1 (en) | Storage resource capacity prediction utilizing a plurality of time series forecasting models | |
AU2019201625A1 (en) | Elastic storage volume type selection and optimization engine for public cloud environments | |
US10956541B2 (en) | Dynamic optimization of software license allocation using machine learning-based user clustering | |
CN108536533B (zh) | 一种资源调整方法及装置 | |
CN114911598A (zh) | 任务调度方法、装置、设备以及存储介质 | |
US20190253488A1 (en) | Transaction process management by dynamic transaction aggregation | |
US20160006612A1 (en) | Server virtualization | |
CN112202617A (zh) | 资源管理系统监控方法、装置、计算机设备和存储介质 | |
JP2013109653A (ja) | インターネット経由で試用されるアプリケーションソフトウェアのトライアル環境システムおよび営業支援システム | |
CN106293890B (zh) | 一种基于复杂度的业务处理方法和装置 | |
US11256598B2 (en) | Automated selection of performance monitors | |
US11003431B2 (en) | Generating predictive metrics for virtualized deployments | |
US20210298033A1 (en) | Priority Control Method and Data Processing System | |
Gadhavi et al. | Adaptive cloud resource management through workload prediction | |
US20200242090A1 (en) | Automatically purging data using a deep neural network | |
CN114090201A (zh) | 资源调度方法、装置、设备及存储介质 | |
US11093636B2 (en) | Maintaining data protection compliance and data inference from data degradation in cross-boundary data transmission using containers | |
Dworzak et al. | Federated autonomous orchestration in fog computing systems | |
CN110928679A (zh) | 一种资源分配方法及装置 | |
Lesch | Self-Aware Multidimensional Auto-Scaling |
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 |