第一章 绪论
1.1 研究背景及意义
近些年,大数据、人工智能等技术的日益成熟和广泛应用进而被人们所熟知,而为其提供计算、存储和网络等功能的云计算技术也早已深入影响到人们生活中的方方面面,从人们每天都在使用的各种应用程序,到逐渐流行的智能家居、汽车辅助驾驶,再到智慧医疗、交通和线上教育等,都离不开云平台为用户及时提供的各种资源和服务。云计算技术的发展为人们的生活带来了极大的便利,用户可以通过云平台获取可靠的服务来进行日常的信息化处理,云应用供应商则可以按需求租赁云平台中的资源来部署各自的应用程序,从而节省大量的成本和精力。云计算作为并行计算、分布式计算和网格计算延伸出的一种新型计算模式,成为和水电煤同等重要的公共基础设施和未来科技发展的有力支撑,又因其价格低廉、按需付费等特点,从诞生之时便得到了各行各业的广泛关注,并具有快速且稳定的发展趋势。根据 2020年云计算发展白皮书[8]显示,预计到2023 年全球云计算市场规模将超过 3500 亿美元。
由于信息化技术的迅速发展和普及,网络用户的数量也在不断的增高,用户的请求变得越来越复杂,数量也呈爆炸式增长,从而导致数据中心的资源变得愈发的相对紧张。而服务调度方法作为云计算环境中的关键模块,目的是合理利用有限的物理资源,尽可能的满足用户服务质量。换言之,服务调度方法的优劣直接关乎着用户的服务质量、数据中心的负载均衡、资源利用率以及能源消耗等问题。随着 5G 时代的到来,用户对请求响应时间和服务质量有了更高的要求,一些传统的调度算法,如轮叫调度算法(Round-Robin)、最少连接算法(Least-Connection, LC)以及公平调度算法(Fair Scheduling)等,在解决这类多目标优化问题时已经无法满足用户和云应用供应商的要求。之前的一些调度研究中,许多学者对一些启发式算法的改进,大多都根据主观经验给定节点的各个资源参数的权重系数,其次没有考虑到云集群的负载状态在实际中的动态变化,这些研究或多或少存在着一些缺陷和漏洞[4]。因此,根据实际需求设计一个高效且合理的调度策略一直是云计算领域中的研究热点和难点。
..............................
1.2 国内外研究现状
服务调度作为云环境中解决满足用户服务质量、资源合理分配、降低能源消耗的有效方法,一直是各领域学者的研究热点[12]。与此同时,云环境中的调度又是一个多约束、多目标、多类型的优化难题[18]。一些传统的调度算法,比如轮叫调度算法(RR)、最少连接算法(LC)等,没有考虑到工作节点的实际负载和连接状况。调度问题可以理解为在满足多个约束目标的情况下,在有限的计算资源集合中找出最优的一个或一组计算资源的问题,而解决此类组合优化问题应用最广泛的为启发式算法[10],比较常见的如蚁群算法、粒子群算法、遗传算法、模拟退火算法等,于是很多学者提出了对启发式算法优化和改进的方式来解决云平台中的服务调度问题。
简琤峰等人[14]以资源协同和提高用户满意度为优化目标,提出了一种改进后的天牛须粒子群调度算法,在保证用户满意度的前提下降低了组合服务的整体完工时间。葛君伟等人[21]对蚁群算法中的启发函数、信息素及其更新方式进行改进,并以任务的最小完工时间、执行成本以及云平台的负载均衡为优化目标,通过实验证明了改进后的蚁群算法在解决任务调度问题的有效性。李姗姗等人[22]以集群负载均衡为目标,提出了一种将模拟退火算法和加权最小连接算法相结合的任务调度策略。孙敏[25]等人利用数学方差对遗传算法的选择部分进行改进,并优化了交叉和变异机制,提高了遗传算法在解决任务调度问题上的寻优能力和稳定性。
启发式算法相较于传统的调度算法具有更强的探索和寻优能力,上述对启发式的改进,不仅继承了启发式算法在解决组合优化问题上的优点,一定程度上解决了启发式算法自身的一些问题。但该类算法依然存在一些问题,例如根据主观经验给定资源的权重系数[22]、收敛慢、容易陷入局部最优解等。
...........................
第二章 相关技术介绍
2.1 容器云概述
2.1.1 云计算基本概念
在每天数十亿用户使用互联网的今天,云平台提供的计算能力起到了不可或缺的作用。云计算完美的实现了将计算机处理、存储和软件等服务,通过互联网从桌面端或本地服务器转移至数据中心。IBM 对其的定义为:云计算(Cloud Computing)通过互联网提供按需计算资源,从应用程序到数据中心无所不包含[1]。云计算把粒度较大的计算程序拆分和封装为无数个很小的子模块,并通过网络将这些粒度很小的子块发送给规模庞大的服务器集群系统,然后按照一定的规则搜索、计算分析后得到最终结果,最后将结果返回至用户。云计算凭借其灵活的配置性、按需付费、资源利用率高等优势,颠覆了传统互联网行业的部署模式,迅速成为各个行业争相探讨的核心话题之一。
(1) 云计算的部署模型分类
根据云计算的部署模型可以将其分为公有云、社区云、私有云和混合云四大类[1], [26],云计算的部署模型如图 2.1 所示。
图 2.1 云计算的部署模型
私有云:与公共云不同,私有云构建在局域网内,属于一个独立的组织或机构,并由该组织或机构自行管理,该类型的云是对本地数据中心的扩充和延伸,能够为用户提供灵活和便捷的私有云基础设施,具有较高的安全性和私密性,但技术支持和维护的成本较为昂贵。
社区云:该类型云本质上属于公共云的一个子类,该类型的云是为多个机构或组织达到统一协作的目的建立的,其主要应用于企业、教育和政府等行业部门。
混合云:该类型云是由公共云、私有云和社区云共同构建而成的,既有本地基础设施提供的便捷服务,又有公共云高效的计算能力,但是架构较为复杂,该类型的云主要用于同时要求私密性、安全性、高可扩展性、高计算能力的组织或机构。
.............................
2.2 组合服务调度概述
2.2.1 组合服务
组合服务(Composite Services)是以特定的规则和需求将一系列服务组合成的一个具有逻辑关系的整体,即若干具有逻辑关系的子服务的集合。随着大数据和人工智能相关技术的日益成熟,日常生活中可以接触到的组合服务实例随处可见。例如在旅游推荐系统可以根据地点和日期按照特定的算法和规则为用户推荐合适的旅游路线等相关的一系列服务,如图 2.4所示,当用户根据需求选择旅游城市和日期后,系统首先根据用户所在位置及旅游城市为用户推荐出合适的交通方式,根据城市和日期查询出当日的天气,再根据季节和天气推荐出适宜的景点和酒店,最后经过一定的算法为用户推荐旅游路线和景点游玩顺序等,由系统计算出的交通方式、天气、景点、酒店及旅游路线等即具有一定逻辑关系的子服务的集合。云计算中心以处理后的组合服务结果返回给用户的方式,一定程度上节省了用户的精力,能够在一定程度上改善用户服务质量。但随着互联网用户的快速增长,以及请求服务的复杂度越来越高,也为云平台带来了一定的挑战。
云计算中可以根据服务之间是否具有先后执行顺序和数据依赖关系将服务分为独立服务和组合服务。独立服务即与其它服务之间不具有先后执行顺序和数据依赖关系,当被分配到服务器后满足执行条件的情况下便可以直接执行。组合服务则是多个具有先后执行顺序和数据关系依赖的子服务的集合,除开始子服务和结束子服务外,每个子服务至少有一个前驱子服务和一个后继子服务,具有前驱服务除了被调度到的虚拟资源具备执行条件外,还需要等待前驱任务的执行结束,子服务的执行依赖前驱任务的执行结果。
...............................
第三章 组合服务资源调度模型 ..................................... 17
3.1 问题定义与描述 ...................................... 17
3.2 系统模型与定义 ....................................... 19
第四章 模拟仿真实验框架的设计与实现 ................................... 29
4.1 需求描述 .............................................. 29
4.2 体系结构设计 ........................................... 30
第五章 实验结果与分析 ........................................... 35
5.1 实验数据集 .................................................. 35
5.1.1 数据集及字段介绍 ......................................... 35
5.1.2 数据集的预处理............................... 37
第五章 实验结果与分析
5.1 实验数据集
本文以改善云用户服务质量和合理利用云平台资源利用率等为目的设计了组合服务资源调度方法,为验证本文所提出方法对于真实云平台环境中的有效性和适用性,本文以阿里云最新公开的集群追踪数据集 Alibaba Cluster-trace-v2018[53]作为实验数据。
Cluster-trace-v2018 是由阿里云将其真实生产环境中 4000 台服务器运行长达 8 天产生的数据经过标准化和重新调整后开源的集群数据集,该数据集描述了主机集群、容器集群以及批处理任务在这 8 天期间运行过程中的状态信息[53]。与其他版本的集群追踪数据的不同是,该数据集加入了离线任务的 DAG 信息,即用有向无环图描述了批处理负载中各任务之间的关联关系,因此非常适合用作本文的实验数据。
5.1.1 数据集及字段介绍
Alibaba cluster-trace-v2018 数据集全部解压后的数据量可达 570GB,由 6 个 CSV 格式的文件组成,每个文件对应着一个表,每个表描述了不同的资源对象及其状态信息,具体如表5.1 所示。
表 5.1 数据集中各表及其描述
第六章 总结与展望
6.1 全文总结
云计算为终端用户和云应用供应商带来了极大的灵活性和成本效益,对各领域而言已成为一种极具吸引力的计算模式。但在人工智能技术应用领域越来越广泛的背景下,如智能驾驶、图像识别等,如何利用服务调度策略提高服务质量和资源利用率成为云计算领域的关键性问题。本文主要针对容器云平台中服务调度管理这一核心问题展开研究,提出了预留-按需混合容器实例模式下的组合服务模型和基于 DQN 改进的深度强化学习算法,以阿里云平台公开的集群追踪数据作为实验数据集,目的是寻找更优的调度方法来以降低组合服务的完工时间,尽可能的满足用户服务质量,提高云平台的资源利用率。本文所做工作内容如下:
(1) 在调研工作阶段,查阅大量容器和容器云相关文献,学习了容器相关技术,分析和总结了当前服务调度的相关研究工作,对容器云环境下组合服务调度研究的背景和意义进行了合理阐述,为后续的研究工作奠定了理论基础。
(2) 根据容器云平台和组合服务的特点,对数据中心的主机、容器和组合服务等模型进行设计和详细阐述,以降低组合服务完工时间,提高用户服务质量和云平台资源利用率为目标,提出一种预留-按需混合容器实例模式下的组合服务调度模型。
(3) 针对 DQN 算法存在过估计和训练速度慢的问题,对 DQN 算法进行改进,避免其过高估计的缺点,提高算法性能和效率,并将其应用于容器云环境下组合服务的调度模型中。
(4) 基于离散事件仿真库 Simpy 设计并实现了容器云环境下组合服务资源调度模拟仿真框架 ContainerCloudSimPy,并将改进后的算法与常见调度算法在该模拟仿真框架下进行实验和对比分析。
参考文献(略)