首页 / 专利库 / 人工智能 / 人工智能 / 机器人技术 / 生物机器人技术 / 控制论 / 基于前馈和反馈控制的运行时虚拟资源动态分配方法和系统

基于前馈和反馈控制的运行时虚拟资源动态分配方法和系统

阅读:32发布:2020-05-25

专利汇可以提供基于前馈和反馈控制的运行时虚拟资源动态分配方法和系统专利检索,专利查询,专利分析的服务。并且本 发明 属于 软件 工程技术领域,具体为一种基于前馈和反馈控制的虚拟资源动态分配方法和系统。本发明通过设计一个MAPE自适应控制环路对虚拟资源进行优化控制。自适应控制环路包括:监控模 块 、分析模块、规划模块和执行模块;其中,规划模块由一个前馈 控制器 和一个反馈控制器组成,前者针对 访问 人数这个主要扰动因素,预先对虚拟资源数量进行动态调整,后者则针对其他扰动因素,把各个虚拟资源的响应时间作为反馈量,对各个虚拟资源处理的负载比例进行动态地调整;执行模块由资源管理模块和负载均衡模块组成。采用本发明可实现在运行时环境动态变化的情况下虚拟资源的优化配置,实现应用系统的优化运行和虚拟资源的高利用率。,下面是基于前馈和反馈控制的运行时虚拟资源动态分配方法和系统专利的具体信息内容。

1. 基于前馈和反馈控制的虚拟资源动态分配方法,应用系统被部署在端的多个虚拟资源上为用户提供服务;通过设计一个MAPE自适应控制环路对虚拟资源进行优化控制;
所述MAPE自适应控制环路,包括:监控模、分析模块、规划模块和执行模块;其中,监控模块负责收集应用系统的运行时数据;分析模块通过分析运行时数据获得应用系统的外部扰动以及性能参数;规划模块由一个前馈控制器和一个反馈控制器组成,前者针对访问人数这个主要扰动因素,预先对虚拟资源数量进行动态调整,后者则针对其他扰动因素,把各个虚拟资源的响应时间作为反馈量,对各个虚拟资源处理的负载比例进行动态地调整;执行模块由资源管理模块和负载均衡模块组成,前者负责动态地增加或者删除虚拟资源,后者负责动态地调整各个虚拟资源的负载比例;具体步骤如下:
(1)把应用系统部署在给定数量的虚拟资源上,每个虚拟资源平均分配负载比例;
(2)在运行时,监控模块定时地收集应用系统的运行时数据,通过分析模块获得在最近一段时间内的运行信息,包括应用系统的访问人数、访问人数变化率、以及各个虚拟资源处理请求的平均响应时间;
(3)规划模块中的前馈控制器根据访问人数及其变化率预先对虚拟资源数量进行动态调整;规划模块中的反馈控制器根据各个虚拟资源的平均响应时间对各个虚拟资源处理的负载比例进行动态地调整;
(4)执行模块中的资源管理负责动态地增加或者删除虚拟资源,而负载均衡负责动态地调整各个虚拟资源的负载比例;
(5)间隔一定时间后重复执行步骤(2)-(5)。
2. 如权利要求1所述的基于前馈和反馈控制的虚拟资源动态分配方法,其特征在于,步骤(3)中,采用前馈控制器实现对虚拟资源数量的动态调整,其基本过程如下:
(1)通过实验研究,确定在给定虚拟资源数量的情况下系统最多能支撑的访问人数即系统饱和时的最大访问人数,并通过线性拟合得到虚拟资源与应用系统饱和时最大访问人数的系统扰动数学模型NP(n);
(2)根据这个系统扰动数学模型,给出访问人数对虚拟资源的补偿函数①:

其中,NR(t)表示t时刻应用系统的虚拟资源个数,P(t)表示t时刻应用系统的访问人数,∆P(t)表示t时刻访问人数随时间的变化率,k表示对访问人数的一个预测加权值, P(t)+k*∆P(t)表示访问人数的预测值,NP(NR(t))表示在t时刻虚拟资源的个数为NR(t)时,应用系统吞吐量达到最大值时的最大访问人数,NP(NR(t)-1)表示在t时刻虚拟资源个数为NR(t)-1时,应用系统吞吐量达到最大值时的最大访问人数;通过向下取整访问人数预测值的增量关系比,计算出需要增加或者减少的虚拟资源个数;NR(0)表示初始状态时虚拟资源的个数,它是一个定值c,根据实际情况进行设置;
(3)通过前馈控制模型,在运行时监控应用系统的访问人数和访问人数变化率,即可动态地调节虚拟资源的个数。
3. 如权利要求1所述的基于前馈和反馈控制的虚拟资源动态分配方法,其特征在于,步骤(3)中,采用反馈控制器实现对各个虚拟资源的负载比例的动态调整,其基本过程如下:
(1)根据监控得到的各个虚拟资源平均响应时间的度量值,计算当前时刻其较相应期望值的偏差e(t),根据各个虚拟资源平均响应时间的过往3个时刻的偏差e(t-2),e(t-1),e(t),由PID增量计算公式②计算各个虚拟资源的控制变量u(t):

其中,Kp是比例环节的系数, Ki为积分环节的系数, Kd为微分环节的系数,这三个参数根据控制论中的经验性方法进行事先设置;
(2)由计算公式③计算各个虚拟资源的负载比例w(n),其中,sp(n)表示虚拟资源n在饱和状态下的期望响应时间,u(t)/sp(n)表示响应时间达到期望值需要提升/下降的比例,w(n)*u(t)/sp(n)表示虚拟资源n达到期望响应时间需要提升/下降的负载比例;
w(n) = w(n) + w(n) * u(t) / sp(n) ③
(3)通过反馈控制模型,在运行时监控各个虚拟资源的平均响应时间,即动态地调整各个虚拟资源处理的负载比例,从而针对虚拟资源的异构性实现合理的负载分配。
4. 一种基于权利要求1-3所述方法的虚拟资源动态分配系统,是一个MAPE自适应控制环路,其特征在于包括:监控模块、分析模块、规划模块和执行模块;其中,监控模块负责收集应用系统的运行时数据;分析模块通过分析运行时数据获得应用系统的外部扰动以及性能参数,其中,外部扰动包括系统访问人数、访问人数变化率,性能参数包括各个虚拟资源的响应时间;规划模块由一个前馈控制器和一个反馈控制器组成,前者针对访问人数这个主要扰动因素,预先对虚拟资源数量进行动态调整,后者则针对其他扰动因素,把各个虚拟资源的响应时间作为反馈量,对各个虚拟资源处理的负载比例进行动态地调整;执行模块由资源管理模块和负载均衡模块组成,前者负责动态地增加或者删除虚拟资源,后者负责动态地调整各个虚拟资源的负载比例。

说明书全文

基于前馈和反馈控制的运行时虚拟资源动态分配方法和系

技术领域

[0001] 本发明属于软件工程技术领域,适用于计算中系统的优化控制,具体涉及云计算中虚拟资源的动态分配方法和系统。

背景技术

[0002] 在云计算中应用系统可以方便地部署在云服务器上,而底层的软件、硬件和平台等资源则通过虚拟化技术和分布式技术按需提供给应用系统并且按使用量付费。在这种模式下,如果为应用系统分配的虚拟资源过少,那么应用系统的运行时服务质量可能无法保证,从而影响业务价值的实现;如果为应用系统分配的虚拟资源过多,那么有可能导致资源利用率过低,从而增加不必要的运行成本。目前,一种传统的虚拟资源分配方法是由系统管理员在运行时按照应用系统的运行状态进行手动调节。由于运行时环境的诸多不确定因素,这种方法要求系统管理员24小时全程监控系统的运行状态,并且需要快速地做出调整决策。这不但会增加系统管理员的负担,而且准确性较差并有一定的延迟。另一种传统方法是对应用系统的访问人数进行预先设定或者动态调整,从而限定对应用系统的访问数量,而超过访问人数阈值的用户将无法访问应用系统提供的服务。虽然这种方法能够保证应用系统的优化运行,但是以拒绝潜在用户为代价,因此可能对企业的声誉带来不可预估的负面影响。第三种传统的方法是在云端动态地调整虚拟资源以满足动态变化的访问量。这种方法一般是在发现应用系统运行时质量问题后进行资源动态调整的,因此具有一定的延迟性。此外,这种方法忽略了虚拟资源的异构性,即相同类型的虚拟资源也可能具有不同的性能,从而导致虚拟资源的整体利用率偏低。因此,云计算中的一个优化控制问题可以归结为:如何在保证应用系统优化运行的同时以一种考虑成本效益的方式来动态地分配和使用虚拟资源。
[0003] 控制论是研究各类系统调节和控制规律科学。控制论中,根据系统的输出值对系统的控制作用有无影响可以把控制方法分为闭环控制(即反馈控制)和开环控制(即前馈控制)。反馈控制根据系统的输出反馈对系统进行动态控制,使被控对象的输出值尽量接近于系统的期望值。图1就是反馈控制系统的基本框图。反馈控制是在被控对象由于受到扰动而发生状态偏差之后进行的调节,这种控制作用是带有一定延迟性的,属于事后控制。而前馈控制利用扰动信号的大小和方向按照一定的控制规律直接对被控对象进行控制作用。图2就是前馈控制系统的基本框图。前馈控制是在被控对象受到扰动之后并且在被控对象发生状态偏差之前进行的调节,这种控制作用是带有一定预测性的,属于预先控制。近些年来,控制论逐渐被研究者引入到软件开发中,其目的是实现软件系统或软件开发过程的优化控制。

发明内容

[0004] 本发明的目的是提供一种基于控制理论的虚拟资源动态分配方法和系统,从而根据运行时数据实现虚拟资源数量的调整以及各个虚拟资源处理的负载比例的调整,实现应用系统的优化运行和虚拟资源的高利用率。
[0005] 本发明的基本思路是:应用系统中,并发访问人数是影响系统运行状态的一个主要扰动因素。当访问人数逐渐增加时,系统的吞吐量和响应时间也逐渐增加。当访问人数增加到一定数量时,系统的吞吐量达到一个最大值,此时系统处于饱和状态。当访问人数继续增加时,系统就会进入过载状态,系统的吞吐量会随着访问人数的增加而迅速下降,同时响应时间会随着访问人数的增加而极速增加,直到系统崩溃。因此,虚拟资源的数量应该根据访问人数的变化规律预先进行动态调整,从而提高整体运行效率。此外,其他扰动因素(例如虚拟资源自身的性能差异等)也会对应用系统的运行状态带来一定程度的影响,但是很难直观地建模出来。因此,各个虚拟资源处理的负载比例应该根据各个虚拟资源的性能反馈来动态的调整,从而提高整体利用效率。因此,本发明针对访问人数这个主要扰动因素,提出使用一个前馈控制器以预调节的方式动态调整虚拟资源的数量;而针对其他扰动因素,提出使用一个反馈控制器来动态地调整各个虚拟资源所承担的负载比例。
[0006] 本发明的技术方案如下:应用系统被部署在云端的多个虚拟资源上为用户提供服务。运行时通过设计一个MAPE(监控、分析、规划和执行)自适应控制环路对虚拟资源进行优化控制。具体而言,MAPE(监控、分析、规划和执行)自适应控制环路,包括:监控模、分析模块、规划模块和执行模块;
其中,监控模块负责收集应用系统的运行时数据;分析模块通过分析运行时数据获得应用系统的外部扰动(例如系统访问人数、访问人数变化率)以及性能参数(例如各个虚拟资源的响应时间);规划模块由一个前馈控制器和一个反馈控制器组成,前者针对访问人数这个主要扰动因素,预先对虚拟资源数量进行动态调整,后者则针对其他扰动因素,把各个虚拟资源的响应时间作为反馈量,对各个虚拟资源处理的负载比例进行动态地调整;执行模块由资源管理模块和负载均衡模块组成,前者负责动态地增加或者删除虚拟资源,后者负责动态地调整各个虚拟资源的负载比例。如图3所示。
[0007] 基于前馈和反馈控制的虚拟资源动态分配方法,包括以下步骤:(1)把应用系统部署在给定数量的虚拟资源上,每个虚拟资源平均分配负载比例;
(2)在运行时,监控模块定时地收集应用系统的运行时数据,通过分析模块获得在最近一段时间内的运行信息,包括应用系统的访问人数、访问人数变化率、以及各个虚拟资源处理请求的平均响应时间;
(3)规划模块中的前馈控制器根据访问人数及其变化率对虚拟资源数量预先进行动态调整;规划模块中的反馈控制器根据各个虚拟资源的平均响应时间对各个虚拟资源处理的负载比例进行动态地调整;
(4)执行模块中的资源管理负责动态地增加或者删除虚拟资源,而负载均衡负责动态地调整各个虚拟资源的负载比例;
(5)间隔一定时间后重复执行步骤(2)-(5)。
[0008] 所述的基于前馈和反馈控制的虚拟资源动态分配方法,步骤(3)采用一个前馈控制器预先对虚拟资源数量进行动态调整,并采用一个反馈控制器对各个虚拟资源处理的负载比例进行动态地调整。
[0009] 前馈控制需要获得系统扰动的数学模型以及相应的补偿函数,其基本过程如下:(1)为了获得访问人数与虚拟资源数量的数学模型,需要进行实验研究来确定在给定虚拟资源数量的情况下系统最多能支撑的访问人数(即系统饱和时的最大访问人数),并通过线性拟合得到虚拟资源与应用系统饱和时最大访问人数的数学模型NP(n)。
[0010] (2)根据这个系统扰动的数学模型,给出访问人数对虚拟资源的补偿函数①:①
其中,NR(t)表示t时刻应用系统的虚拟资源个数,P(t)表示t时刻应用系统的访问人数,而∆P(t)表示t时刻访问人数随时间的变化率,k表示对访问人数的一个预测加权值,如果资源重配置需要的时间开销比较小/大,那么预测提前量就应该比较小/大,相应地k就应该比较小/大。可见,P(t)+k*∆P(t)表示访问人数的预测值。NP(NR(t))表示在t时刻虚拟资源的个数为NR(t)时,应用系统吞吐量达到最大值时的最大访问人数,而NP(NR(t)-1)表示在t时刻虚拟资源个数为NR(t)-1时,应用系统吞吐量达到最大值时的最大访问人数。
通过向下取整访问人数预测值的增量关系比,可以计算出需要增加或者减少的虚拟资源个数。此外,NR(0)表示初始状态时虚拟资源的个数,它是一个定值c,可以根据实际情况进行设置。
[0011] (3)通过上述的前馈控制模型,只需要在运行时监控应用系统的访问人数和访问人数变化率,就可以动态地调节虚拟资源的个数。
[0012] 反馈控制采用了PID控制器,其基本过程如下:(1)根据监控得到的各个虚拟资源平均响应时间的度量值,计算当前时刻其较相应期望值的偏差e(t)。根据各个虚拟资源平均响应时间的过往3个时刻的偏差e(t-2),e(t-1),e(t),由PID增量计算公式②计算各个虚拟资源的控制变量u(t):


其中,Kp是比例环节的系数,Kp越大反馈控制的响应速度越快,但稳定性越差;Ki为积分环节的系数,Ki越大反馈控制的抗干扰能越强,静差越小,但超调量越大,响应速度越慢;Kd为微分环节的系数,Kd越大反馈控制的响应速度越快,超调量越小,稳定性越强,但抗干扰能力越弱。这三个参数一般可以根据控制论中的经验性方法进行事先设置。
[0013] (2)由计算公式③计算各个虚拟资源的负载比例w(n)。其中,sp(n)表示虚拟资源n在饱和状态下的期望响应时间,u(t)/sp(n)表示响应时间达到期望值需要提升/下降的比例, w(n)*u(t)/sp(n)表示虚拟资源n达到期望响应时间需要提升/下降的负载比例。
[0014] w(n) = w(n) + w(n) * u(t) / sp(n) ③(3)通过上述的反馈控制模型,只需要在运行时监控各个虚拟资源的平均响应时间,就可以动态地调整各个虚拟资源处理的负载比例,从而针对虚拟资源的异构性实现了合理的负载分配。
[0015] 本发明的优点和积极效果:该方法可以实现基于前馈和反馈控制的虚拟资源动态分配,实现在运行时环境动态变化的情况下资源的优化配置,保证应用系统的优化运行并且显著地提高虚拟资源的利用率。附图说明
[0016] 图1为反馈控制的基本框架
[0017] 图2为前馈控制的基本框架。
[0018] 图3为本发明的基本过程图。

具体实施方式

[0019] 本节给出了一个基于OpenStack的具体实现方式。我们使用OpenStack Folsom搭建了一个云平台,总共配置了20个虚拟资源。每个虚拟资源分配了512M的内存以及1个虚拟CPU,安装了操作系统Ubuntu 12.04、数据库MySQL 5.5.31以及Web服务器Tomcat6.0.35,并部署了订单审核系统。此外,在云端的一个虚拟资源上部署了Nginx 1.1.19作为反向代理服务器,负责把负载按照一定的比例关系分配给相应的虚拟资源。
[0020] 基于该实施方式的主要使用过程为:(1)在设计时,把订单审核应用系统部署在1到5个虚拟资源上,通过压力测试工具JMeter 2.6来模拟并发访问人数,确定在给定资源数量的情况下系统能承受的最大访问人数,通过线性拟合得到前馈控制器的扰动补偿函数。
[0021] (2)在运行时,把订单审核应用系统部署在1个虚拟资源上,使用了压力测试工具JMeter 2.6来模拟连续变化的并发访问人数。访问人数从0开始,以20人/分钟的速度逐渐增加到340人,并保持3分钟,最后以20人/分钟的速度逐渐减少到0。
[0022] (3)监控模块监控Nginx日志文件的变化,分析模块对日志文件进行分析,从而获得访问人数、访问人数变化率、响应时间、吞吐量等运行时状态信息的。
[0023] (4)前馈控制器根据访问人数以及访问人数变化率来调整虚拟资源的数量;反馈控制器根据各个虚拟资源的平均响应时间调整各个虚拟资源处理的负载比例。
[0024] (5)执行环节通过修改Nginx的配置文件来实现虚拟资源数量及负载比例的调整。
[0025] 间隔1分钟后重复执行步骤(3)-(5)。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈