论文部分内容阅读
云计算是现代信息社会重要的基础设施,云任务调度作为云计算中最重要的一项技术,直接关乎用户和云服务提供商的利益。传统的云任务调度算法往往采用固定的策略进行调度,这类算法实现简单,同时拥有较高的调度效率,在一定程度上解决了离线任务调度问题。随着云计算的广泛应用和任务调度规模日益增加,在线任务调度存在数据中心集群高异构性、集群运行环境和任务提交数量高波动性、优化目标多样性等问题,传统的算法不能够动态的改变自己的调度策略来高效的进行在线任务调度。近年来,深度强化学习在理论研究上取得了巨大的成功,本文旨在研究基于深度强化学习的云任务调度算法来改善上面的问题。本文的主要内容及贡献如下:1)在单数据中心任务调度的场景下,针对数据中心集群高异构性问题,本文通过对深度强化学习中智能体的动作、状态和奖励进行建模,提出了基于改进深度Q学习算法的云任务调度算法。为了增强智能体的探索能力,算法中使用了Boltzmann动作探索策略对传统的动作探索策略进行改进。在模拟数据集上的实验显示,该算法拥有良好的收敛性,CPU利用率标准差降低了6.7%,有效促进了集群负载均衡,任务的指令响应时间比提升了5.3%,实现了高效能的云任务调度;2)针对云计算中任务的高波动性、高不确定性,本文考虑了多个任务之间的相关性,每次对多个任务同时进行调度,但是在强化学习中,这会导致智能体的状态空间爆炸,因此,本文提出了基于改进深度确定性策略梯度算法的任务调度算法。为了满足集群负载均衡的优化目标,算法中使用最早任务调度算法来改进动作探索策略。在离线训练Actor网络时,存在收敛速度慢的问题,本文添加了一个有监督的训练方法来加快算法的收敛速度。在阿里云的集群跟踪数据上进行的实验显示,该算法的指令响应时间比提升了3.3%,有效提升了多个任务同时调度时的效率;3)在多数据中心任务调度的场景下,针对多目标优化问题,本文使用成本感知的动作策略改进了原始的深度确定性策略梯度算法。在阿里云的集群跟踪数据上进行的实验显示,该算法在保证任务指令响应时间比和集群负载均衡的情况下,平均每小时降低了1.3元的集群使用成本,有效解决了多目标优化问题;4)本文参考开源云计算仿真平台CloudSim Plus,自主设计实现了Python语言版的云任务调度仿真系统,有效提升了仿真实验的速度和便捷性。