CN111274111A - 一种用于微服务老化的预测与抗衰方法 - Google Patents
一种用于微服务老化的预测与抗衰方法 Download PDFInfo
- Publication number
- CN111274111A CN111274111A CN202010066223.3A CN202010066223A CN111274111A CN 111274111 A CN111274111 A CN 111274111A CN 202010066223 A CN202010066223 A CN 202010066223A CN 111274111 A CN111274111 A CN 111274111A
- Authority
- CN
- China
- Prior art keywords
- aging
- micro
- service
- resource
- container
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3452—Performance evaluation by statistical analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/049—Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45575—Starting, stopping, suspending or resuming virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Health & Medical Sciences (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Biology (AREA)
- Probability & Statistics with Applications (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供的一种用于微服务老化的预测与抗衰方法,利用深度学习的方法,预测在分布式云平台中出现服务质量下降的微服务,通过对每个微服务所占用的资源情况,来评估微服务老化的情况;利用容器垂直自动扩缩容技术,能够根据观测到的CPU,内存,磁盘的利用率,容器自动调整资源的大小;本发明相比于传统的虚拟化技术,迁移的时间大大缩减。所以,本发明中提出的微服务抗衰的技术,系统可以实现无缝恢复,很有意义和价值。
Description
技术领域
本发明涉及老化学与抗衰学领域,具体是涉及一种用于微服务老化的预测与抗衰方法。
背景技术
现代软件的设计正在悄悄地向微服务转变。特别是随着云计算的发展,越来越多的软件系统被部署在云中以分布式方式工作。这些微服务系统有两个共同特征,即长期运行和高复杂性,这就增加了资源耗尽和故障的风险。随着故障或资源耗尽的累积,微服务系统可能遭受着缓慢的性能下降,故障率增加甚至崩溃。这种现象被称为“微服务老化”。
微服务老化是一个受许多因素影响的复杂过程,如微服务错误,资源利用,工作负载等。微服务系统资源枯竭是一个普遍的现象。例如,由于连续记录,磁盘空间已耗尽。随着微服务老化程度的增加,系统性能下降,导致QoS下降。当QoS低于预设阈值时,微服务系统进入未服务状态,也称为“伪故障”。企业系统(尤其是云平台)中的微服务老化导致的意外中断可能导致可观的收入损失。一项调查显示,IT停机时间平均每年可达14小时,导致损失265亿美金。因此,预测和抵消微服务老化引起的故障是构建负责任的微服务系统的关键。
在许多场景中都会出现软件老化的现象,包括操作系统,Web服务器,实时系统。然而,并没有人去研究微服务在长期运行过程当中产生的老化现象。此外,对于传统的单体应用中,软件系统作为一个整体,去检测老化现象会相对容易一些。然而,随着云计算成为了一种流行之后,微服务相继出现,这无疑增加了灵活性和复杂性,对于微服务的老化也变得更加复杂。
一种有效且常用的抵消微服务老化的方法是“微服务抗衰”技术。它通过清理故障,在发生完全或部分新状态故障之前主动恢复系统。抗衰技术的好处在很大程度上取决于进行抗衰的时间。停机时间或者由此类操作引起的开销是不可忽略的,频繁的抗衰可能会对系统可用性造成负面影响。相反,理想的抗衰策略是在系统接近故障时恢复系统。
发明内容
本发明的目的在于提供一种用于微服务老化的预测与抗衰方法,解决了现有的解决微服务老化的抗衰方法存在频繁的抗衰会对系统的可用性造成负面影响的问题。
为了达到上述目的,本发明采用的技术方案是:
本发明提供的一种用于微服务老化的预测方法,包括以下步骤:
步骤1,将被测微服务的未完成的请求数作为输入参数;
步骤2,获取输入参数的性能指标,所述性能指标包括网络吞吐量、CPU的使用情况、内存的使用情况和磁盘的使用情况;
步骤3,构建深度学习网络,结合步骤2获得的性能指标,计算每个性能指标导致每个微服务发生QoS冲突的概率值;
步骤4,当步骤3中的微服务发生QoS冲突的概率值大于等于80%时,采用较低级别的跟踪机制,用以检测微服务发生QoS冲突的影响因素,影响因素包括网络吞吐量、CPU的使用情况、内存的使用情况和磁盘的使用情况;
步骤5,根据步骤4得到的微服务发生QoS冲突的影响因素,计算每个微服务的老化率;
步骤6,根据步骤5中得到的微服务老化率,确定微服务老化的具体原因。
优选地,步骤3中,构建深度学习网络,具体方法是:
所述深度学习网络包括输入层、隐含层和输出层,其中,将步骤2中获取的性能指标作为输入层的输入,所述输入层中的每个神经元代表一个微服务,输入层中的神经元按照拓扑顺序排列;
所述输出层中的每个神经元代表一个微服务,输出层中的神经元按照拓扑顺序排列;
所述隐含层采用的是CNN+LSTM模型,包括卷积层、循环层和最终层;其中,卷积层是通过提取标准CNN模型的卷积层和最大池化层进行构造;所述循环层为LSTM网络;所述最终层为SoftMax。
优选地,步骤5中,通过下式计算每个微服务的老化率:
式中,Es(t)表示为微服务老化率;Ufi表示为第fi个特征码依次耗尽资源的单位。
优选地,步骤6中,确定微服务发生老化的具体原因,具体的方法是:
每个微服务对应的所有影响因素中,最高老化率所对应的影响因素为发生微服务老化的具体原因。
一种用于微服务老化的抗衰系统,包括CVA Master节点、Source Server节点、NFS节点、Cloud Deploy Manager模块,其中,Source Server节点、NFS节点、Cloud DeployManager模块均与CVA Master节点连接;所述CVA Master节点用于控制各个节点的任务流和数据流的走向;所述Source Server节点为监控资源收集器,用于收集每个微服务的资源使用情况;所述NFS节点用于当作业为有状态作业时,存储容器的检查点和镜像文件;所述Cloud Deploy Manager模块为集群管理器的组件。
一种用于微服务老化的抗衰方法,基于所述的一种用于微服务老化的抗衰系统,包括以下步骤:
步骤1,发出操作请求;
步骤2,CVA Master节点在Cloud Deploy Manager模块中创建执行作业所需的启动项,启动项包括唯一的ID信息,并判断当前作业的状态,所述当前作业状态为有状态或无状态;
步骤3,Cloud Deploy Manager模块执行当前作业,且通过Source Server节点分别收集CPU资源的占用情况、内存资源的占用情况和磁盘资源的占用情况;
步骤4,根据步骤3采集得到的资源占用情况,计算新资源;
步骤5,将步骤4计算得到的新资源与旧资源进行匹配,若新资源与旧资源匹配成功,则继续执行当前作业;若两者匹配不成功,则CVA Master根据作业状态执行不同的操作;具体地:
若当前作业为有状态时,则根据新资源在集群管理器中创建新的容器,并进行容器的迁移;
若当前作业为无状态时,则根据新资源在集群管理器中创建新的容器,并进行容器的重启。
优选地,所述步骤4中,新资源的计算公式是:
新资源=观察值的中位数+绝对偏差b。
优选地,步骤5中,若新资源与旧资源匹配不成功,且当前作业为有状态时,CVAMaster节点向docker发送两条指令,其中一条指令是创建容器的检查点;另一条是创建包含该容器生成数据的镜像;同时将所创建的检查点和镜像信息发送给CVA Master节点;所述CVA Master节点将所创建的检查点和镜像信息存储到NFS节点中;集群管理器根据新资源的值申请资源,在集群管理器中创建新的容器;并将检查点和镜像下载到所选服务器,然后还原容器,实现容器的迁移。
优选地,步骤5中,若新资源与旧资源匹配不成功,且当前作业为无状态时,集群管理器根据新资源的值申请资源,在集群管理器中创建新的容器,实现容器的重启。
与现有技术相比,本发明的有益效果是:
本发明提供的一种用于微服务老化的预测方法,利用深度学习的方法,预测在分布式云平台中出现服务质量下降的微服务,通过对每个微服务所占用的资源情况,来评估微服务老化的情况。
本发明提供的一种用于微服务老化的抗衰系统及方法,提出了容器垂直自动扩缩容技术,能够根据观测到的CPU,内存,磁盘的利用率,容器自动调整资源的大小。本发明提出的新资源的计算公式推翻了之前用户凭经验定义资源大小的方式,很好地提高了资源的利用率。同时,根据作业的状态执行重启或迁移工作,大大缩短了服务停用的时间,提供了微服务系统的可用性。微服务使用容器的技术,由于容器更加轻量化,相比于传统的虚拟化技术,迁移的时间大大缩减。所以,本发明中提出的微服务抗衰的技术,系统可以实现无缝恢复,很有意义和价值。
进一步的,对于有状态的作业选择容器迁移的方式,大大减少了服务停止的时间。而对于无状态的作业执行容器的重启操作,而不是容器迁移的操作,也是为了减少镜像恢复的时间。
附图说明
图1为本发明微服务老化预测的神经网络设计图;
图2为本发明通过cAdvisor监控到的CPU资源占用情况示意图;
图3为本发明通过cAdvisor监控到的内存资源占用情况示意图;
图4为本发明微服务抗衰方法的CVA设计架构图;
图5为本发明微服务抗衰方法的CVA活动图。
具体实施方式
下面结合附图,对本发明进一步详细说明。
本发明提供的一种用于预测微服务老化的方法,利用深度学习的方法,预测分布式云平台中出现服务质量下降的微服务;通过对每个微服务所占用的资源情况,来评估微服务老化的情况。
一种用于微服务老化的预测方法,具体的实施步骤如下:
步骤1,将被测微服务的未完成的请求数作为输入参数;
步骤2,获取输入参数的性能指标,所述性能指标包括网络吞吐量、CPU的使用情况、内存的使用情况和磁盘的使用情况;本实施例如图2、图3所示;
步骤3,构建深度学习网络,结合步骤2获得的性能指标,计算每个性能指标导致每个微服务发生QoS冲突的概率值;
所述深度学习网络包括输入层、隐含层和输出层,其中,将步骤2中获取的性能指标作为输入层的输入,所述输入层中的每个神经元代表一个微服务,输入层中的神经元按照拓扑顺序排列。
每个微服务设置有一个请求队列,用于存放当前微服务未完成的请求数。
所述输出层中的每个神经元代表一个微服务,输出层中的神经元按照拓扑顺序排列。
每个神经元用于输出对应微服务所发生的QoS冲突的概率。
所述QoS冲突的概率值是通过每个任务的延时对应公式计算得到。
设置输出层输出为10分类,分别是0,1,2,3,4,5,6,7,8,9;0,1,2,3,4,5,6,7,8,9分别代表了QoS冲突概率值在0-10%,11%-20%,21%-30%,31%-40%,41%-50%,51%-60%,61%-70%,71%-80%,81%-90,91%-100%。
设置输出层输出的是一个向量,该向量的维数表示微服务的个数,向量的值表示每个微服务发生QoS冲突的概率,它们是按照微服务的拓扑排序输出的。
所述隐含层采用的是CNN+LSTM模型,如图1所示,包括卷积层、循环层和最终层;其中,在CNN+LSTM模型中,构建新的卷积层,新构建的卷积层的组成部分是通过提取标准CNN模型的卷积层和最大池化层来构造,也就是说,该新构建的卷积层中无全连接层。
该新构建的卷积层用于从输入的向量中提取微服务的空间调用关系。在输入网络之前,每个微服务的请求信息都是按照拓扑顺序排序的。
之后,将通过新构建的卷积层提取到的微服务的空间调用关系作为循环层的输入。
循环层具有很强的上下文信息捕捉能力,使用上下文线索进行预测比单独处理更有帮助。此外,一些模棱两可的细节部分,通过LSTM网络更容易学习到。
所述循环层为LSTM网络。
所述最终层为SoftMax。
传统的RNN单元在其输入层和输出层之间有一个自连接的隐含层。每当它收到新输入,它就用一个非线性函数更新它的内部状态,该函数以当前输入和过去状态进行预测,获得过去的上下文进行预测。然而,传统的RNN单元存在梯度消失问题,限制了它所能存储的上下文范围,增加了训练过程的负担。
长短期记忆法(LSTM)是一种RNN单元,专门用来解决这个问题。一个LSTM由一个存储单元和三个乘法门组成,即输入门,输出门和遗忘门。从概念上讲,内存单元存储过去的上下文,而输入和输出门允许单元存储上下文很长一段时间。同时,可以通过遗忘门清除单元中的内存。LSTM的特殊设计允许它捕获长期依赖关系,这种依赖关系经常出现在序列化预测中。
步骤4,当步骤3中的微服务发生QoS冲突的概率值大于等于80%时,且该微服务的CPU的使用情况、内存使用情况和磁盘的使用情况均超过了预设阈值时,则说明该微服务老化;之后采用较低级别的跟踪机制,用以检测微服务发生QoS冲突的影响因素,影响因素包括网络吞吐量、CPU的使用情况、内存的使用情况和磁盘的使用情况;
步骤5,将步骤4得到的微服务发生QoS冲突的影响因素和下式结合,计算每个微服务的老化率:
式中,Es(t)表示为微服务老化率;Ufi表示为第fi个特征码依次耗尽资源的单位;Ci(t)表示序列随时间的增加值。
步骤6,根据步骤5中得到的微服务老化率,确定微服务发生QoS冲突的影响因素,具体地:老化率越高,则对应的影响因素为微服务发生QoS冲突的影响因素。
其中,设定当微服务的老化原因是空闲内存的下降时;微服务老化率与当前空闲存储器的资源量呈线性关系,即:
y=ax+c
其中,a是老化率,c是空闲存储器的初始资源量,y代表当前空闲存储器的资源量,x是时间;
当微服务的老化原因是大量重复执行,则设定特征码为重复执行;由于软件执行可以被视为由有限项组成的无限序列,因此特征码将是在序列中重复出现的这些项的组合。也就是说,序列S和特征码F都由来自一定数量的基本项I组成:
Basic items:I={i1,i2,…,ik} k>0,k为重复执行的次数
Execution sequence:S=s1s2…si…sn n>0
Feature code:F={f1,f2,…,fm} m>0
序列S随时间的增量为C(t),设置具有概率密度函数的累积分布函数为c(t),特征码的总计数为f,特征码依次耗尽资源单位U,因此由特征码引起的序列的总耗尽可以通过以下方式E(t)确定:
利用上述公式,计算出由特征代码引起的序列的总消耗。所以当各项指标超过阈值后,既可以判断出哪些微服务发生了老化及老化的情况。
在当今时代,信息技术已经成为任何时间,任何地点,每项业务的骨干。业务连续性是软件设计的一个关键目标。这意味着操作一启动就要全天候24*7*365运行。许多研究中都有关于软件老化的现象,其特征是由于操作系统资源的耗尽,软件系统的性能逐渐下降或者软件出现宕机崩溃的发生率增加。为了消除这个现象,已经提供了一种软件抗衰的主动技术。本发明的贡献是将抗衰方法学与容器技术相结合,以解决微服务系统中的老化问题。在分布式云平台的集群环境中,实现抗衰无疑增加了任务的复杂性和灵活性。本发明中提出了容器垂直自动扩缩容技术,能够根据步骤3中观测到的CPU,内存,磁盘的利用率,容器自动调整资源的大小。
容器提供了资源需求(requests)和限制(limits)机制,在容器创建时,会根据用户的需求为容器创建所需资源的大小和资源的最大限制。资源需求的申请范围是0到容器节点的最大配置,而限制申请范围为资源需求到无限大。如果进程因使用超过预先设定的限制,会认为此进程资源紧张,系统会在其所在的服务器或者别的服务器重新创建一个资源更多的容器。这种容器资源不足的现象就是微服务的老化。
本发明把内存当作容器垂直自动扩缩容的指标。其原因如下:CPU是目前支持的一种可压缩资源,而内存资源和磁盘资源为目前支持的一种不可压缩资源。大部分老化是由于计算争用,网络争用,缓存,内存争用,和磁盘争用。当老化发生时,通过重启的方式解决老化,微服务的老化通过重新创建容器的方式能够很好地解决微服务老化现象。内存是一种不可压缩资源,而且极为敏感,当内存利用率超过限制时,进行重启/迁移操作,在别的集群服务器或本地资源更大的容器运行,能够同时解决计算争用,网络争用,缓存,内存,磁盘争用的情况。所以把内存作为容器垂直扩缩容的指标。
如图4所示,本发明还提供了一种用于微服务老化的抗衰系统,包括CVA Master节点、Source Server节点、NFS节点、Cloud Deploy Manager模块,其中,Source Server节点、NFS节点、Cloud Deploy Manager模块均与CVA Master节点连接。
其中,CVA Master节点为本系统的总控节点,用于控制各个节点的任务流和数据流的走向,起到了决策的作用。
Source Server节点为监控资源收集器,用于收集每个微服务的资源使用情况,为新资源的计算提供数据支持;本实施例设置每隔1秒收集一次。
NFS节点用于当作业为有状态作业时,用于存储容器的检查点和镜像文件,为容器迁移之后容器的还原做准备。
Cloud Deploy Manager模块为整个微服务运行的云平台,集群管理器的组件;本实施例中采用的是kubernetes。
如图5所示,一种用于微服务老化的抗衰方法,包括以下步骤:
步骤1,用户发出操作请求,任务进入任务队列中,排队等候处理;
步骤2,CVA Master节点在Cloud Deploy Manager模块中创建执行作业所需的启动项,启动项包括唯一的ID信息,并判断当前作业是有状态还是无状态;
步骤3,Cloud Deploy Manager模块执行当前作业,且通过Source Server节点分别收集CPU、内存和磁盘的资源的占用情况;
步骤4,根据步骤3采集得到的资源占用情况,通过下式计算新资源,其中,所述新资源是指新创建的容器的资源情况:
新资源=观察值的中位数+绝对偏差b
其中:
观察值的中位数是指在设定的时间内,所有采集到的资源占用情况的中位数。
设置每隔60秒计算一次新资源的大小;则观察值的中位数是指在60秒内,所采集到的60个资源占用情况的中位数。
步骤5,将步骤4计算得到的新资源与旧资源进行匹配,若新资源与旧资源无明显差别,作业继续执行;若两者匹配不成功,则CVA Master根据之前判断的作业状态执行不同的操作;
步骤6,对于有状态的作业,CVA Master节点向docker发送两条指令,一个是创建容器的检查点,另一个是创建包含该容器生成数据的镜像;同时将所创建的检查点和镜像信息发送给CVA Master;
步骤7,CVA Master节点将所创建的检查点和镜像信息存储到NFS中;
步骤8,集群管理器根据新资源的值申请资源,在集群管理器中创建新的容器;并将检查点和镜像下载到所选服务器,然后还原容器,实现容器的迁移;
步骤9,对于无状态的作业,集群管理器根据新资源的值申请资源,在集群管理器中创建新的容器,实现容器的重启。
给容器分配多少资源一般是用户自己定义的。据估计,在大约70%的情况下,用户请求的资源多于所需资源。本发明提出的新资源的计算公式推翻了之前用户凭经验定义资源大小的方式,很好地提高了资源的利用率。同时,根据作业的状态执行重启或迁移工作,大大缩短了服务停用的时间,提供了微服务系统的可用性。微服务使用容器的技术,由于容器更加轻量化,相比于传统的虚拟化技术,迁移的时间大大缩减。所以,本发明中提出的微服务抗衰的技术,系统可以实现无缝恢复,很有意义和价值。
本发明中不管是容器的重启或者容器的迁移实质都是重启容器,根据需要申请容器资源的大小。对于有状态的作业选择容器迁移的方式,大大减少了服务停止的时间。而对于无状态的作业执行容器的重启操作,而不是容器迁移的操作,也是为了减少镜像恢复的时间。本发明提出的这种容器垂直自动扩缩容技术能够很好地实现抗衰,提高微服务系统的可用性。
本发明首次提出了微服务老化与抗衰的概念及方法,具有创新性。把微服务与老化学相结合,利用深度学习的方法去预测微服务的老化现象,具有创新性。使用容器垂直扩缩容的方法,使资源得到很好地利用,解决了微服务抗衰的问题,具有创新性。
Claims (9)
1.一种用于微服务老化的预测方法,其特征在于,包括以下步骤:
步骤1,将被测微服务的未完成的请求数作为输入参数;
步骤2,获取输入参数的性能指标,所述性能指标包括网络吞吐量、CPU的使用情况、内存的使用情况和磁盘的使用情况;
步骤3,构建深度学习网络,结合步骤2获得的性能指标,计算每个性能指标导致每个微服务发生QoS冲突的概率值;
步骤4,当步骤3中的微服务发生QoS冲突的概率值大于等于80%时,采用较低级别的跟踪机制,用以检测微服务发生QoS冲突的影响因素,影响因素包括网络吞吐量、CPU的使用情况、内存的使用情况和磁盘的使用情况;
步骤5,根据步骤4得到的微服务发生QoS冲突的影响因素,计算每个微服务的老化率;
步骤6,根据步骤5中得到的微服务老化率,确定微服务老化的具体原因。
2.根据权利要求1所述的一种用于微服务老化的预测方法,其特征在于,步骤3中,构建深度学习网络,具体方法是:
所述深度学习网络包括输入层、隐含层和输出层,其中,将步骤2中获取的性能指标作为输入层的输入,所述输入层中的每个神经元代表一个微服务,输入层中的神经元按照拓扑顺序排列;
所述输出层中的每个神经元代表一个微服务,输出层中的神经元按照拓扑顺序排列;
所述隐含层采用的是CNN+LSTM模型,包括卷积层、循环层和最终层;其中,卷积层是通过提取标准CNN模型的卷积层和最大池化层进行构造;所述循环层为LSTM网络;所述最终层为SoftMax。
4.根据权利要求1所述的一种用于微服务老化的预测方法,其特征在于,步骤6中,确定微服务发生老化的具体原因,具体的方法是:
每个微服务对应的所有影响因素中,最高老化率所对应的影响因素为发生微服务老化的具体原因。
5.一种用于微服务老化的抗衰系统,其特征在于,包括CVA Master节点、SourceServer节点、NFS节点、Cloud Deploy Manager模块,其中,Source Server节点、NFS节点、Cloud Deploy Manager模块均与CVA Master节点连接;所述CVA Master节点用于控制各个节点的任务流和数据流的走向;所述Source Server节点为监控资源收集器,用于收集每个微服务的资源使用情况;所述NFS节点用于当作业为有状态作业时,存储容器的检查点和镜像文件;所述Cloud Deploy Manager模块为集群管理器的组件。
6.一种用于微服务老化的抗衰方法,其特征在于,基于权利要求5所述的一种用于微服务老化的抗衰系统,包括以下步骤:
步骤1,发出操作请求;
步骤2,CVA Master节点在Cloud Deploy Manager模块中创建执行作业所需的启动项,启动项包括唯一的ID信息,并判断当前作业的状态,所述当前作业状态为有状态或无状态;
步骤3,Cloud Deploy Manager模块执行当前作业,且通过Source Server节点分别收集CPU资源的占用情况、内存资源的占用情况和磁盘资源的占用情况;
步骤4,根据步骤3采集得到的资源占用情况,计算新资源;
步骤5,将步骤4计算得到的新资源与旧资源进行匹配,若新资源与旧资源匹配成功,则继续执行当前作业;若两者匹配不成功,则CVA Master根据作业状态执行不同的操作;具体地:
若当前作业为有状态时,则根据新资源在集群管理器中创建新的容器,并进行容器的迁移;
若当前作业为无状态时,则根据新资源在集群管理器中创建新的容器,并进行容器的重启。
7.根据权利要求6所述的一种用于微服务老化的抗衰方法,其特征在于,所述步骤4中,新资源的计算公式是:
新资源=观察值的中位数+绝对偏差b。
8.根据权利要求6所述的一种用于微服务老化的抗衰方法,其特征在于,步骤5中,若新资源与旧资源匹配不成功,且当前作业为有状态时,CVA Master节点向docker发送两条指令,其中一条指令是创建容器的检查点;另一条是创建包含该容器生成数据的镜像;同时将所创建的检查点和镜像信息发送给CVA Master节点;所述CVA Master节点将所创建的检查点和镜像信息存储到NFS节点中;集群管理器根据新资源的值申请资源,在集群管理器中创建新的容器;并将检查点和镜像下载到所选服务器,然后还原容器,实现容器的迁移。
9.根据权利要求6所述的一种用于微服务老化的抗衰方法,其特征在于,步骤5中,若新资源与旧资源匹配不成功,且当前作业为无状态时,集群管理器根据新资源的值申请资源,在集群管理器中创建新的容器,实现容器的重启。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010066223.3A CN111274111B (zh) | 2020-01-20 | 2020-01-20 | 一种用于微服务老化的预测与抗衰方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010066223.3A CN111274111B (zh) | 2020-01-20 | 2020-01-20 | 一种用于微服务老化的预测与抗衰方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111274111A true CN111274111A (zh) | 2020-06-12 |
CN111274111B CN111274111B (zh) | 2021-11-19 |
Family
ID=70996864
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010066223.3A Active CN111274111B (zh) | 2020-01-20 | 2020-01-20 | 一种用于微服务老化的预测与抗衰方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111274111B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111881023A (zh) * | 2020-07-10 | 2020-11-03 | 武汉理工大学 | 一种基于多模型对比的软件老化预测方法及装置 |
WO2024073901A1 (en) * | 2022-10-05 | 2024-04-11 | Hong Kong Applied Science and Technology Research Institute Company Limited | Method and apparatus for removing stale context in service instances in providing microservices |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105631196A (zh) * | 2015-12-22 | 2016-06-01 | 中国科学院软件研究所 | 一种面向微服务架构的容器级弹性资源供给系统及方法 |
CN105933448A (zh) * | 2016-06-29 | 2016-09-07 | 江苏电力信息技术有限公司 | 一种自管理的微服务架构及其服务方法 |
CN106330576A (zh) * | 2016-11-18 | 2017-01-11 | 北京红马传媒文化发展有限公司 | 容器化微服务自动伸缩及迁移调度的方法、系统和设备 |
CN107329799A (zh) * | 2017-05-22 | 2017-11-07 | 国网安徽省电力公司信息通信分公司 | 一种融合Docker容器与KVM虚拟化技术的系统 |
CN108228347A (zh) * | 2017-12-21 | 2018-06-29 | 上海电机学院 | 一种任务感知的Docker自适应调度系统 |
US20190028490A1 (en) * | 2017-07-21 | 2019-01-24 | Red Hat, Inc. | Container intrusion detection and prevention system |
CN110109733A (zh) * | 2019-04-29 | 2019-08-09 | 东北大学 | 面向不同老化场景的虚拟机工作队列和冗余队列更新方法 |
-
2020
- 2020-01-20 CN CN202010066223.3A patent/CN111274111B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105631196A (zh) * | 2015-12-22 | 2016-06-01 | 中国科学院软件研究所 | 一种面向微服务架构的容器级弹性资源供给系统及方法 |
CN105933448A (zh) * | 2016-06-29 | 2016-09-07 | 江苏电力信息技术有限公司 | 一种自管理的微服务架构及其服务方法 |
CN106330576A (zh) * | 2016-11-18 | 2017-01-11 | 北京红马传媒文化发展有限公司 | 容器化微服务自动伸缩及迁移调度的方法、系统和设备 |
CN107329799A (zh) * | 2017-05-22 | 2017-11-07 | 国网安徽省电力公司信息通信分公司 | 一种融合Docker容器与KVM虚拟化技术的系统 |
US20190028490A1 (en) * | 2017-07-21 | 2019-01-24 | Red Hat, Inc. | Container intrusion detection and prevention system |
CN108228347A (zh) * | 2017-12-21 | 2018-06-29 | 上海电机学院 | 一种任务感知的Docker自适应调度系统 |
CN110109733A (zh) * | 2019-04-29 | 2019-08-09 | 东北大学 | 面向不同老化场景的虚拟机工作队列和冗余队列更新方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111881023A (zh) * | 2020-07-10 | 2020-11-03 | 武汉理工大学 | 一种基于多模型对比的软件老化预测方法及装置 |
CN111881023B (zh) * | 2020-07-10 | 2022-05-06 | 武汉理工大学 | 一种基于多模型对比的软件老化预测方法及装置 |
WO2024073901A1 (en) * | 2022-10-05 | 2024-04-11 | Hong Kong Applied Science and Technology Research Institute Company Limited | Method and apparatus for removing stale context in service instances in providing microservices |
Also Published As
Publication number | Publication date |
---|---|
CN111274111B (zh) | 2021-11-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11301307B2 (en) | Predictive analysis for migration schedulers | |
CN108632365B (zh) | 服务资源调整方法、相关装置和设备 | |
Chtepen et al. | Adaptive task checkpointing and replication: Toward efficient fault-tolerant grids | |
CN109324875B (zh) | 一种基于强化学习的数据中心服务器功耗管理与优化方法 | |
CN107592345B (zh) | 交易限流装置、方法及交易系统 | |
CN111274111B (zh) | 一种用于微服务老化的预测与抗衰方法 | |
CN112799817A (zh) | 一种微服务资源调度系统和方法 | |
CN115208879A (zh) | 将查询定向到跨主机系统和主机系统的硬件加速器分布的容器编排平台的集群的节点 | |
CN115080248B (zh) | 调度装置的调度优化方法、调度装置和存储介质 | |
Chalermarrewong et al. | The design of a fault management framework for cloud | |
Ang et al. | Analysis and optimization of service availability in a HA cluster with load-dependent machine availability | |
CN112130927B (zh) | 一种可靠性增强的移动边缘计算任务卸载方法 | |
Hagshenas et al. | A fuzzy approach to fault tolerant in cloud using the checkpoint migration technique | |
Tuli et al. | DRAGON: Decentralized fault tolerance in edge federations | |
CN114281508A (zh) | 一种数据批流融合离线计算方法 | |
US20230418663A1 (en) | System and methods for dynamic workload migration and service utilization based on multiple constraints | |
CN103885856A (zh) | 一种基于消息再生机制的图计算容错方法及系统 | |
CN110728372B (zh) | 一种人工智能模型动态加载的集群设计方法及集群系统 | |
WO2023165512A1 (zh) | 一种故障文件保存方法及相关装置 | |
Tuli et al. | Deepft: Fault-tolerant edge computing using a self-supervised deep surrogate model | |
CN116578408A (zh) | 一种支撑智能制造软件的运行资源调度方法 | |
US20220019461A1 (en) | Platform health engine in infrastructure processing unit | |
Stahl et al. | Dynamic fault-tolerance and mobility provisioning for services on mobile cloud platforms | |
CN112181601A (zh) | 基于脏化速率预测的内存预拷贝及虚拟机迁移方法及系统 | |
CN116668271B (zh) | 容器集群管理系统的容器迁移方法、装置、设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |