CN114911615B - 微服务运行时智能预测调度的方法及应用 - Google Patents
微服务运行时智能预测调度的方法及应用 Download PDFInfo
- Publication number
- CN114911615B CN114911615B CN202210488072.XA CN202210488072A CN114911615B CN 114911615 B CN114911615 B CN 114911615B CN 202210488072 A CN202210488072 A CN 202210488072A CN 114911615 B CN114911615 B CN 114911615B
- Authority
- CN
- China
- Prior art keywords
- node
- service
- micro
- scheduling
- data
- 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.)
- Active
Links
Images
Classifications
-
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种微服务运行时智能预测调度的方法及应用,该方法包括以下步骤:将微服务部署到Kubernetes的调度器中,并在所述微服务启动时,通过Sidecar模式将Sidecar pod部署至所述微服务的pod中;通过eBPF的功能获取所述微服务中的函数调用关系和参数,并通过trace analysis***的配置文件收集并分析所述微服务运行时每个节点上的节点数据;根据所述微服务在各节点的节点数据计算对应节点的score值,以便于调度服务根据各节点的score值进行调度。该方法能够通过观察和分析***中微服务在各节点的运行情况和***网络情况,动态控制调度容器部署的节点,保证***的稳定,更稳定的调度节点微服务分布策略,***可能发生的问题,减少不稳定的因素。
Description
技术领域
本发明是关于云平台技术领域,特别是关于一种微服务运行时智能预测调度的方法及应用。
背景技术
微服务是目前互联网公司常用的架构,与传统单体架构相比,微服务架构更加适应互联网快速、灵活的特点。微服务集群往往是由多个可灵活伸缩的微服务组成,多个微服务被部署在多台服务器上,通过多台服务器之间的相互通信和相互调用来执行任务。利用容器或插件式设计可以实现微服务集群的拆分、组装和部署等。
公开于该背景技术部分的信息仅仅旨在增加对本发明的总体背景的理解,而不应当被视为承认或以任何形式暗示该信息构成已为本领域一般技术人员所公知的现有技术。
发明内容
本发明的目的在于提供一种微服务运行时智能预测调度的方法及应用,解决默认调度算法没有考虑真实情况的磁盘状态,CPU状态等硬件信息的问题。
为实现上述目的,本发明的实施例提供了一种微服务运行时智能预测调度的方法。
在本发明的一个或多个实施方式中,所述方法包括:将微服务部署到Kubernetes的调度器中,并在所述微服务启动时,通过Sidecar模式将Sidecar pod部署至所述微服务的pod中;通过eBPF的功能获取所述微服务中的函数调用关系和参数,并通过traceanalysis***的配置文件收集并分析所述微服务运行时每个节点上的节点数据;根据所述微服务在各节点的节点数据计算对应节点的score值,以便于调度服务根据各节点的score值进行调度。
在本发明的一个或多个实施方式中,所述通过trace analysis***的配置文件收集并分析微服务运行时每个节点上的节点数据,包括:通过预测算法计算所述微服务在各节点运行预设时长后的负载使用情况;通过预测算法计算所述微服务在各节点运行预设时长后的磁盘使用情况;以及根据所述微服务在各节点运行预设时长后的负载和磁盘使用情况计算对应节点的预测评分值。
在本发明的一个或多个实施方式中,所述通过预测算法计算所述微服务在各节点运行预设时长后的负载使用情况,包括:对所述节点数据进行特征选择,其中,所述特征包括但不限于:磁盘型号、SMART属性、BMS属性、时间记录、磁盘健康度、事件日志、CPU使用频率、CPU温度以及磁盘坏区;对特征选择后的所述节点数据进行降噪,以过滤掉空值数据;计算降噪后的所述节点数据特征的变化率和方差,并将所述变化率和所述方差加入到所述节点数据中;以及根据随机森林算法和处理后的所述节点数据对节点进行分类。
在本发明的一个或多个实施方式中,所述通过预测算法计算所述微服务在各节点运行预设时长后的磁盘使用情况,包括:对所述节点数据进行特征选择,其中,所述特征包括但不限于:count值、缺失值、标准差以及历史时间点的磁盘使用率;通过中位值对所述节点数据的缺失值进行填充;根据Sarima模型、GBDT模型和填充后的所述节点数据对节点进行分类。
在本发明的一个或多个实施方式中,根据所述微服务在各节点的节点数据计算对应节点的score值,包括:对所述节点数据进行特征提取,其中,所述特征包括但不限于:节点负载、带宽、内存使用、cpu使用、runc数目、cpu数目、网络流量、cpu当前运行任务、微服务进程和线程数目、微服务goroutine的数目以及微服务函数参数数目;对特征提取后的所述节点数据进行标注,并对标注后的所述节点数据进行归一化处理,作为参考训练数据;根据所述参考训练数据和所述预测评分值计算每个节点的score值。
在本发明的一个或多个实施方式中,所述方法还包括:在所有节点资源都充足或部分节点资源充足时,获取所有资源充足节点上的容器数目;以及选择容器数目最少且所述score值最高的所述节点进行调度。
在本发明的一个或多个实施方式中,所述方法还包括:在所有节点的资源都不足的情况下,在所述Kubernetes集群中增加节点,以提升***资源。
在本发明的另一个方面当中,提供了一种微服务运行时智能预测调度的装置,其包括部署模块、收集分析模块和预测调度模块。
部署模块,用于将微服务部署到Kubernetes的调度器中,并在所述微服务启动时,通过Sidecar模式将Sidecar pod部署至所述微服务的pod中。
收集分析模块,用于通过eBPF的功能获取所述微服务中的函数调用关系和参数,并通过trace analysis***的配置文件收集并分析所述微服务运行时每个节点上的节点数据。
预测调度模块,用于根据所述微服务在各节点的节点数据计算对应节点的score值,以便于调度服务根据各节点的score值进行调度。
在本发明的一个或多个实施方式中,所述收集分析模块还用于:通过预测算法计算所述微服务在各节点运行预设时长后的负载使用情况;通过预测算法计算所述微服务在各节点运行预设时长后的磁盘使用情况;以及根据所述微服务在各节点运行预设时长后的负载和磁盘使用情况计算对应节点的预测评分值。
在本发明的一个或多个实施方式中,所述收集分析模块还用于:对所述节点数据进行特征选择,其中,所述特征包括但不限于:磁盘型号、SMART属性、BMS属性、时间记录、磁盘健康度、事件日志、CPU使用频率、CPU温度以及磁盘坏区;对特征选择后的所述节点数据进行降噪,以过滤掉空值数据;计算降噪后的所述节点数据特征的变化率和方差,并将所述变化率和所述方差加入到所述节点数据中;以及根据随机森林算法和处理后的所述节点数据对节点进行分类。
在本发明的一个或多个实施方式中,所述收集分析模块还用于:对所述节点数据进行特征选择,其中,所述特征包括但不限于:count值、缺失值、标准差以及历史时间点的磁盘使用率;通过中位值对所述节点数据的缺失值进行填充;根据Sarima模型、GBDT模型和填充后的所述节点数据对节点进行分类。
在本发明的一个或多个实施方式中,所述预测调度模块还用于:对所述节点数据进行特征提取,其中,所述特征包括但不限于:节点负载、带宽、内存使用、cpu使用、runc数目、cpu数目、网络流量、cpu当前运行任务、微服务进程和线程数目、微服务goroutine的数目以及微服务函数参数数目;对特征提取后的所述节点数据进行标注,并对标注后的所述节点数据进行归一化处理,作为参考训练数据;根据所述参考训练数据和所述预测评分值计算每个节点的score值。
在本发明的一个或多个实施方式中,所述预测调度模块还用于:在所有节点资源都充足或部分节点资源充足时,获取所有资源充足节点上的容器数目;以及选择容器数目最少且所述score值最高的所述节点进行调度。
在本发明的一个或多个实施方式中,所述预测调度模块还用于:在所有节点的资源都不足的情况下,在所述Kubernetes集群中增加节点,以提升***资源。
在本发明的另一个方面当中,提供了一种电子设备,包括:至少一个处理器;以及存储器,所述存储器存储指令,当所述指令被所述至少一个处理器执行时,使得所述至少一个处理器执行如上所述的微服务运行时智能预测调度的方法。
在本发明的另一个方面当中,提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如所述的微服务运行时智能预测调度的方法的步骤。
与现有技术相比,根据本发明实施方式的微服务运行时智能预测调度的方法及应用,其能够通过观察和分析***中微服务在各节点的运行情况和***网络情况,动态控制调度容器部署的节点,保证***的稳定,更稳定的调度节点微服务分布策略,***可能发生的问题,减少不稳定的因素。
附图说明
图1是根据本发明一实施方式的微服务运行时智能预测调度的方法的流程图;
图2是根据本发明一实施方式的微服务运行时智能预测调度的方法的***架构图;
图3是根据本发明一实施方式的微服务运行时智能预测调度的方法的时序图;
图4是根据本发明一实施方式的微服务运行时智能预测调度的方法的示意图;
图5是根据本发明一实施方式的微服务运行时智能预测调度的方法的具体流程图;
图6是根据本发明一实施方式的微服务运行时智能预测调度的装置的结构图;
图7是根据本发明一实施方式的微服务运行时智能预测调度的计算设备的硬件结构图。
具体实施方式
下面结合附图,对本发明的具体实施方式进行详细描述,但应当理解本发明的保护范围并不受具体实施方式的限制。
除非另有其它明确表示,否则在整个说明书和权利要求书中,术语“包括”或其变换如“包含”或“包括有”等等将被理解为包括所陈述的元件或组成部分,而并未排除其它元件或其它组成部分。
以下结合附图,详细说明本发明各实施例提供的技术方案。
实施例1
如图1至图4所示,介绍本发明的一个实施例中微服务运行时智能预测调度的方法,该方法包括如下步骤。
在步骤S101中,将微服务部署到Kubernetes的调度器中,并在微服务启动时,通过Sidecar模式将Sidecar pod部署至微服务的pod中。
如图2所示,将微服务部署到Kubernetes的调度器中,在每次微服务启动的时候,都可以通过Sidecar的方式将Sidecar pod部署到微服务的pod中,以便能够更好的实现收集功能。Sidecar模式是Service Mesh中习惯采用的模式,可以将应用程序的功能划分为单独的进程,Sidecar一方面用于网络流量的监控,将网络流量传输到eBPF(eBPF是一项革命性的技术,可以在Linux内核中运行沙盒程序,而无需更改内核源代码或加载内核模块。通过使Linux内核可编程,基础架构软件可以利用现有的层,从而使它们更加智能和功能丰富,而无需继续为***增加额外的复杂性层),然后eBPF***将网络流量传输到traceanalysis模块中,trace analysis模块能够实时的展现出网络流量和API调用情况。
在步骤S102中,通过eBPF的功能获取微服务中的函数调用关系和参数,并通过trace analysis***的配置文件收集并分析微服务运行时每个节点上的节点数据。
Sidecar会使用eBPF的功能获取运行时微服务中的函数调用关系和参数,通过trace analysis***的配置文件来控制观察微服务运行时的情况。trace analysis更多的用于观察和收集微服务的运行情况。在运行时环境下,能够更加敏锐的发现***中不稳定的因素,能够在一定程度上***到***可能会遇到的情况,避免等到节点出现问题的时候,还需要做迁移。
根据收集到的每个节点的节点数据,实时的计算每个节点的预测评分值,以便于调度服务根据算法数据进行调度。
具体的,检查微服务在各节点运行预设时长后的磁盘故障率,首先对traceanalysis模块收集到的节点数据进行特征选择,选择的特征包括但不限于:磁盘型号、SMART属性、BMS属性、时间记录、磁盘健康度、事件日志、CPU使用频率、CPU温度以及磁盘坏区。
其中,SMART属性是SMART监控电脑硬盘以检测和报告各种可靠性的指标。这项技术旨在预测硬盘故障并向用户发出警告,让用户替换状况不佳的驱动器,进而避免数据丢失或意外中断运行。BMS属性记录的是磁盘属性在使用周期内的累积计数。
对特征选择后的节点数据进行降噪,以过滤空值数据;计算降噪后的节点数据特征的变化率和方差,并将变化率和方差加入到节点数据中;以及根据随机森林算法和处理后的节点数据对节点进行分类,进而筛选出负载情况良好,可以供微服务调度的节点。
预测微服务在各节点运行预设时长后的磁盘使用率,对对trace analysis模块收集到的节点数据进行特征选择,其中,特征包括但不限于:count值、缺失值、标准差以及历史时间点的磁盘使用率;通过中位值对节点数据中的缺失值进行填充;根据Sarima模型、GBDT模型和填充后的节点数据对节点进行分类,进而筛选出磁盘使用率低,可以供微服务调度的节点。
Sarima:(Seasonal Autoregressive Integrated Moving Average),季节性差分自回归滑动平均模型,时间序列预测分析方法之一。GBDT:GBDT模型是一个加法模型,它串行地训练一组CART回归树,最终对所有回归树的预测结果加和,由此得到一个强学习器,每一颗新树都拟合当前损失函数的负梯度方向。
将微服务在各节点运行预设时长后的负载和磁盘使用情况加权,以计算对应节点的预测评分值predict。
predict=R*D+P*V+Delta
其中,R和P是加权值,D是微服务在各节点运行预设时长后的负载使用情况,V是微服务在各节点运行预设时长后的磁盘使用情况,Delta是误差。
通过eBPF拦截微服务在节点运行时的数据,将数据传输到trace analysis模块分析,数据收集主要通过上述的架构流程,通过trace analysis模块收集并分析数据,得益于eBPF和Sidecar的特点,能够拦截到***和微服务的网络流量,微服务的函数数据等。
在步骤S103中,根据微服务在各节点的节点数据计算对应节点的score值,以便于调度服务根据各节点的score值进行调度。
容器的调度使用Kubernetes-scheduler来控制,通过智能预测容器调度算法来进行调度。具体的,对trace analysis模块收集到的节点数据进行特征提取,其中,特征包括但不限于:节点负载、带宽、内存使用、cpu使用、runc数目、cpu数目、网络流量、cpu当前运行任务、微服务进程和线程数目、微服务goroutine的数目以及微服务函数参数数目;对特征提取后的节点数据进行标注,并对标注后的节点数据进行归一化处理,转化为0-1区间的数据值,将归一化后的数据作为参考训练数据;根据pointwise思想、参考训练数据和预测评分值计算每个节点的score值:
Score(node,runtime)=a*cos(node)+b*(xi-xj)2+predict
其中,a,b是权重参数,xi-xj是相同特征的相似距离,predict是预测评分值。
在Kubernetes集群的所有节点的资源都充足或存在部分节点的资源充足的情况下,在资源充足的节点中选择容器数目最少且score值最高的节点进行微服务调度。
本实施例的score值充分考虑了预测数据带来的影响,相比于默认的调度算法可以更好的提前预知一些硬件带来的影响,避免硬件导致的调度的失败。
实施例2
如图5所示,介绍本发明的一个实施例中微服务运行时智能预测调度的方法,该方法包括如下步骤。
在步骤S201中,将微服务部署到Kubernetes的调度器中,并在微服务启动时,通过Sidecar模式将Sidecar pod部署至微服务的pod中。
将微服务部署到Kubernetes的调度器中,在每次微服务启动的时候,都可以通过Sidecar的方式将Sidecar pod部署到微服务的pod中,以便能够更好的实现收集功能。Sidecar模式是Service Mesh中习惯采用的模式,可以将应用程序的功能划分为单独的进程,Sidecar一方面用于网络流量的监控,将网络流量传输到eBPF(eBPF是一项革命性的技术,可以在Linux内核中运行沙盒程序,而无需更改内核源代码或加载内核模块。通过使Linux内核可编程,基础架构软件可以利用现有的层,从而使它们更加智能和功能丰富,而无需继续为***增加额外的复杂性层),然后eBPF***将网络流量传输到traceanalysis模块中,trace analysis模块能够实时的展现出网络流量和API调用情况。
在步骤S202中,通过预测算法计算微服务在各节点运行预设时长后的负载使用情况。
检查微服务在各节点运行预设时长后的磁盘故障率,首先对trace analysis模块收集到的节点数据进行特征选择,选择的特征包括但不限于:磁盘型号、SMART属性、BMS属性、时间记录、磁盘健康度、事件日志、CPU使用频率、CPU温度以及磁盘坏区。
其中,SMART属性是SMART监控电脑硬盘以检测和报告各种可靠性的指标。这项技术旨在预测硬盘故障并向用户发出警告,让用户替换状况不佳的驱动器,进而避免数据丢失或意外中断运行。BMS属性记录的是磁盘属性在使用周期内的累积计数。
对特征选择后的节点数据进行降噪,以过滤空值数据;计算降噪后的节点数据特征的变化率和方差,并将变化率和方差加入到节点数据中;以及根据随机森林算法和处理后的节点数据对节点进行分类,进而筛选出负载情况良好,可以供微服务调度的节点。
在步骤S203中,通过预测算法计算微服务在各节点运行预设时长后的磁盘使用情况。
预测微服务在各节点运行预设时长后的磁盘使用率,对trace analysis模块收集到的节点数据进行特征选择,其中,特征包括但不限于:count值、缺失值、标准差以及历史时间点的磁盘使用率;通过中位值对节点数据中的缺失值进行填充;根据Sarima模型、GBDT模型和填充后的节点数据对节点进行分类,进而筛选出磁盘使用率低,可以供微服务调度的节点。
Sarima:(Seasonal Autoregressive Integrated Moving Average),季节性差分自回归滑动平均模型,时间序列预测分析方法之一。GBDT:GBDT模型是一个加法模型,它串行地训练一组CART回归树,最终对所有回归树的预测结果加和,由此得到一个强学习器,每一颗新树都拟合当前损失函数的负梯度方向。
在步骤S204中,根据微服务在各节点运行预设时长后的负载和磁盘使用情况计算对应节点的预测评分值。
将微服务在各节点运行预设时长后的负载和磁盘使用情况加权,以计算对应节点的预测评分值predict。
predict=R*D+P*V+Delta
其中,R和P是加权值,D是微服务在各节点运行预设时长后的负载使用情况,V是微服务在各节点运行预设时长后的磁盘使用情况,Delta是误差。
在步骤S205中,根据微服务在各节点的节点数据计算对应节点的score值。
对trace analysis模块收集到的节点数据进行特征提取,其中,特征包括但不限于:节点负载、带宽、内存使用、cpu使用、runc数目、cpu数目、网络流量、cpu当前运行任务、微服务进程和线程数目、微服务goroutine的数目以及微服务函数参数数目;对特征提取后的节点数据进行标注,并对标注后的节点数据进行归一化处理,转化为0-1区间的数据值,将归一化后的数据作为参考训练数据;根据pointwise思想、参考训练数据和预测评分值计算每个节点的score值:
Score(node,runtime)=a*cos(node)+b*(xi-xj)2+predict
其中,a,b是权重参数,xi-xj是相同特征的相似距离,predict是预测评分值。
在步骤S206中,选择容器数目最少且score值最高的节点进行调度。
在Kubernetes集群的所有节点的资源都充足或存在部分节点的资源充足的情况下,在资源充足的节点中选择容器数目最少且score值最高的节点进行微服务调度。
如图6所示,介绍根据本发明具体实施方式的微服务运行时智能预测调度的装置。
在本发明的实施方式中,微服务运行时智能预测调度的装置包括部署模块601、收集分析模块602和预测调度模块603。
部署模块601,用于将微服务部署到Kubernetes的调度器中,并在微服务启动时,通过Sidecar模式将Sidecar pod部署至微服务的pod中。
收集分析模块602,用于通过eBPF的功能获取微服务中的函数调用关系和参数,并通过trace analysis***的配置文件收集并分析微服务运行时每个节点上的节点数据。
预测调度模块603,用于根据微服务在各节点的节点数据计算对应节点的score值,以便于调度服务根据各节点的score值进行调度。
收集分析模块602还用于:通过预测算法计算微服务在各节点运行预设时长后的负载使用情况;通过预测算法计算微服务在各节点运行预设时长后的磁盘使用情况;以及根据微服务在各节点运行预设时长后的负载和磁盘使用情况计算对应节点的预测评分值。
收集分析模块602还用于:对节点数据进行特征选择,其中,特征包括但不限于:磁盘型号、SMART属性、BMS属性、时间记录、磁盘健康度、事件日志、CPU使用频率、CPU温度以及磁盘坏区;对特征选择后的节点数据进行降噪,以过滤掉空值数据;计算降噪后的节点数据特征的变化率和方差,并将变化率和方差加入到节点数据中;以及根据随机森林算法和处理后的节点数据对节点进行分类。
收集分析模块602还用于:对节点数据进行特征选择,其中,特征包括但不限于:count值、缺失值、标准差以及历史时间点的磁盘使用率;通过中位值对节点数据的缺失值进行填充;根据Sarima模型、GBDT模型和填充后的节点数据对节点进行分类。
预测调度模块603还用于:对节点数据进行特征提取,其中,特征包括但不限于:节点负载、带宽、内存使用、cpu使用、runc数目、cpu数目、网络流量、cpu当前运行任务、微服务进程和线程数目、微服务goroutine的数目以及微服务函数参数数目;对特征提取后的节点数据进行标注,并对标注后的节点数据进行归一化处理,作为参考训练数据;根据参考训练数据和预测评分值计算每个节点的score值。
预测调度模块603还用于:在所有节点资源都充足或部分节点资源充足时,获取所有资源充足节点上的容器数目;以及选择容器数目最少且score值最高的节点进行调度。
预测调度模块603还用于:在所有节点的资源都不足的情况下,在Kubernetes集群中增加节点,以提升***资源。
图7示出了根据本说明书的实施例的用于微服务运行时智能预测调度的计算设备70的硬件结构图。如图7所示,计算设备70可以包括至少一个处理器701、存储器702(例如非易失性存储器)、内存703和通信接口704,并且至少一个处理器701、存储器702、内存703和通信接口704经由总线705连接在一起。至少一个处理器701执行在存储器702中存储或编码的至少一个计算机可读指令。
应该理解,在存储器702中存储的计算机可执行指令当执行时使得至少一个处理器701进行本说明书的各个实施例中以上结合图1-7描述的各种操作和功能。
在本说明书的实施例中,计算设备70可以包括但不限于:个人计算机、服务器计算机、工作站、桌面型计算机、膝上型计算机、笔记本计算机、移动计算设备、智能电话、平板计算机、蜂窝电话、个人数字助理(PDA)、手持装置、消息收发设备、可佩戴计算设备、消费电子设备等等。
根据一个实施例,提供了一种比如机器可读介质的程序产品。机器可读介质可以具有指令(即,上述以软件形式实现的元素),该指令当被机器执行时,使得机器执行本说明书的各个实施例中以上结合图1-7描述的各种操作和功能。具体地,可以提供配有可读存储介质的***或者装置,在该可读存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该***或者装置的计算机或处理器读出并执行存储在该可读存储介质中的指令。
根据本发明实施方式的微服务运行时智能预测调度的方法及应用,其能够通过观察和分析***中微服务在各节点的运行情况和***网络情况,动态控制调度容器部署的节点,保证***的稳定,更稳定的调度节点微服务分布策略,***可能发生的问题,减少不稳定的因素。
本领域内的技术人员应明白,本发明的实施例可提供为方法、***、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
前述对本发明的具体示例性实施方案的描述是为了说明和例证的目的。这些描述并非想将本发明限定为所公开的精确形式,并且很显然,根据上述教导,可以进行很多改变和变化。对示例性实施例进行选择和描述的目的在于解释本发明的特定原理及其实际应用,从而使得本领域的技术人员能够实现并利用本发明的各种不同的示例性实施方案以及各种不同的选择和改变。本发明的范围意在由权利要求书及其等同形式所限定。
Claims (9)
1.一种微服务运行时智能预测调度的方法,其特征在于,所述方法包括:
将微服务部署到Kubernetes的调度器中,并在所述微服务启动时,通过Sidecar模式将Sidecar pod部署至所述微服务的pod中;
通过eBPF的功能获取所述微服务中的函数调用关系和参数,并通过trace analysis***的配置文件收集并分析所述微服务运行时每个节点上的节点数据;以及
根据所述微服务在各节点的节点数据计算对应节点的score值,以便于调度服务根据各节点的score值进行调度;
其中所述通过trace analysis***的配置文件收集并分析微服务运行时每个节点上的节点数据,包括:
通过预测算法计算所述微服务在各节点运行预设时长后的负载使用情况;
通过预测算法计算所述微服务在各节点运行预设时长后的磁盘使用情况;以及
根据所述微服务在各节点运行预设时长后的负载和磁盘使用情况计算对应节点的预测评分值。
2.如权利要求1所述的微服务运行时智能预测调度的方法,其特征在于,所述通过预测算法计算所述微服务在各节点运行预设时长后的负载使用情况,包括:
对所述节点数据进行特征选择,其中,所述特征包括但不限于:磁盘型号、SMART属性、BMS属性、时间记录、磁盘健康度、事件日志、CPU使用频率、CPU温度以及磁盘坏区;
对特征选择后的所述节点数据进行降噪,以过滤掉空值数据;
计算降噪后的所述节点数据特征的变化率和方差,并将所述变化率和所述方差加入到所述节点数据中;以及
根据随机森林算法和处理后的所述节点数据对节点进行分类。
3.如权利要求1所述的微服务运行时智能预测调度的方法,其特征在于,所述通过预测算法计算所述微服务在各节点运行预设时长后的磁盘使用情况,包括:
对所述节点数据进行特征选择,其中,所述特征包括但不限于:count值、缺失值、标准差以及历史时间点的磁盘使用率;
通过中位值对所述节点数据的缺失值进行填充;
根据Sarima模型、GBDT模型和填充后的所述节点数据对节点进行分类。
4.如权利要求1所述的微服务运行时智能预测调度的方法,其特征在于,根据所述微服务在各节点的节点数据计算对应节点的score值,包括:
对所述节点数据进行特征提取,其中,所述特征包括但不限于:节点负载、带宽、内存使用、cpu使用、runc数目、cpu数目、网络流量、cpu当前运行任务、微服务进程和线程数目、微服务goroutine的数目以及微服务函数参数数目;
对特征提取后的所述节点数据进行标注,并对标注后的所述节点数据进行归一化处理,作为参考训练数据;
根据所述参考训练数据和所述预测评分值计算每个节点的score值。
5.如权利要求4所述的微服务运行时智能预测调度的方法,其特征在于,所述方法还包括:
在根据所述微服务在各节点的节点数据计算对应节点的score值前,筛选出所述Kubernetes集群中资源充足的节点,其中,所述资源包括但不限于:磁盘容量、CPU以及内存;
获取所述资源充足节点上的容器数目;以及
在所述资源充足节点中选择容器数目最少且所述score值最高的节点进行调度。
6.如权利要求5所述的微服务运行时智能预测调度的方法,其特征在于,所述方法还包括:
在所有节点的资源都不足的情况下,在所述Kubernetes集群中增加节点,以提升***资源。
7.一种微服务运行时智能预测调度的装置,其特征在于,所述装置包括:
部署模块,用于将微服务部署到Kubernetes的调度器中,并在所述微服务启动时,通过Sidecar模式将Sidecar pod部署至所述微服务的pod中;
收集分析模块,用于通过eBPF的功能获取所述微服务中的函数调用关系和参数,并通过trace analysis***的配置文件收集并分析所述微服务运行时每个节点上的节点数据,其中所述通过trace analysis***的配置文件收集并分析微服务运行时每个节点上的节点数据,包括:通过预测算法计算所述微服务在各节点运行预设时长后的负载使用情况;通过预测算法计算所述微服务在各节点运行预设时长后的磁盘使用情况;以及根据所述微服务在各节点运行预设时长后的负载和磁盘使用情况计算对应节点的预测评分值;
预测调度模块,用于根据所述微服务在各节点的节点数据计算对应节点的score值,以便于调度服务根据各节点的score值进行调度。
8.一种电子设备,其特征在于,包括:
至少一个处理器;以及
存储器,所述存储器存储指令,当所述指令被所述至少一个处理器执行时,使得所述至少一个处理器执行如权利要求1至6中任一项所述的微服务运行时智能预测调度的方法。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述的微服务运行时智能预测调度的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210488072.XA CN114911615B (zh) | 2022-05-06 | 2022-05-06 | 微服务运行时智能预测调度的方法及应用 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210488072.XA CN114911615B (zh) | 2022-05-06 | 2022-05-06 | 微服务运行时智能预测调度的方法及应用 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114911615A CN114911615A (zh) | 2022-08-16 |
CN114911615B true CN114911615B (zh) | 2023-05-30 |
Family
ID=82767694
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210488072.XA Active CN114911615B (zh) | 2022-05-06 | 2022-05-06 | 微服务运行时智能预测调度的方法及应用 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114911615B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116192962B (zh) * | 2023-02-27 | 2023-11-14 | 中国人民解放军国防科技大学 | 一种面向云边端计算的通信聚合方法及*** |
CN117707523B (zh) * | 2024-02-05 | 2024-06-07 | 中铁四局集团有限公司 | 一种自定义组态可视化管理方法及管理应用平台 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108712464A (zh) * | 2018-04-13 | 2018-10-26 | 中国科学院信息工程研究所 | 一种面向集群微服务高可用的实现方法 |
CN110780998A (zh) * | 2019-09-29 | 2020-02-11 | 武汉大学 | 基于Kubernetes的动态负载均衡资源调度方法 |
CN112256542A (zh) * | 2020-10-19 | 2021-01-22 | 中山大学 | 基于eBPF的微服务***性能检测方法、装置和*** |
CN112532538A (zh) * | 2020-11-23 | 2021-03-19 | 中信银行股份有限公司 | 流量的控制方法、装置、电子设备及计算机可读存储介质 |
CN113687919A (zh) * | 2021-08-30 | 2021-11-23 | 济南浪潮数据技术有限公司 | 一种微服务治理的控制方法、装置、设备及存储介质 |
CN113938533A (zh) * | 2021-10-15 | 2022-01-14 | 京东科技信息技术有限公司 | 应用间的通信方法、装置、电子设备及计算机可读介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220109733A1 (en) * | 2021-11-19 | 2022-04-07 | Intel Corporation | Service mesh offload to network devices |
-
2022
- 2022-05-06 CN CN202210488072.XA patent/CN114911615B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108712464A (zh) * | 2018-04-13 | 2018-10-26 | 中国科学院信息工程研究所 | 一种面向集群微服务高可用的实现方法 |
CN110780998A (zh) * | 2019-09-29 | 2020-02-11 | 武汉大学 | 基于Kubernetes的动态负载均衡资源调度方法 |
CN112256542A (zh) * | 2020-10-19 | 2021-01-22 | 中山大学 | 基于eBPF的微服务***性能检测方法、装置和*** |
CN112532538A (zh) * | 2020-11-23 | 2021-03-19 | 中信银行股份有限公司 | 流量的控制方法、装置、电子设备及计算机可读存储介质 |
CN113687919A (zh) * | 2021-08-30 | 2021-11-23 | 济南浪潮数据技术有限公司 | 一种微服务治理的控制方法、装置、设备及存储介质 |
CN113938533A (zh) * | 2021-10-15 | 2022-01-14 | 京东科技信息技术有限公司 | 应用间的通信方法、装置、电子设备及计算机可读介质 |
Non-Patent Citations (1)
Title |
---|
夏晨 等.一种电力调度自动化***微服务改造技术.《工业控制计算机》.2021,第34卷(第1期),93-95. * |
Also Published As
Publication number | Publication date |
---|---|
CN114911615A (zh) | 2022-08-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114911615B (zh) | 微服务运行时智能预测调度的方法及应用 | |
Bhattacharjee et al. | Barista: Efficient and scalable serverless serving system for deep learning prediction services | |
US10938678B2 (en) | Automation plan generation and ticket classification for automated ticket resolution | |
US9268663B1 (en) | Software testing analysis and control | |
CN110851342A (zh) | 故障预测方法、装置、计算设备以及计算机可读存储介质 | |
US11514347B2 (en) | Identifying and remediating system anomalies through machine learning algorithms | |
US10628766B2 (en) | Method and system for enabling dynamic capacity planning | |
US11144289B1 (en) | Dynamic automation of selection of pipeline artifacts | |
US9189738B2 (en) | Automatic event analysis | |
CN110955586A (zh) | 一种基于日志的***故障预测方法、装置和设备 | |
CN111355606A (zh) | 面向web应用的容器集群自适应扩缩容***和方法 | |
CN114818446B (zh) | 面向5g云边端协同的电力业务分解方法及*** | |
Bogojeska et al. | Classifying server behavior and predicting impact of modernization actions | |
US10372572B1 (en) | Prediction model testing framework | |
CN115543577A (zh) | 基于协变量的Kubernetes资源调度优化方法、存储介质及设备 | |
EP4162357A1 (en) | Efficient packaging of components | |
EP3514737A1 (en) | System and method for detecting and forecasting the behavior of a system | |
CN112148458A (zh) | 任务调度方法、装置 | |
CN115994029A (zh) | 容器资源调度方法及装置 | |
AU2022291505A1 (en) | Utilizing machine learning models to analyze an impact of a change request | |
CN115827232A (zh) | 一种为业务模型确定配置的方法、装置、***及设备 | |
CN113032237B (zh) | 数据处理方法及装置、电子设备和计算机可读存储介质 | |
CN115202847A (zh) | 任务的调度方法和装置 | |
US20180005249A1 (en) | Optimize a resource allocation plan corresponding to a legacy software product sustenance | |
CN113986495A (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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20230508 Address after: Room 1602, No. 6, Financial Third Street, Wuxi Economic Development Zone, Jiangsu Province, 214,000 Applicant after: Anchao cloud Software Co.,Ltd. Address before: Room 1601, no.6, financial Third Street, Wuxi Economic Development Zone, Jiangsu Province, 214000 Applicant before: Jiangsu Anchao cloud Software Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |