APP下载

基于带宽预测与自适应压缩的容器迁移方法

2022-05-14林予松

计算机工程 2022年5期
关键词:压缩算法容器速度

罗 成,崔 勇,林予松

(1.郑州大学 软件学院,郑州 450002;2.郑州大学 汉威物联网研究院,郑州 450002;3.郑州大学 互联网医疗与健康服务河南省协同创新中心,郑州 450052;4.郑州轻工业大学 计算机与通信工程学院,郑州 450002)

0 概述

随着第五代移动通信系统(5G)和传感器行业的发展,智能汽车、智能手机等物联网设备可通过蜂窝网、低功耗广域网等接入互联网,并且可使用传感器来感知周围环境[1]。根据IDC 预测,到2025 年,全球物联网设备数量将达到416 亿台,每年产生的数据量将达到79.4 ZB,其中超过半数的数据需要在边缘侧分析处理。在这种情况下,传统的云计算模式已经无法满足高时延计算的要求。边缘计算的出现有效地解决了传统云服务距离网络边缘过远的问题,实现了应用的实时响应、分析和操作,尤其是在网络条件有限的地区。通过将繁重的计算任务分流到附近的边缘服务器,可使用户体验到更高的带宽、更低的延迟和更强的计算能力[2-3]。

边缘计算面临的主要挑战是在非平稳的网络环境下,满足用户移动时的服务质量(Quality of Service,QoS)要求[4]。用户的移动往往伴随着服务迁移,由于服务迁移需要在网络上传输大量数据,因此导致网络和计算开销的相应增加,当传输的数据量过大时,会导致服务的停机时间过长,服务质量将会显著下降[5-6]。此外,如果服务频繁迁移,会对边缘网络造成更多负面影响,恶化边缘网络,严重影响用户的服务体验。因此,高效的服务迁移对于实现边缘计算环境中服务的移动性至关重要[7-8]。通过对国内外服务迁移文献的研究发现,Docker 容器因轻量级和具有保持一定程度隔离的能力在边缘计算服务迁移领域得到广泛应用[9]。文献[10-11]提出一种容器本地服务迁移方法(Pre-copy),该方法通过考虑容器间距离、可用带宽和成本,提高了资源利用率,缩短了总迁移时间,但服务迁移过程中传输的数据量过大,导致服务的停机时间过长,降低了服务质量。文献[12]提出Teddybear 系统,该系统能够在网络带宽基础架构较差的地区为移动用户继续提供超低延迟的服务,并在其更改位置时将服务停机时间降至最低,但由于边缘网络的不稳定性,无法提前根据网络状况进行服务迁移,经常导致服务丢失,甚至使得服务无限期停机,影响移动用户的服务体验。文献[13]提出一种带宽分片机制,该机制可以动态有效地提供迁移带宽和非迁移带宽,以满足不同服务的延迟要求。该机制仅通过带宽分片来保证服务迁移的正常运行,但服务迁移过程中传输的数据量问题并未解决,导致服务的迁移时间过长,影响服务迁移效率。文献[14]提出一种基于Docker 基础镜像的服务迁移方法(LZ4-ACM),并设计一种适用于自适应网络环境的压缩算法,对镜像等数据进行压缩,但压缩算法单一,数据压缩不彻底,并且未考虑压缩计算的时间开销,使得服务迁移时间过长,降低了服务质量。

针对上述问题,本文提出一种基于带宽预测和自适应压缩的容器迁移方法(BP-ACM)。利用CRIU 技术为服务生成检查点,并对检查点数据应用压缩去重算法。考虑到网络带宽和计算开销之间的折衷,自适应压缩算法能够根据网络带宽预测结果动态调整压缩速率以及压缩强度,从而充分利用网络带宽和处理器的计算效率。通过结合带宽预测和自适应压缩技术,BP-ACM 方法能够有效利用网络带宽,提高服务迁移性能,进而保证边缘节点为移动用户提供服务的质量。

1 服务迁移问题分析

1.1 相关知识

Docker 是一个开源的容器引擎,基于Go 语言并遵从Apache2.0 协议开源。Docker 将集装箱思想运用到软件打包上,伪代码提供了一个基于容器的标准化运输系统。Docker 可将任何应用及其依赖打包成一个轻量级、可移植、自包含的容器。

CRIU 是一个软件冻结和恢复执行工具。CRIU能够冻结或者部分冻结一个应用程序的执行,并将其执行状态保存到磁盘的一系列文件中。然后使用这些文件来恢复运行该应用程序,并从之前被冻结的点开始执行。

实时迁移是指迁移期间不会中断正在运行的应用程序的连接,通过持续提供服务以获得无缝连接。

迭代迁移是指通过使用pre-dump 命令将一部分内存数据提前传输到目标服务器,pre-dump 阶段不会停止容器的运行,然后使用dump 命令将剩余的内存数据传输到目标服务器,dump 阶段将导致容器服务停止。迭代迁移大幅减少了服务的停机时间。

停机时间是指迁移容器提供的服务不可用或无法满足用户请求的时间。

总迁移时间是指从启动迁移过程到容器可供目标服务器使用的这段时间。

传输数据量是指迁移期间传输的总数据量。当迁移的容器正在运行网络密集型服务时,这是一项关键的衡量标准,因为它将在迁移过程中争用网络带宽。

1.2 问题分析

服务的实时迁移是指在服务不中断的前提下跟随用户的移动,当服务任务从当前服务器迁移到其他服务器时,为在保证服务性能的同时快速平滑迁移,需要通过服务迁移性能指标进行衡量,迁移性能指标主要包括总迁移时间、停机时间以及传输数据量。

由于服务是随着终端用户进行移动的,当用户不在边缘网络服务器的覆盖范围内时,网络服务性能将降低,QoS 将急剧下降,并且运行的边缘服务将被中断[15]。当正在运行服务的终端远离服务器的服务区时,则需要进行服务迁移,找寻距离更近的服务器,将未完成的用户服务迁移到该服务器,继续进行用户服务。在服务迁移过程中,需要传输的数据(例如内存状态、网络状态、磁盘状态、程序镜像数据、数据集等)相对较大(可以达到几百兆字节甚至几千兆字节),如果传输过程花费的时间过长则会降低服务质量,影响服务迁移的效率,并且数据的频繁传输需要耗费大量的网络资源,导致服务迁移时间以及停机时间过长,降低服务质量,严重影响用户体验[16-17]。本文提出BP-ACM 方法来解决这些问题,预测网络带宽,调整压缩算法,使服务迁移过程中的传输数据更加紧凑,从而有效利用网络资源,减少服务迁移时间并改善QoS。

2 Docker 容器迁移方法

BP-ACM 方法首先使用基于小波变换的ARMA带宽预测模型进行网络带宽预测[18],然后根据网络带宽预测结果选择合适的数据压缩算法,实现服务的快速迁移。通过带宽预测预先获取迁移时的带宽,能够减少数据压缩算法适应网络带宽的时间及服务迁移的数据量,降低服务迁移的停机时间。

2.1 基于小波变换的ARMA 带宽预测模型

根据小波变换具有多分辨率的特点,首先将网络带宽表示为一个低频成分与不同分辨率下的高频成分,然后根据不同分辨率下的频率成分的各自特性,分别采用ARMA 模型对低频成分和不同分辨率下的高频成分进行预测,最后把各分层数据的预测结果重组生成网络带宽的最终预测结果。基于小波变换的ARMA 预测模型架构如图1 所示。

图1 基于小波变换的ARMA 预测模型架构Fig.1 ARMA prediction model architecture based on Wavelet transform

2.1.1 小波变换滤波网络带宽

由于实际网络带宽时间序列的非平稳特性,因此需要通过小波变换将其分解为多个平稳分量。本文使用小波Mallat[19]对网络带宽数据进行分解,Mallat 算法原理如下:

图2 Mallat 数据分解Fig.2 Mallat data decomposition

在原始网络带宽数据进行分解后,使用ARMA模型对各分层数据进行预测,再通过式(3)重构算法,将各分层数据的预测结果进行重构,得到最终的网络带宽预测结果[20],如图3 所示。

图3 Mallat 数据重构Fig.3 Mallat data reconstruction

其中:h*(n)和g*(n)分别是滤波器h(n)和g(n)的共轭的时序反转。

2.1.2 基于ARMA 的网络带宽预测

ARMA 模型[21]是一种典型的短期时间序列预测模型。时间序列{Xt}的自回归滑动平均模型(简记为ARMA(p,q)模型)定义如下:

其中:Xt为时间序列{Xt}在t时刻的元素;参数φ1,φ2,…,φp和参数θ1,θ2,…,θq为自回归系数和滑动平均系数;{εt}为噪声序列,即εt~wn(0,),且与前期变量Xt-1,Xt-2,…,Xt-p相独立。

本文带宽预测模型在小波分解时,采用Mallat算法将带宽数据分解为3 层数据分别进行预测,然后进行预测结果的重构,具体步骤如下:

2.2 自适应迁移数据压缩

由于边缘节点网络环境的不稳定性,导致服务迁移过程中数据延迟而影响服务质量,自适应迁移数据压缩就是根据网络带宽的变化调整压缩算法,使服务迁移过程中的传输数据更加紧凑,更有效地利用网络资源。边缘网络带宽有限,迁移任务传输的数据量太大,增加了服务中断时间,影响了用户的服务质量。该算法考虑了服务器的计算资源,充分利用了网络带宽资源,使压缩时间和传输时间达到平衡,以最短时间完成服务迁移[22]。

2.2.1 压缩算法的选择

在BP-ACM 方法中,使用2 种压缩算法:网络带宽较低时采用压缩速度相对较慢但压缩率较高的Zstd 压缩算法[23],网络带宽较高时采用压缩速度较快但压缩率较低的LZ4 压缩算法[24],采用迭代测试来确定高低带宽的临界值。通过分别运行内核编译、Web 服务、Zeusmp 这3 种负载,获 得LZ4 和Zstd压缩算法在不同网络带宽下的服务迁移速度[25]临界值,如表1 所示。

表1 LZ4 与Zstd 在不同网络带宽下的迁移速度对比Table 1 Comparison of migration speed between LZ4 and Zstd under different network bandwidths(MB·s-1)

从表1 中可以看出:当网络带宽为60 MB/s 时,相比于LZ4 压缩算法,Zstd 压缩算法的迁移速度更快;当带宽为70 MB/s 时,LZ4 压缩得到的迁移速度更快。可见,网络带宽为60 MB/s 是选择压缩算法的标准。

2.2.2 Zstd 压缩算法的优化

由网络迁移速度的临界值可知,在网络带宽小于或等于60 MB/s 的情况下,采用Zstd 压缩算法。通过采用多种负载来测量Zstd 压缩算法各压缩级别的压缩率和压缩速度,发现不同负载下各压缩级别的压缩率和压缩速度没有明显差异,所以本文通过运行多种负载来获取压缩率及压缩速度的平均值,并且与压缩算法的压缩级别一一对应。根据服务迁移速度是由网络带宽、压缩速度以及压缩率决定,当服务迁移过程中加入压缩算法时,压缩后需要传输的数据量大小是原始数据大小的1/θ。这意味着服务迁移速度间接增加了一个θ因子,减少了数据的传输,提高了服务迁移的速度。

服务迁移数据的压缩和压缩内容的传输是并行的,在传输压缩数据的同时也在进行数据的压缩,因此,具有压缩算法的迁移速度是压缩速度和增加的传输速度中的最小值,即:

其中:Vmr是服务迁移速度;Vc是压缩速度;Bw是网络带宽;θ是压缩率。Vmr越大,总的迁移时间越短,当给定一个Bw值时,调整压缩算法的压缩率θ和压缩速度Vc,可得到最优的服务迁移速度Vmr。

通过分别计算Zstd 压缩算法不同压缩级别的压缩率和压缩速度,得到最大迁移速度下的最佳压缩级别。由于压缩率θ和压缩速度Vc是随着压缩级别近似平滑变化的,因此压缩级别可以只取20 个压缩级别中的奇数值,将10 对θ和Vc值保存在数组V[][]中,伪代码如算法1 所示,其中V[i][0]为压缩率θ,V[i][1]为压缩速度Vc,BL代表最优压缩级别。

算法1压缩算法的优化

2.2.3 LZ4 压缩算法的优化

本文带宽预测模型在网络带宽大于60 MB/s 的情况下采用LZ4 压缩算法,服务迁移速度随着LZ4压缩算法压缩级别的增加先增大后减小,压缩级别为7 时迁移速度达到最快。由于该算法的压缩级别数量过多,最优压缩级别的寻找需要花费大量的时间,容器服务迁移速度随着压缩级别的增加逐渐稳定,当压缩级别达到25 时,迁移速度已经稳定,因此本文通过设置压缩级别为小于25 的奇数,以此减少压缩级别的个数,这样既可以得到最优压缩级别,又可以节省CPU 开销。同样,由于压缩级别的变化压缩率θ和压缩速度Vc是近似平滑变化的,因此将对应的压缩率θ和压缩速度Vc的值保存在数组V[][]中,由Vmr=min(Vc,Bw×θ) 可以求出最大迁移速度时的最优压缩级别。

2.3 计算复杂度分析

本文提出的BP-ACM 方法涉及的计算主要包括以下3 个方面:

1)网络带宽数据处理。首先获取网络带宽数据,从系统proc/net/dev 文件中读取网络带宽,复杂度为Ο(m);然后通过小波变换对网络带宽数据进行分解和重构,复杂度为Ο(mlbm),其中m为样本数量。

2)网络带宽数据预测。使用ARMA 模型对分解后的带宽数据分别进行预测,ARMA 模型包括阶数的确定和参数估计,分别使用AIC 准则和最小二乘法进行确定,复杂度分别为Ο(m+p)和Ο(m2),其中,p为参数数量。

3)数据压缩算法选择。根据带宽预测结果选择压缩算法:LZ4 数据压缩算法,复杂度为Ο(n);Zstd 数据压缩算法,复杂度为Ο(l×n)+Ο(nlbn),其中,n为传输数据的字符数量,l为字符匹配的长度,n>>l。

综上,本文提出的BP-ACM 迁移方法的计算复杂度为Ο(m2)+Ο(nlbn)。

2.4 迁移方法实现

本文提出的BP-ACM 方法通过预测网络带宽自适应地选择数据压缩方法进行Docker 容器服务迁移,整体系统架构如图4 所示。

图4 Docker 容器服务迁移架构Fig.4 Docker container service migration architecture

Docker 容器服务迁移架构主要由以下模块构成:1)带宽监测模块,从proc/net/dev 文件获取以往的网络带宽数值,为网络带宽预测方法提供数据;2)带宽预测模块,首先通过小波变换对带宽数据进行分解,然后使用ARMA 模型进行预测,最后对各层预测数据进行重构,得出最终结果;3)压缩算法模块,结合带宽预测的结果,选择合适的压缩算法,确定最佳的压缩级别以及最大的迁移速度;4)解压算法模块,识别2 种压缩算法,然后对压缩数据进行解压。

整个系统的运行流程如下:1)带宽监测,获取网络带宽数据;2)结合带宽数据,使用带宽预测方法进行带宽预测;3)通过带宽预测的结果选择压缩算法,然后代入式(5)中,获得最优压缩级别以及最大迁移速度;4)对比2 种压缩算法的性能,分别对压缩算法进行优化;5)对服务迁移数据进行压缩处理;6)对压缩数据进行传输;7)选择对应的解压算法对数据进行解压。

3 实验验证

3.1 实验环境设置

为评估容器迁移场景,实验配置3 台独立的服务器,用来模拟边缘服务节点。第1 台是源MEC 主机,第2 台是目标MEC 主机,第3 台是网络文件系统(Network File System,NFS)服务器,用于存储容器的文件系统。每台服务器使用带有4.4.0-64 通用内核的Ubuntu16.04LTS,拥有4核CPU和8GB主存,2个Intel PRΟ/1000 千兆网 络接口卡(Network Interface Card,NIC)。容器环境采用Docker 版本为

17.0 6.0 和CRIU 版本为3.14(均为稳定版本)的设置。实验使用Pre-copy、Zstd-ACM、LZ4-ACM、BP-ACM等4 种迁移方法运行不同类型负载进行服务迁移对比,并进行全面的容器迁移性能测试分析。工作负载详细信息见表2。

表2 工作负载详细信息Table 2 Workload details

3.2 带宽预测结果分析

以郑州大学校园网络作为测试载体,采用2021 年3月21日到2021年3月23日的网络带宽数据进行实验,数据收集间隔为5 min,以4 ms 为一个测试时间段,取后800 个数据作为原始数据集,将这些数据按时间先后顺序形成一个时间序列,所得网络带宽的数据曲线如图5 所示。由图5 可以看出,网络带宽具有周期性和不平稳特性,表明用户使用网络时间具有相似性且网络带宽随着时间的变化而变化。

图5 实际网络带宽Fig.5 Actual network bandwidth

图6 是使用带宽预测模型进行预测的结果,可以看出本文模型的预测效果和实际网络带宽数据比较吻合,能够较好地预测现实中的网络带宽情况。

图6 网络带宽预测结果Fig.6 Prediction results of network bandwidth

另外,本文还采用AR 模型、ARMA 模型、小波-AR 模型的预测结果与本文带宽预测模型(简称为小波-ARMA 模型)的预测结果进行比较,采用平均绝对误差(Mean Absolute Error,MAE)和平均相对误差(Mean Relative Error,MRE)来判断模型的预测精确度,MAE 是预测值与实际值的绝对误差的平均值,MRE 是预测值与实际值的相对误差率的平均值,结果如表3 所示。由表3 可以看出,本文提出的带宽预测模型大幅降低了预测误差,说明小波分解在预测过程中发挥了重要作用,也证实了该模型完全考虑了网络带宽数据的非平稳和多分辨率特性,对于带宽预测具有重要意义。

表3 网络带宽预测结果数据对比Table 3 Data comparison of network bandwidth prediction results

3.3 迁移性能分析

在同样的实验环境下,使用Pre-copy、Zstd-ACM、LZ4-ACM、BP-ACM 4 种迁移方法以及内核编译、Zeusmp、Web 服务3 种不同类型的工作负载进行服务迁移对比实验,分别从容器服务迁移传输总时间、容器服务迁移传输数据量以及容器服务迁移停机时间比较容器服务迁移性能。

图7 比较了网络迁移带宽为30 MB/s、60 MB/s、90 MB/s 时,使 用Pre-copy、Zstd-ACM、LZ4-ACM、BP-ACM 迁移方法分别运行不同类型负载下的容器服务迁移总时间。由图7可以看出,随着网络带宽的增加,相比于Zstd-ACM 和LZ4-ACM 方法,BP-ACM 方法通过带宽预测模型能够预先地选择压缩算法并对压缩算法进行优化,进一步缩短容器服务迁移总时间。

图7 容器服务迁移总时间Fig.7 Total container service migration time

图8 比较了网络迁移带宽为30 MB/s、60 MB/s、90 MB/s 时,使 用Pre-copy、Zstd-ACM、LZ4-ACM、BP-ACM 迁移方法分别运行不同类型负载下的服务迁移传输数据量。由图8 可以看出,容器服务迁移中的适应性压缩算法能够大幅减少迁移所传输的传输数据量,相比于Zstd-ACM 和LZ4-ACM 方法,BP-ACM 方法能够有效地平衡数据压缩和数据传输所消耗的时间,在网络带宽低时,尽可能地压缩数据,减少传输时间;在网络带宽高时,降低压缩率,减少压缩时间。

图8 容器服务迁移传输数据量Fig.8 Container service migration transfer data volume

图9 比较了网络迁移带宽为30 MB/s、60 MB/s、90 MB/s 时,使 用Pre-copy、Zstd-ACM、LZ4-ACM、BP-ACM 迁移方法分别运行不同类型负载下的容器服务迁移停机时间。由图9 可以看出,与Pre-copy 方法相比,Zstd-ACM、LZ4-ACM 和BP-ACM 方法使得容器服务迁移停机时间从数百毫秒大幅缩短到了数十毫秒。另外,随着网络带宽的增加,容器的服务迁移停机时间均有所减少。

图9 容器服务迁移停机时间Fig.9 Container service migration downtime

本文还在实际网络环境中进行了容器服务迁移实验,如图10 所示,Zstd-ACM、LZ4-ACM 和BP-ACM 方法均比Pre-copy 方法有了显著改进,并且BP-ACM 方法比Zstd-ACM 和LZ4-ACM 方法能够更好地提升容器服务迁移效率。

图10 实际网络环境下的容器服务迁移性能对比Fig.10 Comparison of container service migration performance under actual network environment

从容器服务迁移总时间、传输数据量以及停机时间性能指标的对比结果可以看出,本文所提出的BP-ACM 服务迁移方法能够有效地提高Docker 容器服务迁移性能,从总迁移时间和传输数据量方面可以看出性能有了很大提升,而停机时间则是受网络迁移带宽的影响较大。通过比较4 种服务迁移方法可以看出,BP-ACM 方法能够在很大程度上提升Docker 容器服务迁移的综合性能,其中,总迁移时间至少减少了23.7%,传输数据量至少减少了19.4%,停机时间至少减少了17.6%,充分验证了本文所提出的BP-ACM 迁移方法的有效性。

3.4 计算复杂度对比

4 种容器服务迁移方法的计算复杂度分析如下:

1)Pre-copy 方法:通过循环方式将内存数据传输到目的容器,总的复杂度为Ο(n)。

2)Zstd-ACM 方法:循环获取实时的网络带宽,根据带宽使用Zstd 压缩算法,获得最优的压缩速度和压缩强度,总的复杂度为Ο(nlbn)。

3)LZ4-ACM 方法:循环获取实时的网络带宽,根据网络带宽使用LZ4 压缩算法,获得最优的压缩速度和压缩强度,总的复杂度为Ο(n)。

4)BP-ACM 方 法:预测网 络带宽,选 择Zstd 或LZ4 压缩算法,获得最优的压缩速度和压缩强度,总的复杂度为Ο(m2)+Ο(nlbn)。

由表4 可以看出,相比于其他3 种迁移方法,本文提出的BP-ACM 方法的计算复杂度有所提升,但通过迁移性能结果分析可知其服务迁移性能得到了有效提升,整体而言BP-ACM 方法具有较高的实用性。

表4 容器服务迁移方法的计算复杂度对比Table 4 Comparison of computational complexity of container service migration methods

4 结束语

对于边缘计算服务迁移,传统的容器服务迁移方法比较繁琐,给边缘网络带宽带来了负担。本文提出BP-ACM 服务迁移方法,通过在评估边缘网络状态后动态调整压缩强度,并全面平衡计算开销和网络传输开销。实验结果表明,该方法可在迁移期间提供稳定响应,并且将网络带宽预测模型与自适应压缩算法相结合相比传统非压缩迁移方法以及单一压缩算法的迁移方法效率更高。后续将改进现有压缩算法,采用增量压缩方式进一步减少传输数据量,提高实时迁移性能。

猜你喜欢

压缩算法容器速度
行驶速度
容器倒置后压力压强如何变
速度
基于人工智能技术的运动教学视频压缩算法
难以置信的事情
一种基于嵌入式实时操作系统Vxworks下的数据压缩技术
比速度更速度——“光脑”来了
取米
基于HBASE的大数据压缩算法的研究
曲线数据压缩方法与实现