论文部分内容阅读
随着云计算的兴起以及其他相关技术的发展和成熟,越来越多的人和运营商选择将自己的应用部署在云端。这样,云计算提供商对云端的资源管理和成本控制成为一个重要课题。负载均衡则是其中的一个重要技术。但是针对实时数据进行负载均衡往往不能及时反应和做好部署。而如果能预测出负载的走势提前计算,负载均衡就能起到非常好的作用。因此,负载预测也成为了一个关键技术。现在,已经有许多研究者提出了自己的负载预测算法,它们针对不同的问题和运行环境各有优势,而且它们往往拥有不同的对外接口。本文研究了负载的特性和多个负载预测算法后,提出了一个面向云应用的负载预测框架。这个框架包含五大子模块:监控模块、数据处理模块、数据库模块、数据维护模块、负载预测模块,它们分别解决了云端实时监控工作负载的问题,大数据下预处理数据进行加速、高效存储数据、维护数据的问题,如何实时根据应用和负载的特性选取相对更合适的预测算法的问题,如何实时预测未来的负载值的问题,以及如何合理地呈现这些数据的问题。在研究的过程中,针对特定情况,应用了一些其他技术:本文引入了一个知识库和知识库引擎,用来记录不同特性的应用程序下不同的负载预测算法的精度。本文使用非关系型数据库提升大数据下的效率。本文使用“请求强度”来替代简单的计数来表征用户请求的大小。本文针对这个特定问题,详细探讨并优化了数据维护模块的实现细节。本文还针对现有的各种类型的负载预测算法,抽象了一个基本的预测算法接口,使得本框架的实现不依赖于具体算法而可以实时加载外部实现的算法,达到高拓展性。最后,本文还实现了一个简易小型的云计算系统,部署了一个应用和本文提出的框架。本文还了模拟98年世界杯服务器访问负载进行模拟实验。通过结果和原数据的对比,以及结果和多种参数的分析。验证了这个框架的工作流程。证明了这个框架可以做到实时监控特定云应用的负载值,出于性能考虑的预处理,负载数据的持久化,然后根据运行的应用程序和负载类型推荐出最合适的算法,再根据算法实时计算负载预测值,最后实时反馈给用户。为云提供商提供一个管理资源和成本的可靠依据。同时该预测框架本身是应用无关且轻量级的。