论文部分内容阅读
云计算利用虚拟化技术将资源池化,为用户提供按需付用的虚拟资源。云计算具有面向服务、动态和分布式等特点,在为用户提供弹性高可用的服务的同时简化计算资源管理模式。云计算提供者的主要任务是在保证服务质量SLA(Service Level Agreement)的前提下,提高系统资源利用率、减少能耗和运维成本。目前资源管理机制主要集中在IaaS层,较少考虑平台上的应用特征。同时,PaaS平台上的web应用通常由不同人员开发和部署,对CPU、内存等资源的使用情况差异较大,优化部署时需要考虑多个SLA指标。而现有云环境下的应用部署策略大多参考相关领域优化调度算法,一般只保证某一指标。应用还面临资源访问量突增的情况,需要根据应用资源消耗及时调整应用部署方案。如何在保证多个SLA指标的情况下尽量减少资源消耗,同时对应用资源消耗变化做出及时响应,是本文研究的重点。本文立足于中小型私有PaaS平台,将应用层的资源消耗特征作为虚拟机资源优化部署的参考,提出一个基于评分机制的可扩展优化部署框架。本文通过对应用一段时间的实时监控获取其资源消耗特征,利用资源消耗特征研究预测算法和虚拟机优化部署调度算法。对不同的预测算法,应用滑动窗口机制来优化算法预测精度。在评分不满足用户期望时,选择调度算法执行应用的迁移或虚拟机的合并操作。该框架可扩展实现多种调度算法和资源预测算法,不仅可以实现不同调度算法和预测算法间的搭配使用,而且可根据历史调度方案执行反馈情况来进行自适应的下一次部署方案选择。与此同时,考虑了应用的多种资源消耗指标。在研究开源PaaS平台Cloudify的应用编排、基于拓扑结构监控特征的基础上,实现一个应用优化部署工具。工具基于Cloudify实现了应用的实时监控功能,实现系统评价模块、预测模块和调度模块,并实现基于神经网络的预测算法、基于线性回归的预测算法、基于层次分析的资源优化部署算法以及基于分类特征的资源部署算法。本文采用云平台上的真实Web访问日志作为实验数据集,分别对两种预测算法进行了对比,对滑动窗口增强预测精度的有效性进行了验证,对分类算法和调度算法进行了对比分析。实现结果表明,该框架能够有效利用应用特征来降低资源消耗。