随着云计算的趋于流行和发展,应用系统可以方便地部署在各大云服务器上,而底层的软件、硬件和平台等资源则通过虚拟化技术和分布式计算技术按需提供给应用系统并按使用量付费,大大降低了硬件和数据库成本,在这种模式下,如果为应用系统分配的虚拟资源过少,那么应用系统的运行时服务质量可能无法保证,从而影响服务的价值;如果为应用系统分配过多的资源则可能导致资源利用率过低,增加不必要的运行成本,因此如何在保证应用系统优化的同时又以一种考虑成本效益的方式来分配和使用虚拟资源一直是云计算的一个关键问题。
虚拟资源动态分配的传统方法一是由一位系统管理员在运行中时刻监控应用系统的运行状态从而进行手动调节。由于在实际运行环境中会有诸多不确定因素出现,因而这种方法要求24h都有系统管理员监控系统的运行状态,并在产生波动时快速地做出调整决策。决策出错这种潜在风险会严重增加系统管理员的心理负担,另外人工做出的调整策略总是会和波动出现存在时间差,存在延迟性,也有处理精度不高的问题。第二种传统方法是通过对应用系统的访问人数进行预先设定或者动态调整,限定了对应用系统的访问数量,当访问人数达到阈值时其他用户将无法访问应用系统提供的服务,来保证应用系统的优质运行。但这种方法付出的代价是拒绝了对应用系统存在兴趣的潜在用户,另外还可能对企业的声誉带来不可预估的负面影响[6-7]。第三种常用方法[2]是在云端动态地调整虚拟资源分配以满足动态变化的访问量,一般是在应用系统运行时发现质量问题后再进行资源动态调整,因而具有一定的延迟性。另外,这种方法忽略了虚拟资源的异构性,相同类型的虚拟资源同样会存在具有不同性能的可能性[3],从而导致虚拟资源的整体利用率偏低。
Cangussu等人[15]提出了一种基于控制论的动态适应性系统框架,该框架基于控制理论对运行时环境(主要是动态变化的资源状况)进行持续监控,通过反馈进行资源预测和控制的优化(通过构件动态替换实现),并基于软件构件的动态匹配和替换来实现控制优化。
针对Web服务器的负载不可预测性,Abdelzaher等人[13]提出了一个基于反馈控制理论的过载保护、性能保障以及服务差异化的方法,该方法使用了PI控制器来保证服务器的响应时间,吞吐量等性能指标稳定在一个期望值。反馈控制主要用于期望特性是已知的而且是相对稳定的被控对象[10],然而,由于反馈控制是利用系统的输出对系统进行动态控制[4],这就不可避免地使得反馈控制是被动的、延迟的,所以它不能很好地解决排队、资源分配等问题。
PowerNup设计了[11]一个高性能的活跃状态(Active) 和一个接近零功耗的睡眠状态(PowerNap)的循环系统,通过两个状态之间的快速转换,大大减少了系统在空闲时间的功耗。但Active和PowerNap的快速转换必须建立在RAILS这种特定的架构之上,否则响应时间便无法保证。
在虚拟资源动态分配方面,Jiang等人[14]提出了一个基于假设分析(what-if analysis)的资源动态分配方法。该方法提出只需要给用户可见的前端服务定义一个关于响应时间的服务等级协议,当该协议被违反(即响应时间过大时)或者过度满足(即响应时间远低于期望值)时就通过动态分配资源来使得服务等级协议重新得到满足。该方法首先假设给前端服务所调用的任意一个后端服务增加/减少一个资源,预测其性能的提升/下降程度,并最终从性能提升最大/下降最小的服务增加/减少一个虚拟资源。
Padala等人[12]提出了一个资源分配方法来解决多个应用系统共享基础设施时服务等级协议难以满足的问题,该方法主要由一个在线模型预测器和一个多输入多输出的资源控制器组成。在线模型预测器负责动态地捕获应用系统性能和资源分配之间的复杂关系,而资源控制器负责确定能够满足应用系统服务等级协议的虚拟资源的分配方案。
Yu等人[1]提出了一种基于前馈和反馈控制的资源动态分配方法。这种方法在系统运行期间能够根据访问人数的变化,利用前馈控制原理对虚拟资源进行动态的重配置;同时根据各个虚拟资源的性能反馈,利用反馈控制原理在各个虚拟资源之间进行动态的负载均衡。
Lim等人[8]设计了一个具有比例阈值的积分弹性控制器。他们使用动态目标范围作为设定点。该方法的积分增益是离线计算的,因此该技术适用于不会因为动态变化而影响积分控制器的鲁棒性的系统动态突然变化的系统。
Urgaonkar等人[9]提出了一种既包含主动控制器又包含被动控制器的混合控制机制。在这种混合控制机制下,主动控制器会主动维护看到的会话到达率的历史记录,并根据过去出现的最坏负载,每小时完成一次资源调配。但这种混合控制机制做不到短期预测。当预测值小于实际负载时,无功控制器会在在短时间内增加分配给服务的资源。
以上是毕业论文文献综述,课题毕业论文、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。