面向雾计算的嵌入式异构计算服务放置策略

2021-02-21 02:56刘锦辉易必杰
西安电子科技大学学报 2021年6期
关键词:异构利用率嵌入式

刘锦辉,易必杰,张 昊

(西安电子科技大学 计算机科学与技术学院,陕西 西安 710071)

雾计算[1]是从云计算演化来的一种计算范式。作为云计算的延伸,雾计算的算力由云端下沉至靠近物联网设备的边缘侧,从而有效降低服务的传输延迟,保障服务质量。雾计算环境通常是由高性能嵌入式板卡组成的异构计算集群。一方面,由于底层硬件架构的差异性,雾计算环境中的资源很难像云计算那样进行统一管理。另一方面,由于嵌入式计算资源算力受限,服务在雾计算层不同的映射放置策略,对雾计算层设备的资源利用率影响巨大。因此,研究在雾计算环境中如何合理部署服务,高效利用嵌入式设备上有限的异构资源,已成为学术界与产业界的研究热点。

针对分布式计算协作问题,文献[2]采用基于动态规划的策略不仅可以有效降低系统服务延迟,同时还可以提高资源利用率。为保证访问频繁的服务尽可能靠近用户,文献[3]提出一种分布式服务放置策略,有效改善了服务的网络使用和延迟。文献[4]将应用请求建模为有向无环图(Directed Acycline Graph,DAG),分别设计在线和离线两种策略,期望在截止期限内完成更多的任务请求。文献[5]提出的服务管理策略在满足了不同服务交付延迟的同时显著提高了系统性能。现有研究主要考虑服务质量(Quality of Service,QoS),较少涉及嵌入式资源异构性及资源利用率[6]。然而在资源受限环境下,有效提高异构计算资源利用率是提升雾环境服务承载能力的关键。因此在雾环境中,有必要研究一种基于嵌入式异构资源利用率的服务放置策略。

笔者提出了一种面向雾计算应用的服务放置策略,在确保服务质量的同时,充分考虑异构资源利用率。实验结果表明,与基于请求率策略和iFogSim默认策略相比,笔者提出的策略在系统异构资源利用率方面分别提高了约10.7%和28.7%。

1 基于嵌入式异构资源利用率的放置策略

如图1所示,采用一种通用系统架构描述雾计算环境,整体分为3层:云层、雾层和用户层。云层是由大型服务器构成的计算集群,位于整个架构的最上层。

图1 雾计算系统架构

雾层主要由各种嵌入式计算设备组成,位于用户和云之间,主要为延迟敏感的应用提供部署环境,对用户请求做出快速响应。根据雾层设备与用户间的物理距离不同,将雾层设备细分为多个子层,越靠近用户侧的子层网络延迟越小,同一子层内的设备间网络通信开销明显低于跨层网络通信开销。用户层与用户直接交互,向上层发送收集到的数据,同时接收上层处理后的返回结果。

针对雾层中微服务的放置问题,如果在建模过程中仅考虑服务质量指标,就无法充分利用雾层设备上的资源,造成雾层设备资源利用率下降。因此,考虑资源约束条件下的任务分配问题是更符合雾计算环境的[7]。

1.1 系统模型

基于微服务的设计思想,将应用程序建模为一组服务集合,服务间的调用关系以有向无环图的形式表示。雾层设备资源利用率模型构建如下。

(1)

其中,d(k)表示用户k访问的设备到云层的路径上的设备集合。

(2)

(3)

假定雾层中的设备集合为F,设备数量为|F|,则系统X类型的资源利用率ηX为所有设备利用率的算术平均值:

(4)

在考虑多种资源的情况下,无法保证n种资源利用率均最大化[8]。因此,通过一种加权平均方法综合考虑各种资源的利用率。按上述模型计算系统每种类型资源的利用率,为每种资源设置权重,且权重之和为1:

wcpu+wmem+wbw+wgpu+wfpga=1 。

(5)

(6)

(7)

(8)

(9)

(10)

(11)

基于以上分析,定义系统平均异构资源利用率ηavg为所有类型资源利用率的加权平均,服务放置策略的求解目标即为最大化系统平均资源利用率:

(12)

1.2 放置策略算法

为了同时保证服务质量指标与雾层设备的资源利用率,服务放置时首选雾层中最靠近用户侧的子层[9]。图2展示了服务放置位置的决策流程。

图2 算法流程图

在设备Di资源充足时,则直接在其上放置服务Mx,否则需要比较直接在新的设备放置服务与迁移设备Di上已有服务来满足服务Mx放置需求这两种策略的资源利用率,确定放置决策。具体地,算法1描述了基于系统异构资源利用率设计服务放置策略。

算法1基于嵌入式异构资源的服务放置策略。

输入:微服务服务Mx,嵌入式设备Di。

输出:服务Mx放置操作a。

① ifMx∉Ms

③a(Mx,Di);

⑤a(Mx,f(Di));

⑥ else

⑦ forM∈Ms

⑧ 计算CsubDi,M并加入到o(Di);

⑨ forCsubDi,Mino(Di)

⑩ 计算Ravg,M;

算法1的整体过程是确定一个服务Mx是否放置在设备Di上。当设备Di上剩余的可用资源已不能满足服务Mx的资源请求时,则考虑重新放置设备Di上已部署的其他服务,从而使得Di上的资源可用量达到服务Mx的要求。算法1以最大化雾层设备资源利用率为目标,不断衡量通过重新放置其他服务来保证Mx放置到设备Di上的策略与直接将服务Mx放置到上层设备的策略的优劣关系,确定最佳服务放置策略。

具体地,算法1的输入为当前待放置的服务Mx和放置目标设备Di。算法1第1行到第5行中,尝试将Mx放置到Di上。当且仅当Di上已经放置的服务列表Ms中不包含Mx时,策略才会考虑服务放置请求。如果Di是云层的设备,或者Di当前资源可用量可以满足Mx请求资源量时,则直接将Mx放置到Di上。如果Mx请求资源量大于Di资源总量,则直接将服务Mx放置在Di的上层设备f(Di),并开始新一轮的策略循环。

若上述决策均未执行,则执行算法1的第6行到第12行,对Ms中的所有服务计算传递闭包,并对传递闭包与Ms交集计算平均资源利用率。需要考虑选择当前设备Di上合适的服务集合进行重新放置,以释放足够的资源空间放置Mx。如上文所述,首先需要计算Di上的每个服务对应的传递闭包T(M)。由于此时T(M)中的服务不一定都在Di上,因此还需要和Ms求交集,得到CsubDi,M集合;该集合表示当需要迁移某个服务M时需要一起进行迁移的服务集合。对每个CsubDi,M进行判断,是否真正需要迁移以释放资源,取决于CsubDi,M中服务的平均资源请求量。具体而言,需要先计算当前集合CsubDi,M的平均资源占用量Ravg,M,该值用于表示根据服务请求率和资源请求量综合之后得到的对比指标;最后按照Ravg,M对所有集合排序得到o(Di)。

2 实验结果及分析

2.1 软硬件环境及参数介绍

使用Xilinx的ZCU102嵌入式平台作为硬件测试环境,通过Petalinux2018.3编译生成系统启动文件[10]。然后通过Kuberbetes设备插件设计实现在ZCU102上容器化环境中的资源发现,为服务在嵌入式设备上的放置与执行提供容器化执行环境[11]。

使用iFogSim框架构建雾计算环境[12]。该框架支持创建分层的体系结构、分布式应用程序的建模以及基于性能指标评估调度策略。实验中使用的环境参数参考文献[3],如表1所示。

表1 环境参数对照表

2.2 实验设计与结果分析

本节通过改变环境参数构建不同场景,并针对应用程序数量、网络层数等对比指标设计实验[13]。笔者提出的基于异构资源利用率的服务放置策略,在结果中表示为Resource,以下简称R策略。实验中与之对比的另外两种策略如下:

Popularity:以下简称P策略,文献[3]中提出的基于请求率的服务放置策略,核心思想是将请求率较高的服务尽可能放置在靠近用户层的设备上。

Edgewards:以下简称E策略,或iFogSim默认策略[14]。该策略尽量将服务放置在靠近用户层的设备上,与P策略的不同在于仅通过CPU的资源消耗量决定服务的放置。

2.2.1 异构资源利用率对比

本小节分别对比不同参数下3种策略的异构资源利用率的实验情况,并给出简要分析。

应用程序数量:参数A表示应用程序的数量,这一参数在实验环境中表示为连接到某一网关上的传感器数量。实验结果如图3所示。

图3 资源利用率随应用程序数量变化情况

由于设备资源有限,过多请求会导致雾层设备资源消耗接近饱和状态,无法处理新到来的放置请求,此时请求将直接被发送到云层处理。因此随着A数量不断增加,雾层设备整体资源利用率会趋于稳定[15]。实验结果表明,笔者提出的R策略的雾层设备资源利用率明显高于另外两种策略。原因在于P策略将请求率较低的服务放置在距离云层更近的雾层设备上,服务分布较为分散,从而导致资源利用率较低;E策略将服务更多地放置在距离用户层更近的雾层设备上以满足服务靠近用户的要求,因此资源利用率随着A增加而上升。

网络层数:雾层设备资源利用率随网络层数的变化如图4所示。由于传入的A数量保持不变,所以对于雾层设备资源利用率的影响较小。R策略在保障请求率的基础上考虑了资源利用率,因此整体利用率略高于P策略;由于P策略和R策略使用类似于广度优先遍历的策略搜索设备,尽量将服务放置到同层的其他设备上,因此激活的设备数量受层数变化影响较小;而E策略采用类似深度优先策略,服务被放置到多层设备上,从而导致雾层的资源利用率较低。

图4 资源利用率随网络层数变化情况

路由节点数量:雾层设备资源利用率随路由节点数量变化如图5所示。路由节点数量参数Lchildrendevices增加会导致A数量增加。R策略随路由节点数量增加,雾层设备资源利用率上升,在路由节点数量为8时趋于稳定。相较之下,另外两种策略利用率变化不明显,路由节点数量为3时就已经趋向稳定,原因在于E策略是一种纵向放置决策,受横向扩展的参数变化影响不明显;而P策略将服务分为高低两种请求率,服务放置较为分散,因此横向扩展后,虽然A数量增加,但是对应同一层的设备数量也随之增加,因此P策略的资源利用率略高于E策略,但低于将服务放置更紧密的R策略。

图5 资源利用率随路由节点数变化情况

2.2.2 网络带宽占用对比

根据文献[3],定义网络带宽占用为每个请求大小与设备间网络延迟乘积之和,单位为字节。网络带宽占用随网络层数变化情况如图6所示。实验结果中,3种策略表现出来的整体变化趋势一致,即随着网络层数增加,设备之间网络带宽占用也随之增加。然而,笔者提出的R策略在同样的实验环境下,雾层设备网络带宽占用明显较低,原因在于R策略较于另外两种策略,会将服务更紧密放置在同一层,避免不同层间频繁通信。因此,设备之间延迟受网络层数变化影响相对较小,网络带宽占用更低。

图6 网络带宽占用随网络层数量变化情况

2.3 实验总结

对3种服务放置策略进行实验对比,实验结果说明笔者提出放置策略在降低网络带宽占用的同时提高了雾层设备资源利用率。如表2所示,笔者提出的R策略在不同场景均表现出较高的资源利用率,相比其他两种策略分别平均提高约 10.7% 和28.7%。在网络带宽占用对比实验中,随着网络层数不断增加,R策略相比其他策略在网络带宽占用上大幅度降低。

表2 实验结果汇总

3 结束语

通过设计针对异构资源利用率的服务放置策略,在保证服务质量的前提下,有效地提高了嵌入式资源的利用率。通过与基于请求率的策略和iFogSim默认策略进行对比,笔者提出的策略在同样的雾计算环境下,在提高雾层设备资源利用率的同时有效地降低了网络带宽占用。

猜你喜欢
异构利用率嵌入式
一季度我国煤炭开采和洗选业产能利用率为74.9%
ETC拓展应用场景下的多源异构交易系统
基于IMX6ULL的嵌入式根文件系统构建
离散异构线性多智能体系统的输出一致性
试论同课异构之“同”与“异”
2020年煤炭采选业产能利用率为69.8% 同比下降0.8%
Focal&Naim同框发布1000系列嵌入式扬声器及全新Uniti Atmos流媒体一体机
基于ARM嵌入式的关于图像处理的交通信号灯识别
晶胞参数及空间利用率的相关计算突破
凝聚与铺张——孙绍振教授《以丑、呆为美》两岸同课异构教学观摩后记