论文部分内容阅读
云计算以其高可伸缩、高可靠、按需付费等特征,被业界广泛接受。越来越多的大型网络应用向云中迁移,开始以服务的形式供人使用。交付到云中的网络应用可以基于云资源按需地自适应伸缩,保证系统性能的同时大大减少了成本,提高了资源利用率。云中的服务提供问题是网络应用向云中交付的关键技术,所谓云中的服务提供(Service Provisioning)是指ISV(Independent Software Vendors,独立软件开发商)将开发好的应用交付到云中PaaS(Platform as a Service,平台即服务)平台,PaaS平台根据应用的负载和性能需求,将资源按需提供给应用,同时保证系统在运行时的动态按需扩展的过程。云中的网络应用一般为多层应用,如电子商务应用、社交网络应用等。多层应用是指应用分为Web层、应用服务层和数据库层等。云中多层应用的服务提供问题相比一般应用的服务提供问题要复杂的多,传统的云资源分配方法已不再适用,面临诸多挑战:1、多层应用各层之间的依赖复杂性和服务特征差异复杂性。多层应用各层之间的依赖复杂性是指多层应用各层之间是相互影响的,一方面影响到达各层的负载量,另一方面影响各层的负载到达规律,使多层应用各层负载情况更复杂,更难预测;多层应用各层服务特征的差异复杂性是指多层应用的各层承载的服务功能不同,服务时间等不同。2、云资源处理能力的复杂性和多层多类混合资源的组合复杂性。多层应用各层之间的依赖复杂性和服务特征的差异复杂性导致了资源处理能力的复杂性,即同类资源单位时间内能够有效处理的请求个数与每层应用的负载分布和服务特征相关,变得异常复杂;多层多类混合资源的组合复杂性是指不同的资源提供给各层的处理能力不同,对多层应用进行服务提供,存在多种资源的多种组合,如何选择一个合适的资源组合,使得在满足用户SLA要求下,实现服务质量和资源代价两个矛盾目标的均衡,是个技术难题。为此,’本文针对云中多层应用服务提供问题面临的挑战,主要研究了:1、构建在线监控架构,对多层应用的每层负载分布进行监测,并提出基于自回归模型的预测方法对应用负载进行预测,解决了多层应用各层之间的依赖复杂性问题;对每层服务特征进行监测,解决了多层应用各层之间的服务特征差异复杂性问题。2、应用排队论对部署多层应用各层的资源进行建模,求解资源对各层应用的处理能力,解决了资源处理能力的复杂性问题;提出基于性能-代价均衡的多目标优化算法,应用帕累托最优思想,求得服务质量和资源代价均较优的服务提供策略,解决多层多类混合资源的组合复杂性问题。本文使用多层应用基准测试RUBiS进行实验,通过大量实验数据验证本文提出的方法。基于采集的RUBiS运行数据,对负载进行预测,并将实际运行数据与本文提出的预测方法预测的负载进行比较。实验结果显示,本文的负载预测方法与实际负载误差较小,预测方法具有较好的性能。另一方面,通过实验,将本文提出的服务提供策略与随机策略、贪婪策略从服务提供方案所对应的总体性能、资源代价等多个角度进行比较分析。实验结果显示,与同类服务提供策略相比,本文所提出的基于性能-代价均衡的多目标优化服务提供策略具有较好的综合性能,服务质量和资源代价均较优。本文的研究成果为更好地提高云基础资源的利用率和精确的服务提供方法提供基础,具有较高的实用价值与广阔的应用前景。