《Computer Networks》:JUST: Cost-Efficient Joint Cluster Upgrade Sequencing and Task Scheduling for Containerized Edge Computing
编辑推荐:
针对边缘计算中容器升级面临的资源约束、地理分布和低延迟挑战,提出在线层感知联合升级序列与任务调度算法JUST。通过升级序列优化减少任务中断,结合层共享任务调度降低传输计算延迟,集成强化学习和自适应因子网络实现动态环境下的全局最优解,实验验证总延迟降低47%。
胡玉婷|谢轩|唐志清|杨文棉|郭建雄|王天|贾伟佳
香港中文大学深圳学院数据科学系,中国深圳,518172
摘要
边缘计算(EC)的兴起导致越来越多的应用程序在边缘服务器上使用容器进行部署,这些容器依赖于多层图像文件,而这些文件通常需要升级。尽管升级是必要的,但由于资源限制、地理分布和延迟敏感性,传统的云升级策略并不适用于EC。因此,在EC中高效地更新容器是一个重大挑战。在本文中,我们提出了一种在线的、基于层的、成本效益高的联合集群升级排序和任务调度(JUST)算法,以快速有效地解决EC中的升级问题。我们的JUST算法包括两个主要机制。首先,我们通过评估短期和长期节点升级成本以及任务优先级来建模边缘集群升级问题,建立了一种集群升级排序机制,以最小化对正在进行的任务的干扰。其次,我们引入了一种基于层的任务调度机制,通过优化层传输、下载和计算时间来减少初始调度和升级相关的重新调度延迟。这种方法通过强化学习和自适应分解网络整合了节点资源、层分布和任务特性,从而最小化了升级干扰。最后,使用模拟和真实数据集进行的实验表明,我们的JUST算法优于基线方法,总延迟减少了47%。
引言
物联网(IoT)和边缘计算(EC)的快速发展导致更多应用程序出现在网络边缘,为用户提供低延迟、高质量的服务[2],例如在远程医疗应用中观察到的通信优势[3]。EC系统中的任务卸载可以实时动态调整,以提高系统性能并减少延迟[4]。EC通常使用容器进行应用程序部署,因为它们设计轻量级、易于使用且维护简单。每个容器依赖于一个包含所有必要环境和依赖关系的本地图像文件。然而,由于应用程序问题或打包过程中的不合规问题,可能会出现漏洞[5],使系统面临数据泄露[6]和资源滥用[7]等风险。虽然手动修补每个容器是解决这些漏洞的一种方法,但更有效的方法是使用容器集群的统一管理功能将容器镜像升级到更新、更安全的版本,然后重启升级后的容器。
在云数据中心有多种升级容器的方法,如滚动升级[8]、蓝绿部署[9]和金丝雀部署[10]。然而,这些方法往往忽略了EC特有的资源限制和延迟敏感性,使得它们难以有效实施。此外,它们忽略了容器图像的分层结构[11][12],通常只需要替换特定层。在层级别进行升级可以显著降低成本。如图1所示,在升级过程中,运行在节点上的任务必须迁移到其他节点,这可能会干扰服务并增加计算时间。此外,不考虑任务负载而按默认顺序升级节点将产生不必要的成本。例如,升级一个负载过重的节点可能会阻碍其他节点高效接收迁移的任务,导致大量的迁移费用,而环境的高度动态性还可能导致资源利用率下降[13]。因此,最小化升级过程中的总延迟是一个必须解决的问题。
为了快速有效地升级边缘集群,我们协作确定了边缘节点的升级顺序和升级期间的任务调度。然而,仍然存在挑战。第一个挑战是如何决定升级顺序,以最小化受升级影响的任务数量。在节点上升级容器会暂停其服务,影响正在运行的任务,而将这些任务重新分配到其他节点则会产生额外的时间和资源成本。在边缘节点之间保持平衡的资源分配是确保性能的重要因素[14]。先前的研究,如OCS算法[15],通过关注升级期间的任务调度来减少整体任务延迟,但忽略了边缘节点的升级顺序。不同的顺序会影响受影响任务的数量以及层的下载和分布,从而影响漏洞修复的总时间。我们提出了一种升级排序机制,通过考虑资源限制、任务延迟敏感性和层分布来最小化任务的影响。
此外,第二个挑战是如何进一步根据层共享来调度任务,以最小化升级对计算时间的影响。由于这些升级会影响容器操作,未完成的任务必须重新调度到其他节点以继续执行。虽然一些针对容器集群的任务调度算法考虑了资源负载和容器镜像的可用性[16][17],但它们忽略了层共享。尽管一些研究探索了层共享[11][12],但它们没有具体解决升级后的层或升级期间层下载对任务调度和重新调度的影响。我们提出了一种任务调度机制,该机制结合了层共享,并考虑了初始化和运行成本,以最小化受集群升级影响的任务完成时间。这种方法利用自适应分解网络(AFN)[18]提取层分布特征,并采用强化学习进行长期调度决策[19]。
在本文中,我们解决了EC中的容器升级问题,并提出了一种在线的、基于层的、成本效益高的联合集群升级排序和任务调度(JUST)算法。我们首先对问题进行建模,以减少升级对任务的影响。然后,我们提出了一种针对边缘节点的升级排序机制,以最小化升级对系统的负面影响。在此基础上,我们引入了基于层的任务调度机制,该机制考虑了延迟,并将容器调度与节点升级顺序结合起来。我们通过模拟和真实数据集的实验验证了JUST算法的有效性。结果表明,与基线方法相比,我们的方法总延迟减少了47%。
在我们之前的工作[1]的扩展版本中,我们专注于优化联合算法,以提高其在动态环境中的适应性和有效性。首先,我们通过结合远程云设置并根据实际情况调整延迟的定义来改进问题建模。问题被构建为一个马尔可夫决策过程(MDP),考虑了资源有限和边缘系统高度动态性的新约束。其次,我们通过考虑升级的短期、长期和任务优先级影响来改进集群升级排序机制,从而比之前的工作做出更好的决策并最小化不利影响。此外,我们使用强化学习改进了基于层的任务调度机制,以更好地捕捉环境特征。与之前的工作[1]相比,我们的JUST算法从寻找当前最优解扩展到通过策略优化和长期奖励最大化来寻找全局最优解,从而更好地适应动态和复杂的环境。我们进一步通过实验测试验证了JUST算法的有效性和适应性。总之,本文的贡献如下:
1.我们建模了EC中的集群升级问题,以最小化任务完成时间。我们提出了一种基于每个节点升级成本得分的升级排序机制,该机制考虑了短期和长期升级成本以及任务优先级。这种方法减少了升级对任务和整个系统的负面影响。
2.我们提出了一种基于层共享的任务调度机制,该机制考虑了节点资源状态、层分布和任务特性。此外,我们提出了一种基于强化学习的算法,用于集群升级和任务调度,以最小化任务的影响,包括层传输、下载和计算延迟。
3.我们使用模拟和真实世界的数据集进行了一系列实验,结果表明,与基线相比,我们的JUST算法显著减少了整体延迟。
本文的其余部分组织如下:第2节描述了相关工作和发展动机示例。第3节详细介绍了系统模型和问题表述。第4节介绍了JUSR算法,包括集群升级排序和基于层的任务调度。第5节概述了实验设置和评估。第6节讨论了本文的发现。最后,第7节总结了本文。
相关工作
边缘计算中的容器。
轻量级、便携式的容器对于在边缘系统中高效地进行任务卸载至关重要。容器的任务调度算法旨在最小化延迟和能耗,同时最大化收益和系统效用[20]。这些算法通常依赖于启发式方法[21]、MDP[22]或凸优化[23],并且可以动态调整以提高性能[4]。如果任务不能在边缘节点上及时处理,它们可以被卸载到系统模型
在EC中,边缘节点部署在用户附近,通过由多层图像构建的容器执行任务。物联网设备通过无线方式连接到这些边缘节点,而节点通过有线回程连接连接到远程云[35]。主要符号总结在表4中。
边缘节点。边缘节点集定义为, 其中N表示边缘节点的总数。节点n的剩余资源限制了存储的图像和层的数量
算法设置
动作。我们的JUST算法的目的是确定任务是应该卸载到边缘节点还是远程云。因此,动作空间包括所有边缘节点和远程云,定义为:, 其中A是动作集。
状态。为了完全表示时间t时的EC环境中的信息,状态st包括两个方面:节点和任务。节点状态包括资源、层、升级和位置信息,而任务状态
实验设置
数据预处理。为了提高实验的可靠性,我们使用了模拟和真实世界的数据。任务数据来自Alibaba Cluster Trace [45],在去除缺失值和过滤不合理条目等预处理步骤后,包含156,456个任务。平均而言,这些任务使用3.93个CPU核心,内存占用为4.21 GB,它们的到达时间是随机生成的。我们还从DockerHub [11]中提取了容器和任务数据,其中包含155个
讨论
我们的实验结果表明,我们的算法在各种环境中都表现出显著的优势。我们将进一步讨论以下问题。
基于层的调度。基于层的调度策略已被反复证明在容器部署中具有显著优势。这种策略侧重于优化容器镜像的下载成本并提高资源利用率。在任务调度期间,要下载的容器被组织成一个队列。
结论
在本文中,我们提出了一种基于层的联合决策算法,用于任务调度和集群升级排序。我们首先对JUST问题进行建模,以最小化总延迟,解决了通信、下载和计算延迟问题。接下来,我们通过考虑它们的短期和长期影响以及任务优先级来对节点升级进行排序。然后我们使用基于升级成本得分的贪婪机制来确定升级顺序,从而最小化任务中断。
CRediT作者贡献声明
胡玉婷:撰写——原始草稿、验证、方法论、调查、形式分析、概念化。谢轩:撰写——原始草稿、可视化、软件、调查、数据整理。唐志清:撰写——审阅与编辑、监督、项目管理、概念化。杨文棉:撰写——审阅与编辑、监督。郭建雄:撰写——审阅与编辑、方法论。王天:资源、概念化。贾伟佳:监督、资源。
利益冲突声明
作者声明他们没有已知的竞争财务利益或个人关系可能会影响本文报告的工作。