作者:Wei-Kuang Lai,You-Chiun Wang,Syu-Chen Wei
发表期刊:IEEE Internet of Things Journal
发表日期:2023年
一、背景
1、Kubernetes的应用:Kubernetes被广泛用于管理容器化应用,尤其是在云计算环境中,它通过调度器将Pod分配到节点上运行。
2、边缘计算的挑战:在边缘计算环境中,节点通常是异构的,具有不同的计算能力和网络带宽。这种异构性使得传统的Kubernetes调度器无法有效应对,从而导致性能下降。
3、延迟问题:现有的调度算法没有充分考虑节点资源和网络传输带来的延迟问题,这在边缘环境中尤为明显。
二、创新点
1、与传统的Kubernetes调度算法不同,DACS算法不仅考虑节点的CPU和内存资源,还将网络带宽纳入调度决策中,以优化应用的响应时间,特别适用于网络资源受限的边缘环境。
2、DACS算法引入了处理延迟和网络延迟的加权计算模型,根据节点的异构性动态调整权重,优化延迟表现。DACS不仅选择平均延迟最低的节点,还考虑节点剩余资源的组合,以减少资源竞争和上下文切换的影响,提升整体调度效率。
三、DACS算法
DACS 算法包含两个模块:调度模块和排名模块。
调度模块:
候选节点筛选: 遍历每个待调度 pod,根据其资源需求,从所有节点中筛选出资源充足的候选节点集合。
节点选择: 将筛选出的候选节点集合传递给排名模块,由排名模块选择最优节点,并将 pod 分配给该节点。
资源更新: 更新被选中节点的资源向量,记录该节点已服务的 pod 数量。
排名模块:
延迟计算: 对每个候选节点,根据公式 (8) 计算处理延迟,并根据 pod 是否为本地 pod,选择公式 (10) 或 (11) 计算网络延迟。
平均延迟计算: 将处理延迟和网络延迟进行加权平均,得到每个候选节点的平均延迟。
额外延迟考虑: 如果候选节点已服务其他 pod,则考虑上下文切换和资源竞争带来的额外延迟,并添加到平均延迟中。
最终候选节点选择: 根据平均延迟选择最优节点作为最终候选节点,并选择一个包含该节点的最终候选节点集合。
最优节点选择: 如果最终候选节点集合只有一个节点,则直接选择该节点。否则,在最终候选节点集合中选择剩余 CPU 和内存资源组合最大的节点。
四、实验及结果
论文设计了两种场景来评估 DACS 算法的性能:
场景 1:云环境,节点同构
实验设计: 所有节点资源相同,每个节点分配 2 个 vCPU 和 4 GB 内存,共 10 个 pod。
比较方法: kube-scheduler、ElasticFog、TSRA、NAS、KCSS、DACS (α = 0.25, 0.5, 0.75)
实验结果:
pod 分配: ElasticFog、TSRA 和 DACS (α = 0.75) 平衡了节点负载,每个节点分配 3 个 pod,DACS (α = 0.25) 选择平均 RTT 最小的节点处理额外 pod。
处理延迟: ElasticFog、TSRA 和 DACS 具有最低的平均处理延迟,因为它们平衡了节点负载。
网络延迟: TSRA 考虑了数据传输时间,具有最低的网络延迟。DACS (α = 0.75) 进一步降低了网络延迟,因为它考虑了节点之间的 RTT。
任务完成时间: DACS (α = 0.75) 具有最短的完成时间,因为它在处理延迟和网络延迟之间取得了良好的平衡。
场景 2:边缘环境,节点异构
实验设计: 节点资源不同,n1 有 2 个 vCPU 和 4 GB 内存,n2 有 1 个 vCPU 和 4 GB 内存,n3 有 1 个 vCPU 和 3 GB 内存,共 6 个 pod。
比较方法: kube-scheduler、ElasticFog、TSRA、NAS、KCSS、DACS (α = 0.25, 0.5, 0.75)
实验结果:
pod 分配: kube-scheduler 和 ElasticFog 将大部分 pod 分配给资源最多的节点 n1,TSRA 将 4 个 pod 分配给 n1,NAS 和 KCSS 将 pod 分配给资源较少的节点 n2 和 n3。DACS 将 3 个 pod 分配给 n1,并根据 α 值选择 n2 或 n3 处理额外 pod。
处理延迟: n1 的处理延迟最低,因为它有最多的 CPU 资源。DACS 的处理延迟也较低,因为它将 pod 分配给资源充足的节点。
网络延迟: TSRA 具有最低的网络延迟,因为它考虑了数据传输时间。DACS (α = 0.25) 具有最低的网络延迟,因为它优先考虑网络延迟。
任务完成时间: DACS (α = 0.25) 具有最短的完成时间,因为它在处理延迟和网络延迟之间取得了良好的平衡,并选择了网络延迟最低的节点处理额外 pod。
五、总结
实验结果表明,DACS 算法在云环境和边缘环境中都优于其他调度方法,它考虑了节点异构性和网络资源,有效地减少了处理延迟和网络延迟。不仅平衡了节点负载,也避免了资源浪费。此外,DACS 算法通过系数 α 调整处理延迟和网络延迟的权重,增加了灵活性。