云应用分类与基于预测的细粒度云资源提供

时间:2022-07-19 12:59:31

云应用分类与基于预测的细粒度云资源提供

摘要:针对部署在云中的应用多而繁杂并且不同的应用对特定的资源呈现不同的敏感性问题,提出了一种基于主模式方法的云应用分类架构,能够比较精确地将应用分为CPU密集型、内存密集型、网络密集型和I/O密集型等类型,从而能够更好地对云中的资源进行调度;对于云中的应用对资源的消耗,提出了一种基于差分自回归移动平均(ARIMA)模型的预测算法,能够以低的预测误差(高预测平均误差7.59%,低预测平均误差6.06%)对消耗资源预测;对传统的基于虚拟化的应用云架构进行适当的修改,能够细粒度地应对应用的自动扩张,从理论上解决了基于虚拟机的资源提供的不灵活以及低效的问题。

关键词:云计算;应用分类;资源预测;细粒度;资源提供

0引言

云计算最大的魅力在于能够弹性提供资源来应对各种各样的请求。目前有很多的云数据中心已经提供IaaS(InfrastructureasaService)层的服务用以构建公有云和私有云。许多公司,包括微软、盛大和亚马逊已经发行它们公有云计算架构,比如微软Azure,盛大云和Amazon。与此同时,也有越来越多的公司,尤其是拥有相对较小的数据中心的公司,正准备或者已经开始将它们公司自己的IT架构迁移到私有云上。根据文献[1]的研究报道,云计算在2010—2020年将会减少数据中心能源31%的消耗。

无论是对外开放的公有云,还是面向企业的私有云,或者是公有云与私有云相结合的混合云,最终都必须提供相应的服务,而服务的提供都是运行相应的Application来提供对外的请求。于是对运行在云数据中心的各式各样的Application进行分类,从而将CPU密集型(CPU Intensive)、内存密集型(Memory Intensive)、网络密集型(network Intensive)、I/O密集型(I/O Intensive)和闲置(Idle)的应用分开,是本文的一个重要研究点。

CloudFoundry是目前业界第一个开源的PaaS(PlatformasaService)平台,应用程序的性能数据的监控和采集可以通过这个开源平台获取,之前我们已经和VMware公司合作并且成功将CloudFoundry开源平台搭建在我们实验室的云平台,为后续的实验提供了可能性。分类算法先是用PPSA(PrimaryPatternSelectionAnalysis)[2]对运行的应用程序的历史数据的主要特征进行选取,并且对形成特征矩阵维数进行化简,然后利用KNearestNeighbor(KNN)Classifier[3]对应用程序的执行状态基于对资源的消耗模式进行分类。分类后对于资源调度可以考虑两个方面:1)可以对不同类型的应用程序进行分组,从而将不同组的应用放在尽量集中的位置,此时可以对特定的组利用资源预测算法进行预测,从而及时对资源形成一个动态的分配;2)考虑要将不同类型的应用程序放在一块,保证特定虚拟机的资源最大化利用。之前关于云中资源预测都是只是针对某一种资源(CPU、内存、网络和I/O等)进行预测,但是没有考虑到云中的应用多而繁杂,本文主要是利用CloudFoundry这一PaaS层平台精确地将部署在云中的应用分为CPU密集型应用、内存密集型应用、网络密集型应用和I/O密集型应用。一旦将不同的应用进行归类,就可以采取一些策略将不同的应用放置在一起从而达到资源的调优或者将相同的应用聚集起来进行相应的预测从而为资源弹性伸缩提供良好的建议。

1相关工作

对于给定的资源和不同种类的应用,文献[4-6]已经做过相应的研究如何实现高效率的资源调度。由于应用存在多种类、不同类型资源消耗,多阶段的应用等问题,使得对应用程序的分类及资源高效分配变得极其复杂。本文提出一种对应用分类的方法和架构(PPS K),利用一种特征选取算法PPSA对应用程序对不同资源消耗在一定时间段形成相应的资源消耗矩阵,然后用特征向量进行降维,使得最终矩阵只考虑到最主要资源消耗部分。然后利用KNN分类算法将应用归类。

传统的对云计算资源进行重分配或者动态调配的过程都是基于虚拟机迁移,而虚拟机迁移在LAN(LocalAreaNetwork)或者同一个数据中心下是可行的,但是也需要消耗大量的网络带宽,给整个数据中心造成网络带宽的大幅度浪费[8-13]。而在WAN(WideAreaNetwork)或者是跨数据中心可能导致整个虚拟机的迁移不能成功,于是本文探寻一种基于对应用而非虚拟机进行封装,整个云资源被直接分配给不同的应用并封装为ApplicationWrapper(AW),然后设计一个云中对AW的一个架构设计,从而能够细粒度地迁移AW,使得存储与网络耗费降到最低。

主模式选择法PPSA[2]是在最小二乘法意义上寻找能够表示矩阵的数据。当一组矢量样本可以被其中的某几条穿越样本均值的向量表示,那么就可以找到最佳线性方向的特征向量,可以称其为主要模式选取,相应的方差表示贡献的数据。当最大的k个特征值从n个主要模式挑选出来,被选择为代表的数据的维数从n减少到k。

本文使用KNN分类器,考虑基于K(奇数)个最近的邻居的投票。在特征空间物理最近的邻居被挑选为训练数据集。

上一篇:针对H.264码率控制的初始量化参数选择算法 下一篇:通用进化算法的收敛性分析