第50卷第23期电力系统保护与控制Vol.50 No.23 2022年12月1日Power System Protection and Control Dec. 1, 2022 DOI: 10.19783/jki.pspc.220159
微服务架构下配电台区任务云边协同在线调度策略
程 钎1,陈 羽1,孙伶雁1,丁 锐1,王敬华2
(1.山东理工大学电气与电子工程学院,山东 淄博 255000;2.山东科汇电力自动化股份有限公司,山东 淄博 255000)
摘要:由电网域向社会服务域延伸的配电网需要支持更多的业务,应用随新业务拓展不断增加可能会导致边设备资源不足。为了从边设备层面支撑资源受限情况下任务的调度与协同处理,提出了微服务架构下配电台区任务云边协同在线调度策略。从任务及设备角度对云边容器化场景下任务调度问题进行了分析,在容器化电力任务云边调度机制基础上,设计了优先级策略与任务分配策略,并通过改进的在线算法对任务进行实时调度。仿真结果表明,所提策略具有更高的任务执行效率,通过资源置换,能够提高边设备资源受限时重要任务的完成率以及系统安全性。
关键词:任务调度;微服务;云边协同;优先级;边设备
Cloud-edge collaborative online scheduling strategy for distribution station
area tasks with a microservice architecture
CHENG Qian1, CHEN Yu1, SUN Lingyan1, DING Rui1, WANG Jinghua2
(1. College of Electrical and Electronic Engineering, Shandong University of Technology, Zibo 255000, China;
2. Shandong Kehui Power Automation Co., Ltd., Zibo 255000, China)
Abstract: The distribution network extending from the grid to the social service domain needs to support more services.
As applications continue to increase with new business expansion, this may result in insufficient resources for edge devices. In order to support the scheduling and collaborative processing of tasks given a resource constraint from the edge device level, a cloud-edge collaborative online scheduling strategy for distribution station area tasks with a microservice architecture is proposed. This paper analyzes the task scheduling problem in the cloud-edge containerized scenario from the task and device perspectives, designs the priority and task assignment strategy based on the cloud-edge containerization scheduling mechanism of power tasks, and schedules the tasks in real time using a
n improved online algorithm. Simulation results show that the proposed strategy has higher task execution efficiency and can improve the completion rate of important tasks and system security when the resources of edge devices are limited through resource swapping.
This work is supported by the National Key Research and Development Program of China (No. 2016YFB0900600).
Key words: task scheduling; microservice; cloud-edge collaboration; priority; edge device
0 引言
随着配电物联网的建设,终端设备和任务数量快速增加,传统的云计算模式在响应速度与通信时延等方面出现瓶颈[1-2]。将部分计算能力从云端迁移到数据源侧的边缘计算节点,可以减轻云端压力,满足实时数据分析与低延时任务处理[3]。
配电物联网云、边基于软件定义的思想,通过基金项目:国家重点研发计划项目资助(2016YFB0900600) 微服务架构实现软硬件解耦,进一步缩小应用管控粒度[4]。边设备的发展趋势是通用化,即在同一个硬件系统上运行不同类型的应用[5]。而应用随着新业务的拓展不断增加,设备计算、存储和通信资源可能存在不足的情况。利用微服务相互独立的特点,根据应用服务的差异化需求,
选择部分应用卸载到云端执行,释放装置的资源,对充分利用云边各自优势,提高电力任务执行效率具有重要意义。
目前,关于电网设备任务调度有如下研究。文献[6]在云计算环境下,以节能为目标,将节点性能
程钎,等微服务架构下配电台区任务云边协同在线调度策略- 143 -
功率比作为比较条件,选择最优节点分配任务。文献[7]在系统架构中增加一类仅计算而不产生任务的备用边缘节点。综合考虑任务的时延和能耗,利用博弈论来对居民区用电任务进行卸载,实现多方最优。文献[8]采用深度确定性策略梯度强化学习算法对边缘服务器中的计算、存储资源进行分配,较好地解决了边缘服务器在处理任务时计算能力和资源的限制。文献[9]以虚拟机为任务处理载体,通过对负载均衡、资源分配、任务分配3个子问题求解,来满足时延敏感任务的需求。文献[10]提出了基于边缘计算节点合作的任务分配机制,利用改进粒子优化算法求解双边缘节点协同任务分配问题,以最大限度减少任务平均完成延时。文献[11]考虑边云卸载和边边卸载两种卸载路径,以最小化系统卸载成本来确定最优卸载路径。文献[12]提出一种优化分布式卸载算法来降低有依赖关系的电力任务的处理时延。但是现有的调度策略并未考虑微服务架构下电力任务特征与容器状态对调度决策的影响,且集中在以离线方式对任务进行调度,缺少对多任务在线调度的研究。
本文提出了微服务架构下配电台区任务云边协同在线调度策略。利用有向无环图对任务进行建模。调
度策略考虑电力任务的差异化特征与容器状态,分为优先级策略、任务分配策略两部分,通过改进的在线算法实现不同环境下多任务的实时调度。通过仿真对所提方法进行了验证。
1 台区应用场景
随着配电物联网的发展,配电台区涉及多种应用场景,包括配电台区数据分析、配电设备智能运维与故障抢修、社会用能分析与节能降碳、双碳驱动的源网荷储协调控制,电能质量治理等[13-14]。每种场景会包含多种类型的应用。以源网荷储协调控制场景为例,需要需求侧响应、综合能源服务、新能源消纳、电网峰谷调节等[15]。
配电台区的任务呈现多元化、动态化、差异化的特征。多元化体现在任务的种类多、涉及的场景多;动态化一方面体现在任务随机到达,另一方面体现在任务信息在每次到达时变化较大[16]。差异化体现在不同的任务在数据量、时延、重要程度等方面差异大,处理方式和资源需求差异大。
2 云边协同下配电台区任务调度架构
2.1 配电台区边设备
针对配电台区任务多元化、动态化、差异化的特征与业务范围向用户侧深入的新需求,边设备形成了以微服务为执行载体的新架构[17]。在微服务架
构中,单个应用程序被划分为各种小的、互相连接的微服务,每个微服务完成一个单一功能,相互之间保持独立和解耦合。由于容器良好的隔离性能以及轻量级的优势,通过容器对微服务类型的应用程序进行部署,实现边设备对多类任务的处理,保障任务隔离以及数据安全[18]。
边设备中容器运行状态有未运行和在运行两种[5]。为了便于数学描述,用0表示未运行,1表示在运行。根据容器状态(记为
State
c)可以得到边设备某一时刻在运行的容器数量A。边设备由于资源有限,因此难以支持多个容器并发运行[18]。为了简化分析,假设边设备有最大支持并发运行的容器数量M,当边设备在运行容器数量A(0A M
≤≤)达到M值时,认为边设备资源受限;当所有边设备在运行容器数量均达到最大值时,认为边缘计算系统资源受限。
2.2 任务模型
一系列电力任务可以在任意时间以任意顺序产
生,电力任务的集合表示为
123
{,,,,,}
m
S s s s s
= 。
任务
m
s到达后,可以知道4个基本信息,表示为
{,,,}
m m m m m
s t y l G
=,其中
m
t为任务
m
s的到达时间,m
y为任务
m
s的截止时间,
m
l为任务
m
s类型的值,
且01
m
l<<。
m
G表示任务
m
s的结构。电力任务可以分为常规任务、告警任务和故障处理任务[19]。常规任务如负荷预测、电动汽车充电管理等,告警任务如三相不平衡告警、窃电告警等,故障处理任务如故障研判等。三种任务类型值的取值范围见图2(c)。
一个电力任务的完成依赖于若干个微服务,有依赖关系的多个微服务可以用有向无环图(directed
acyclic graph, DAG)建模[11],表示为{,,
m m m
G V E
=
}
m
W,其中:
12
{,,,}
m m m
m k
V v v v
= 是图的节点,代表
任务调用的k个微服务;
m
E表示有向边的集合,代
表微服务之间的依赖关系,例如有向边
,
m
i j
e= (,)
m m
i j m
v v E
∈,表示微服务m
j
v依赖于m
i
v的完成,将
m
i
v这类微服务的集合称为前驱微服务,()m
p
P v表示
m
p
v所有前驱微服务的集合,将m
j
v这类微服务的集合
称为后继微服务,()m
p
R v表示m
p
v所有后继微服务的
集合。
m
W表示由每条有向边的权重构成的集合,这里的权重指的是两个微服务间传输的数据量。
,
m
i j
w表示m
i
v与m
j
v间传输的数据量。将不含任何前驱微服务的微服务称为入口微服务,将不含任何后继
- 144 - 电力系统保护与控制
微服务的微服务称为出口微服务。一个任务往往含有多个入口微服务或者出口微服务,为了将图结构一致化,增加一个虚拟入口微服务及虚拟出口微服务,虚拟微服务不占用任何时间和资源。变化后任
务调用的微服务的集合表示为0
1{,,m
m m V v v = 21,,,}m m m k k v v v + 。其中,虚拟入口微服务0m
v 与各个入口微服务之间边的权重的和代表此电力任务的输入数据量,各个出口微服务与虚拟出口微服务1m k v +之间边的权重的和代表此电力任务的输出数据量。由于电力任务的初始数据由底层终端设备发送到边设备,并且任务处理结果也要发送到边设备,因此虚拟入口微服务和虚拟出口微服务必须在边设备执行,不能卸载。
2.3 微服务——容器映射关系
任务调用的各个微服务都会由对应的容器进行处理。微服务与容器间的映射关系可以表示为total total V C →。其中total V 是所有微服务的集合,total
C 是所有容器的集合。对于任何total v V ∈和total c C ∈,()m v c =代表微服务v 将被容器c 处理。
假设云和边有所有容器的镜像。由于容器状态的波动性,因此微服务被对应的容器处理时共有3种情况。第一种:v 对应的容器在运行(State 1c =)。假设每个容器在某一时间段只能处理一个其负责的微服务,当大量同类微服务到达时,v 需要进入容器等待队列等待执行。第二种:v 对应的容器未运行,且边设备未资源受限(State 0c A M =∧<),不考虑容器的初始化配置时间,v 可以立即执行。第三种:v 对应的容器未运行,且边设备资源受限(State 0c A M =∧=)。此时v 需要等待其余容器进入空闲状态将边设备资源释放之后,再被执行。假设云的资源是充足的,在边设备中需要考虑全部3种情况,在云中只需要考虑前两种情况。 2.4 微服务架构下电力任务云边调度机制
系统由若干个边设备和一个中心云组成,可表
示为12{,,,}N D d d d = ,
N 为边设备与中心云总数,其中N d 为中心云,其余为边设备。每台边设备可以
负责一个或几个台区范围内任务的处理,中心云对所有设备进行管理。电力任务请求产生后,被提交给所在区域的边设备等待处理。在任务到达之前,任务信息都是未知的,比如调用的微服务、输入数据量和截止时间等。m i v 表示任务m s 调用的第i 个微
服务。,m i n r 是m
i v 在设备N d 的处理时间,可以根据历
史信息进行估计[20]。由于微服务之间的独立性,边
设备会根据设备的资源情况以及任务的需求,从而
将部分或全部微服务卸载到云端或其它边设备,通过通信资源与计算资源的置换,相互协作执行计算任务。在数据传输过程中,设备i d 与j d 之间的数据传输速率为,i j u ,并认为,,i j j i u u =。当i j =时,
,
i j u =+∞,即忽略数据在同一设备内部的传输时间。虚拟出口微服务的完成表明整个任务的完成。微服务架构下电力任务云边调度机制如图1所示。
图1 微服务架构下电力任务云边调度机制 Fig. 1 Cloud-edge scheduling mechanism for power tasks
under microservice architecture
3 台区任务云边协同在线调度算法
根据第1、2节的分析,任务的多元化、动态化、
差异化以及边设备资源的有限性与波动性是任务调度面临的主要挑战。并且由于任务调度的实时性,调度算法不能太复杂。针对以上分析,以文献[20]中所提任务调度思路为基础,提出了台区任务云边协同在线调度算法(cloud-edge collaborative algorithm, CECA)。CECA 基于调度列表,由优先级策略和任务分配策略两个部分组成。 3.1 优先级策略 3.1.1微服务优先级
微服务架构下的电力任务由一系列微服务组成,按优先级排列微服务对任务调度至关重要[21]。如果微服务之间存在依赖关系,则不能交换执行顺序。比如必须先执行采集类微服务,才能执行后面的分析类与控制类的微服务。此外,并行微服务的执行顺序也会影响任务处理的总延时[22]。本文采用式(1)来计算电力任务中各个微服务的优先级。
,()
()max (())m m j i m m i i j v R v k i r w k j ∈=++ (1)
式中:()k i 为m i v 的调度优先级;m
i r 为m i v 的平均处
理时间,如式(2)所示。中心云的处理时间平均值设置为边设备处理时间的0.8倍。
,1()/n N
m
m i i n n r r N ===∑ (2)
程 钎,等 微服务架构下配电台区任务云边协同在线调度策略 - 145 -
3.1.2任务优先级
上节定义了具体的DAG 图的微服务优先级关系,还需解决多个电力任务之间的优先级关系。在边缘计算系统资源受限时,应优先处理重要任务。
基于模糊逻辑的方法计算复杂度低并且可以在不确定信息情况下进行计算[23],因此利用模糊逻辑来确定不同任务的优先级。步骤如下所述。
1) 模糊化。本文采用计算效率高的三角形隶属度函数,其计算公式为
0,
,(),0,x a x a a x b b a f x c x b x c c b c x ⎧⎪-⎪⎪-=⎨-⎪⎪-⎪⎩
<≤≤<≤< (3)
式中:x 为输入或输出变量;a 、b 、c 为给定实数,
且a b c <<。选择对任务执行性能有显著影响的3
个变量作为输入:时延、任务类型值、输入数据量。
对于时延和输入数据量采用低、中、高作为语言变量。对于任务类型值采用常规、告警、故障作为语言变量。输出为任务优先级,采用非常低、低、中、高、非常高作为语言变量。输入及输出变量的隶属度函数如图2所示。
图2 隶属度函数图
Fig. 2 Diagram of membership function
2) 模糊推理。利用模糊规则进行推理,推理的结果是一个模糊变量,用于去模糊化。模糊规则是一个简单的具有条件和结论的if-then 规则。由于有3个隶属度函数,每个隶属度函数有3个语言变量,因此共有27条模糊规则。规则如附录A 所示。
3) 去模糊化。使用质心法来进行去模糊化的计算,通过计算得到各个任务的优先级m p 。
()d ()d m
xf x x p f x x =⎰⎰
(4) 3.2 任务分配策略
根据上文对容器处理微服务3种情况的分析,微服务m i v 被分配到设备n d 执行时,其等待时间为 ,,EF State ,,W State ,,EF State ,
10,
0min{},0t j n
k
i n m i n t j n v Q T c T c A M T c A M '∈⎧=⎪⎪
==∧⎨⎪
=∧=⎪⎩< (5) 式中:,,EF k i n T '表示微服务k i v '在设备n d 的最早结束时
间,微服务k i v '是设备n d 中容器i c 的等待队列i
c n
Q 的队尾微服务,且()()k m i i i m v m v c '==;n Q 表示设备n
d 中所有容器等待队列的队尾微服务的集合。
在任务调度中有两个约束条件:优先级约束和能力约束。优先级约束是指微服务不能在其前驱微服务的数据传输到此微服务之前执行。能力约束是指微服务必须承受在设备上的等待时间,直到设备有能力执行此微服务。
优先级约束为
,,,ES ,(),EF ()
(),max ≥m m m
i i i m i i i
m m
i n i d v v P v d v n w T T u '''
''∈+ (6) 式中:,,ES m i n T 为m
分布式和微服务的关系i v 在设备n d 的最早执行时间,遍历
各个边设备与云可以得到其最小值;()m i d v '为执行
m i v '的设备编号,{}()1,2,3,,m i d v N '∈ 。
能力约束为
- 146 - 电力系统保护与控制
,,ES ,,W ≥m m
i n i n T T (7)
因此,微服务m i v 在设备n d 中的最早执行时间为
,,,ES ,,W ,(),EF ()(),max(max ,)m m m
i i i m i i i
m m
m i n i n i d v v P v d v n
w T T T u '''
''∈=+ (8) 结束时间为
,,F ,,ES ,m m m i n i n i n T T r =+ (9)
各个微服务根据式(10)分配到可以最早执行的
设备上。
,,ES ()min n m m i i n d D
d v T ∈= (10)
3.3 算法描述
本文算法基于调度列表,贪婪地将每个微服务分配给可以最早执行的设备。在文献[20]所提任务调度策略基础上,利用模糊逻辑计算不同电力任务优先级,细分了微服务在容器中的处理情况并建立了相应的数学模型。在微服务调度顺序中,针对资源是否受限分情况对不同任务进行调度。 3.3.1调度列表
建立多个任务的调度列表12{,,}B T T = ,当任
务m s 在某一时刻到达后,根据模糊逻辑计算其任务优先级,并根据式(1)计算各个微服务优先级,生成m s 的调度序列m T ,并立即将m T 添加到B 中。 3.3.2微服务调度顺序
边缘计算系统资源不受限时:根据式(8),计算B 中各个调度序列最靠前的微服务的最早执行时间,选择最早执行时间最小的微服务并按式(10)分配。
边缘计算系统资源受限时:由于故障等重要任务的输入数据量较大,其等待时间较长,可能不会得到优先调度,特别是在边缘计算系统资源受限时,此类任务可能难以在截止时间之前完成,这对于电力系统的安全性是不利的。因此应保证重要任务在资源受限时优先被调度,这体现了重要任务对资源的优先使用权。这种方式在一定程度上减少了重要任务的处理时间,却延长了其他任务的完成时间。边缘计算系统资源受限时,若B 中各个任务的优先级都比较低,除优先级最高的任务外,其余任务处理时间会大幅延长,而这样做的价值很小。为了避免这种情况,根据任务优先级隶属度函数中,高优先级与非常高优先级交点横坐标为0.8,假设B 中优先级最高的调度序列为m T ,只有当m T 优先级大于0.8时,将m T 最靠前的微服务根据式(10)分配给目标
设备。若有多个优先级相同的任务,则随机选择一个调度。
为了提高任务调度过程中的安全性,当微服务被分配执行后,将微服务的信息从B 中删除,当调
度序列m T 中所有微服务被分配完成,
将m T 的信息从B 中删除。根据式(8)可以知道1m k v +的最早执行时间,
若早于任务截止时间,说明任务完成,否则任务未完成。
4 仿真验证
4.1 实验环境
为了验证本文所提算法的性能,使用Python 编程实现该算法并进行测试。本文以文献[11]所提出
的改进的IEEE33节点系统为测试系统,
如图3所示。
图3 改进的IEEE33节点系统 Fig. 3 Improved IEEE33-bus system
配电台区中,共部署了4台边设备和1个中心云。每个电力任务中调用的微服务数量为5~9个。每个微服务处理的数据量在(0.1, 1.2) MB 区间内,虚拟入口微服务与各个入口微服务之间传输的数据量在(0.5, 1) MB 区间内,其余两个有依赖关系的微服务间传输的数据量在(0.1, 0.5) MB 区间内,每个任务的时延在(2, 20) s 区间内[24]。每台边设备支持并发的容器数量设置为4个,中心云可以支持所有业务
容器并发,因此设置为9个。因为云边之间数据传输会有较长的延时,所以将边设备与云的通信时间设置为边设备之间通信时间的1/20[20]。 4.2 对比算法
对于本文所提算法,考虑了以下三种调度策略的算法作为对比。
1) 仅边设备执行算法(only edge device algorithm, OEDA):所有任务在其最初到达的边设备进行处理,不卸载。
2) 仅云端执行算法(only cloud algorithm, OCA):除了虚拟入口、出口微服务,其余微服务都卸载到云端执行。
3) 先来先服务算法(first come first service, FCFS):基于排队理论,根据到达时间进行调度。一个任务一旦被启动,各个微服务将被连续处理,直到任务完成,此过程中不会调度其他任务。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论