CN116755872A - 基于topsis的容器化流媒体服务动态加载系统及方法 - Google Patents
基于topsis的容器化流媒体服务动态加载系统及方法 Download PDFInfo
- Publication number
- CN116755872A CN116755872A CN202310521836.5A CN202310521836A CN116755872A CN 116755872 A CN116755872 A CN 116755872A CN 202310521836 A CN202310521836 A CN 202310521836A CN 116755872 A CN116755872 A CN 116755872A
- Authority
- CN
- China
- Prior art keywords
- scheduled
- module
- nodes
- index data
- pod
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 48
- 238000011068 loading method Methods 0.000 title claims abstract description 24
- 238000012544 monitoring process Methods 0.000 claims abstract description 44
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 22
- 238000012216 screening Methods 0.000 claims abstract description 5
- 239000011159 matrix material Substances 0.000 claims description 27
- 230000015654 memory Effects 0.000 claims description 15
- 238000012545 processing Methods 0.000 claims description 14
- 238000010606 normalization Methods 0.000 claims description 7
- 230000007246 mechanism Effects 0.000 claims description 6
- 238000004364 calculation method Methods 0.000 abstract description 3
- 238000005265 energy consumption Methods 0.000 abstract description 2
- 239000000306 component Substances 0.000 description 15
- 239000008186 active pharmaceutical agent Substances 0.000 description 13
- 230000007547 defect Effects 0.000 description 6
- 238000001914 filtration Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 239000000463 material Substances 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000012549 training Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 230000002688 persistence Effects 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 239000008358 core component Substances 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000013524 data verification Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000006403 short-term memory Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
-
- 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/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/75—Media network packet handling
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公布了一种基于TOPSIS的容器化流媒体服务动态加载系统及方法,本发明在用户请求创建Pod后,由动态加载模块执行加载流程,主机资源监控模块采集待调度执行节点的性能指标,Prometheus模块集成数据并存储,根据Pod指标数据初步筛选待调度执行节点后,算法模块基于TOPSIS计算各待调度执行节点与最优方案贴近程度,由动态加载模块将最优节点与Pod进行绑定。本发明具有模块协同使得指标数据选取动态可扩展性,以带宽利用指标为主克服负载信息获取不稳定,基于TOPSIS模型计算最佳贴近值降低数据计算时所产生的能耗的优点。
Description
技术领域
本发明属于电数字数据处理技术领域,更进一步涉及流媒体调度技术领域中的一种基于优劣解距离法TOPSIS(Technique for Order Preference by Similarity to anIdeal Solution)模型的容器化流媒体服务动态加载系统及方法。本发明可用于流媒体服务场景下对容器的调度。
背景技术
Docker容器化技术允许让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后再发布到任何流行的Linux机器上实现虚拟化。开源容器编排系统Kubernetes是用于自动部署、扩缩和管理容器化应用程序的开源系统,该系统将组成应用程序的容器组合成逻辑单元,以便于管理和服务发现。采用容器打包应用服务并进行编排和管理适用于微服务和云原生设计的方法,使得容器应用能够通过云基础设施规模化部署。容器化流媒体服务是将流媒体服务应用程序打包到容器中,并使用容器编排工具(如Kubernetes)进行管理和部署的过程。这种方式可以提供高度可扩展性和灵活性,使得流媒体服务能够快速响应变化的请求量和流量峰值,同时还能够保持高可靠性和稳定性。通过容器化,流媒体服务可以更容易地部署在不同的环境中,并且可以实现快速部署、测试和迭代。
中国重型机械研究院股份公司在其申请的专利文献“一种基于容器负载预测的容器调度策略”(申请号:CN 202111455721.8,申请公布号:CN 114880067 A)中提出了一种提前预测容器负载的调度方法,可用于解决流媒体调度问题中资源匹配的问题。该调度方法通过获取所有容器负载值,采用观察法,除了观察时间序列自身变化趋势判定是否平稳外,还需要通过观察时间序列的观察ACF自相关图和偏自相关图所表现的特征来判定数据平稳性,时序数据建立时间序列预测模型ARIMA(Autoregressive Integrated Moving AverageModel)来预测容器云资源需求量的时间序列中的线性分量;建立长短期记忆模型LSTM(Long Short Term Memory)来预测容器云资源需求量的时间序列中的非线性分量;使用基于数据波动性的客观赋权法CRITIC(Criteria Importance Though IntercrieriaCorrelation)实现两种模型预测结果的融合,并使用误差修正提升预测精度;基于容器负载预测的结果,进行容器调度策略。该方法存在的不足之处是,容器负载值在需要考虑多项性能指标的情况下,采用观察法难以检测数据平稳性,对数据的处理和训练需要分别计算各时间序列下的线性分量和非线性分量,计算流程复杂,且分量的增大导致训练时资源的消耗量也随之增大。
华南理工大学在其申请的专利文献“面向组件依赖的负载均衡容器调度方法”(申请号:CN 201711062824.1,申请公布号:CN 107734052 A)中提出了一种容器调度方法,该方法周期性采集主机集群上各主机的资源负载信息。该负载信息仅包括CPU利用率、内存使用率以及IO负载情况,将各主机的资源负载信息发送到资源管理器进行统一存储管理,利用负载信息,生成通信矩阵和依赖矩阵,容器调度模块根据通信矩阵、依赖矩阵以及从资源管理器读取的各主机资源负载信息对各主机进行评分,根据得分结果选择最优主机进行容器组件的部署分配,当有新的容器组件需要分配时,重新根据以上步骤对容器进行调度。该方法存在的不足之处是,默认以CPU利用率和内存使用率为主要指标,且性能指标不可扩展,缺乏流媒体集群须考虑CPU、内存、带宽和磁盘利用等多项性能指标,难以适应网络数据丢包等网络质量问题导致的负载信息获取不稳定和负载信息的有效存储问题。
发明内容
本发明的目的在于针对上述现有技术的不足,提出一种基于TOPSIS模型的容器化流媒体服务动态加载系统及方法。用以解决容器化流媒体服务性能指标不可扩展,动态加载资源的消耗量大,以及难以适应网络数据丢包等网络质量问题导致的负载信息获取不稳定和负载信息的有效存储的问题。
实现本发明目的的思路是,本发明系统由算法模块定义性能指标数据,由主机资源监控模块进行指标数据选取和汇总,暴露服务接口给Prometheus模块,由Prometheus模块进行数据的存储,提供给算法模块查询方法,实现容器指标数据动态可扩展。本发明方法面向流媒体服务应用场景,考虑五项关键指标,以上、下行带宽利用为主,CPU、内存、磁盘利用率指标为辅,以带宽为主保证某一时段网络可通过的数据率满足带宽的要求,使抓取性能指标时能获得稳定的数据并根据磁盘利用率判断能否完整存储检测的数据。本发明方法基于TOPSIS模型确定各项指标的最优理想值和最劣理想值,然后求出各个方案与正理想值和负理想值之间的加权欧氏距离,由此得出各方案与最优方案的贴近程度,作为评价方案的优劣标准。
本发明的动态加载系统,包括Prometheus模块、Metrics Server模块、动态加载器模块、算法模块和主机资源监控模块,其中:
所述动态加载器模块,用于响应用户请求,通过消息通知机制List Watch获取所有待调度执行节点,完成从所有待调度执行节点中筛选出指标数据满足Pod指标数据的节点,将待调度执行节点与Pod进行绑定;
所述算法模块,用于提供待调度执行节点的性能指标标准,实现根据TOPSIS模型计算每个待调度执行节点与最优方案贴近程度;
所述Prometheus模块,用于集成主机资源监控模块提供的监控数据并存储,给算法模块提供接口访问获取性能指标数据;
所述主机资源监控模块,用于注册到Prometheus模块服务端,通过Scraper接口定义监控指标的名称以及scrape抓取指标数据方法进行对指标数据选取和汇总;
所述Metrics-Server模块,用于提供服务Pod的性能指标数据。
本发明的容器化流媒体服务动态加载方法,采集每个待调度执行节点的性能指标,根据TOPSIS模型计算每个待调度执行节点与最优方案贴近程度;该动态加载方法的具体步骤包括如下:
步骤1,确定容器化流媒体服务集群中待调度执行节点:
在容器化流媒体服务集群中通过命令行创建用户请求的Pod,动态加载器模块响应用户的请求,通过消息通知机制List Watch获取所有待调度执行节点,将待调度执行节点加入到队列中;
步骤2,算法模块提供待调度执行节点的性能指标标准,将定义的指标发送给Prometheus模块;
步骤3,主机资源监控模块向Prometheus模块注册采集器,通过Scraper接口定义监控指标的名称以及scrape抓取指标数据方法进行对指标数据选取和汇总,由Prometheus模块进行数据的存储;
步骤4,Metrics Server服务接口获取Pod指标数据,动态加载器模块从所有待调度执行节点中筛选出指标数据满足Pod指标数据的节点;
步骤5,算法模块通过Prometheus模块内置的查询语句获取到待调度执行节点性能指标数据,根据TOPSIS模型计算每个待调度执行节点与最优方案贴近程度;
步骤6,动态加载器模块将所有待调度执行节点与最优方案贴近程度中的最大值所对应的待调度执行节点与Pod绑定。
与现有技术相比,本发明的优点如下:
第一,由于本发明系统中的算法模块提供待调度执行节点的性能指标标准,利用主机资源监控模块的Scraper接口定义监控指标的名称以及scrape抓取指标数据方法完成对指标数据选取和汇总,实现通过各模块协同进行指标数据的监控,克服了现有技术中固定指标的选取,调度策略不灵活,无法满足指标数据动态扩展的不足,使得本发明的系统能够根据业务场景需求,进行指标数据的定义、抓取、聚合、查询,使得容器化流媒体服务指标数据具有动态可扩展性,提高容器化流媒体服务的吞吐量。
第二,由于本发明的方法在容器性能指标的选取上,考虑五项关键指标,包括上行带宽利用、下行带宽利用、CPU、内存和磁盘利用率,其中以上、下行带宽利用为主,CPU、内存和磁盘利用率为辅,克服了现有技术中因网络数据丢包网络质量问题导致的负载信息获取不稳定以及负载信息不能够得到有效存储和查询的不足,使得本发明的方法具有在网络环境不稳定的情况下,保证采集到的容器性能指标数据的完整性,提高了流媒体集群的资源利用率。
第三,由于本发明的方法基于TOPSIS模型计算最佳贴近值进行资源匹配,克服了现有技术通过预测模型算法在流媒体应用场景需要考虑多项性能指标的情况下,数据的检测、处理和训练流程较为复杂且流媒体集群系统资源的消耗较大的缺陷,使得本发明的方法避免了处理数据的主观性,不需要目标函数和检验,而且能够很好的刻画多个影响指标的综合影响力度,降低了容器化流媒体服务动态加载方法在训练数据时所产生的能耗。
附图说明
图1是本发明系统的结构示意图;
图2是本发明系统中Prometheus模块的功能时序图;
图3是本发明系统中主机资源监控模块的指标数据采集功能时序图;
图4是本发明系统中Metrics-Server模块的工作流程图;
图5是本发明方法的流程图;
图6为本发明方法中计算每个待调度执行节点与最优方案贴近程度的流程图。
具体实施方式
下面结合附图和实施例对本发明做进一步的描述。
参照图1,对本发明系统的实施例做进一步的详细描述。
本发明实施例的动态加载系统包括动态加载器模块、算法模块、Prometheus模块、主机资源监控模块和Metrics-Server模块,其中:
所述动态加载器模块,用于当接收到用户请求时,Kubernetes的API Server会进行待调度Pod的创建处理,通过Kubernetes的API接口的消息通知机制List Watch,获取所有待调度执行节点和Pod信息。为处理待调度执行节点,利用Kubernetes调度框架扩展包括预处理、过滤、打分的加载流程,该Kubernetes调度框架提供了插件化的API扩展点,通过扩展点的接口能够实现自定义调度方法逻辑,方法逻辑实现完毕后,只需注册到扩展点上,即可完成自定义调度器的实现。预处理主要包括对Pod所在集群域名空间、Label标签的挑选,检查集群或Pod必须满足的某些条件;过滤完成从所有待调度执行节点中筛选出指标数据满足Pod指标数据的节点,主要分为五种类型的过滤规则:基础检查项、Volume类型、Node类型、Pod相关、压力相关,基础检查项包括节点能否提供Pod资源需求量、待调度节点名称是否与待选节点名称相同、Pod设定的端口是否在待选节点占用、待选节点是否包含Pod设定的Label;Volume类型包括待调度磁盘存储Volume是否与已有的Volume冲突;Node类型包括待调度Pod是否容忍节点添加的污点;Pod相关包括待调度Pod是否与节点上Pod亲和;压力相关包括检查待调度节点的状态问题、是否处于内存或磁盘压力状态,将满足过滤规则的待调度节点筛选出来进行打分,如果没有任何一个节点能满足Pod的资源请求,那么这个Pod将一直停留在未调度状态直到加载器模块能够找到合适的Node;打分阶段基于算法模块计算出的各待调度执行节点的最佳贴近值进行打分,对得分进行排序,将得到的得分最高的最优待调度执行节点与Pod进行绑定,将绑定结果告知Kubernetes API接口。
Kubernetes API接口是Kubernetes核心组件,提供集群管理的REST API接口,包括认证授权、数据校验以及集群状态变更,直接操作用于持久化存储Kubernetes资源对象的数据库,Pod和服务节点的具体信息将通过该接口存储至持久化存储数据库中。
Kubelet工作组件是Kubernetes工作节点上的一个代理组件,用于定期从Kubernetes API接口接收新的或修改的Pod规范,并确保Pod及其容器在期望规范下运行,同时该组件作为工作节点的监控组件,向Kubernetes API接口汇报主机的运行状况,为Metrics-Server模块提供其请求的指标数据。
所述算法模块,用于提供待调度执行节点的性能指标标准,将定义的指标标准发送给Prometheus模块,指标数据采集完成后通过Prometheus模块内置的查询语句获取到待调度执行节点性能指标数据,实现根据TOPSIS模型计算每个待调度执行节点与最优方案贴近程度;
参照图2,对本发明Prometheus模块功能做进一步描述。
所述Prometheus模块,用于集成主机资源监控模块提供的监控数据并存储,该模块根据主机资源监控模块提供的服务接口/metrics,定期拉取主机资源监控模块的多维数据作为时间序列数据值,存储至本地时间序列数据库中,给算法模块提供内置的查询语句供其拉取时间序列性能指标数据。
参照图3,对本发明主机资源监控模块指标数据采集功能做进一步描述。
所述主机资源监控模块,用于注册到Prometheus模块服务端,监控并抓取指标数据,为Prometheus模块提供监控的样本数据,其数据封装完全符合Prometheus规范。主机资源监控模块的Main类负责服务的初始化,包括性能指标开关、监控指标类型、Scraper类型、采集器注册、服务端初始化,向Prometheus模块注册自定义采集器后,将指定HTTP处理函数绑定被监控对象提供的接口,HTTP服务器通过接口获取被监控对象的数据。主机资源监控模块的核心实现类主要在于Exporter类,为了使监控模块更加具有扩展性,应对复杂的监控指标类型,采用接口设计扩展监控指标,通过Scraper接口定义监控指标的名称以及scrape抓取指标数据方法进行对指标数据选取和汇总,所有性能指标的类需要实现Scraper接口;考虑流媒体服务中系统带宽资源的大幅度波动的应用场景,在对带宽性能指标进行处理时,带宽类BandWidth聚合带宽队列,通过带宽队列收集宿主机上下行带宽,对队列数据进行均值化处理,获取当前待调度执行节点一段时间的平均上下行带宽。每个监控类型可以添加描述信息和标签,通过标签区分同一度量指标,基于执行节点的名称和IP地址。
参照图4,对本发明Metrics-Server模块工作流程做进一步描述。
所述Metrics-Server模块,用于收集和存储群集中的资源使用情况和性能指标数据,其是Kubernetes的组件,通过启动并监听Kubernetes API接口,从Kubelet工作组件请求并收集指标数据,获取节点列表、节点上的监控数据或Pod指标数据等信息,并将其存储在内存中,供动态加载器模块进行查询。它可以在集群范围内汇总和聚合Pod和执行节点的指标,例如CPU、内存、磁盘、带宽和网络使用情况等。
参照图5,对本发明方法流程做进一步描述。
本发明的动态加载方法的具体步骤包括如下:
步骤1,确定容器化流媒体服务集群中待调度执行节点:
在容器化流媒体服务集群中通过命令行创建用户请求的Pod,动态加载器模块响应用户的请求,通过Kubernetes的API接口的消息通知机制List Watch调用资源的list和watch API分别进行罗列资源和监听资源变更事件,访问Kubernetes持久化存储数据库,从而检测空闲待调度执行节点和Pod,将待调度执行节点加入到队列中;
所述创建用户请求的Pod中包括用户按照需求所配置的容器。
步骤2,算法模块提供待调度执行节点的性能指标标准,将定义的指标发送给Prometheus模块;
所述待调度执行节点的性能指标标准包括上行带宽、下行带宽、CPU、内存和磁盘利用率,其中以上、下行带宽为主,CPU、内存和磁盘利用率为辅。以上、下行带宽为主是因为在流媒体服务应用场景下,常出现带宽资源波动较大的问题,以带宽为主,考虑一段时间内的上、下行带宽,可以保证某一时段网络可通过的数据率满足带宽的要求,同时在抓取性能指标时能获得稳定的数据。
步骤3,主机资源监控模块向Prometheus模块注册采集器,通过Scraper接口定义监控指标的名称以及scrape抓取指标数据方法进行对指标数据选取和汇总,由Prometheus模块进行数据的存储;
步骤4,Metrics Server通过Kubernetes API接口,从运行在每个节点上的kubelet代理组件请求并获取Pod指标数据,并将其存储在内存中,供动态加载器模块查询。根据从Metrics-Server获取的Pod指标数据信息,动态加载器模块从所有待调度执行节点中筛选出指标数据满足Pod指标数据和过滤规则的节点,如果没有节点满足Pod的调度请求,则该Pod将被标记为调度失败。
参照图6,对本发明计算贴近程度值流程做进一步描述。
步骤5,算法模块通过Prometheus模块内置的查询语句比如PromQL语句获取到待调度执行节点性能指标数据,根据TOPSIS模型计算每个待调度执行节点与最优方案贴近程度。
所述根据TOPSIS模型计算每个待调度执行节点与最优方案贴近程度的步骤如下:
第一步,构建一个m行n列的决策矩阵,其中m的取值等于待调度执行节点的数量,n的取值等于性能指标的数量,构建决策矩阵可以将每个节点在每个评价标准下的性能进行可比较的量化。
为后续的计算提供了基础,利用下式,对决策矩阵进行归一化处理,使指标向量规范化,得到归一化矩阵:
其中,zij表示归一化矩阵的第i个待调度执行节点中第j个性能指标的规范化值,fij表示决策矩阵中第i个待调度执行节点中第j个性能指标的值,i取值在[1,m]范围内,j取值在[1,n]范围内。
将归一化矩阵的每个规范化值与其对应性能指标所占权重逐项相乘,得到加权归一化矩阵,加权的目的是根据不同指标的重要性对归一化决策矩阵的每一列进行加权处理;
第二步,对加权归一化矩阵进行正向化处理,即将所有性能指标统一调整为极大型指标数据,需要正向化处理的原因是在处理数据时,有些指标的数据越大越好,比如CPU利用率,有些则是越小越好,有些又是中间某个值或者某段区间最好,需要对其进行正向化处理使所有性能指标成为极大型指标数据,便于对数据的维护和扩展,从正向化处理后的矩阵中选出每个性能指标的最大值和最小值。
第三步,按照下式,计算每个待调度执行节点性能指标与最大值和最小值的正负理想解距离:
其中,表示第i个待调度执行节点与最大值之间的正理想解距离,/>表示第i个待调度执行节点与最小值之间的负理想解距离,vij表示加权归一化矩阵第i个待调度执行节点中第j个性能指标的加权值,/>和/>分别表示第j个性能指标的最大值和最小值。
第四步,按照下式,计算每个待调度执行节点与最优方案的贴近程度:
其中,RCi表示第i个待调度执行节点与最优方案的贴近程度,该贴近程度越大就代表距离最劣解越远,距离最优解越近,因此贴近程度越大,表明待调度执行节点更加符合条件。
步骤6,动态加载器模块将所有待调度执行节点与最优方案贴近程度中的最大值所对应的待调度执行节点与Pod绑定,将绑定结果通知Kubernetes的API接口在持久化数据库中进行存储。
Claims (5)
1.一种基于TOPSIS的容器化流媒体服务动态加载系统,包括Prometheus模块、MetricsServer模块,其特征在于,还包括动态加载器模块、算法模块和主机资源监控模块,其中:
所述动态加载器模块,用于响应用户请求,通过消息通知机制List Watch获取所有待调度执行节点,从Metrics Server服务接口获取Pod指标数据,完成从所有待调度执行节点中筛选出指标数据满足Pod指标数据的节点,将待调度执行节点与Pod进行绑定;
所述算法模块,用于提供待调度执行节点的性能指标标准,将定义的指标标准发送给Prometheus模块,指标数据采集完成后通过Prometheus模块内置的查询语句获取到待调度执行节点性能指标数据,实现根据TOPSIS模型计算每个待调度执行节点与最优方案贴近程度;
所述Prometheus模块,用于存储集成主机资源监控模块提供的监控数据,给算法模块提供接口访问获取性能指标数据;
所述主机资源监控模块,用于注册到Prometheus模块服务端,通过Scraper接口定义监控指标的名称以及scrape抓取指标数据方法进行对指标数据选取和汇总;
所述Metrics-Server模块,用于提供服务Pod的性能指标数据。
2.根据权利要求1所述动态加载系统的一种基于TOPSIS的容器化流媒体服务动态加载方法,其特征在于,模块协同采集每个待调度执行节点的性能指标,根据TOPSIS模型计算每个待调度执行节点与最优方案贴近程度;该动态加载方法的步骤包括如下:
步骤1,确定容器化流媒体服务集群中待调度执行节点:
在容器化流媒体服务集群中通过命令行创建用户请求的Pod,动态加载器模块响应用户的请求,通过消息通知机制List Watch获取所有待调度执行节点,将待调度执行节点加入到队列中;
步骤2,算法模块提供待调度执行节点的性能指标标准,将定义的指标发送给Prometheus模块;
步骤3,主机资源监控模块向Prometheus模块注册采集器,通过Scraper接口定义监控指标的名称以及scrape抓取指标数据方法进行对指标数据选取和汇总,由Prometheus模块存储集成主机资源监控模块提供的监控数据,给算法模块提供接口访问以获取性能指标数据;
步骤4,动态加载器模块从Metrics Server服务接口获取Pod指标数据,从所有待调度执行节点中筛选出指标数据满足Pod指标数据的节点;
步骤5,算法模块通过Prometheus模块内置的查询语句获取到待调度执行节点性能指标数据,根据TOPSIS模型计算每个待调度执行节点与最优方案贴近程度;
步骤6,对容器化流媒体服务进行加载:
动态加载器模块将所有待调度执行节点与最优方案贴近程度中的最大值所对应的待调度执行节点与Pod绑定。
3.根据权利要求2所述的基于TOPSIS的容器化流媒体服务动态加载方法,其特征在于,步骤1中所述创建用户请求的Pod中包括用户按照需求所配置的容器。
4.根据权利要求2所述的基于TOPSIS的容器化流媒体服务动态加载方法,其特征在于,步骤2中所述待调度执行节点的性能指标标准包括上行带宽、下行带宽、CPU、内存和磁盘利用率,其中以上、下行带宽为主,CPU、内存和磁盘利用率为辅。
5.根据权利要求2所述的基于TOPSIS的容器化流媒体服务动态加载方法,其特征在于,步骤5中所述根据TOPSIS模型计算每个待调度执行节点与最优方案贴近程度的步骤如下:
第一步,构建一个m行n列的决策矩阵,其中m的取值等于待调度执行节点的数量,n的取值等于性能指标的数量,利用下式,对决策矩阵进行归一化处理,得到归一化矩阵:
其中,zij表示归一化矩阵的第i个待调度执行节点中第j个性能指标的规范化值,fij表示决策矩阵中第i个待调度执行节点中第j个性能指标的值,i取值在[1,m]范围内,j取值在[1,n]范围内;
将归一化矩阵的每个规范化值与其对应性能指标所占权重逐项相乘,得到加权归一化矩阵;
第二步,对加权归一化矩阵进行正向化处理,从正向化处理后的矩阵中选出每个性能指标的最大值和最小值;
第三步,按照下式,计算每个待调度执行节点性能指标与最大值和最小值的正负理想解距离:
其中,表示第i个待调度执行节点与最大值之间的正理想解距离,/>表示第i个待调度执行节点与最小值之间的负理想解距离,vij表示加权归一化矩阵第i个待调度执行节点中第j个性能指标的加权值,/>和/>分别表示第j个性能指标的最大值和最小值;
第四步,按照下式,计算每个待调度执行节点与最优方案的贴近程度:
其中,RCi表示第i个待调度执行节点与最优方案的贴近程度。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310521836.5A CN116755872A (zh) | 2023-05-10 | 2023-05-10 | 基于topsis的容器化流媒体服务动态加载系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310521836.5A CN116755872A (zh) | 2023-05-10 | 2023-05-10 | 基于topsis的容器化流媒体服务动态加载系统及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116755872A true CN116755872A (zh) | 2023-09-15 |
Family
ID=87948493
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310521836.5A Pending CN116755872A (zh) | 2023-05-10 | 2023-05-10 | 基于topsis的容器化流媒体服务动态加载系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116755872A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117978554A (zh) * | 2024-04-01 | 2024-05-03 | 浪潮通用软件有限公司 | 一种基于配置的微服务隔离运行方法、设备及介质 |
-
2023
- 2023-05-10 CN CN202310521836.5A patent/CN116755872A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117978554A (zh) * | 2024-04-01 | 2024-05-03 | 浪潮通用软件有限公司 | 一种基于配置的微服务隔离运行方法、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8589555B2 (en) | Virtualization and consolidation analysis engine for enterprise data centers | |
CN110008024B (zh) | 一种多维约束下基于延迟决策的容器调度方法以及装置 | |
US11579933B2 (en) | Method for establishing system resource prediction and resource management model through multi-layer correlations | |
Gu et al. | Dynamic meta-learning for failure prediction in large-scale systems: A case study | |
Wolfrath et al. | Haccs: Heterogeneity-aware clustered client selection for accelerated federated learning | |
Zhang et al. | Virtual machine placement strategy using cluster-based genetic algorithm | |
CN112052081B (zh) | 一种任务调度方法、装置及电子设备 | |
CN115914392A (zh) | 算力网络资源调度方法及系统 | |
CN116755872A (zh) | 基于topsis的容器化流媒体服务动态加载系统及方法 | |
CN107193940A (zh) | 大数据优化分析方法 | |
CN104346220A (zh) | 一种任务调度方法与系统 | |
CN110196751B (zh) | 互扰服务的隔离方法及装置、电子设备、存储介质 | |
CN117596247A (zh) | 基于异构边缘计算系统的资源监控和性能评估的方法 | |
CN112882805A (zh) | 一种任务资源约束的利润优化调度方法 | |
CN115665157B (zh) | 一种基于应用资源类型的均衡调度方法和系统 | |
Garg et al. | Optimal virtual machine scheduling in virtualized cloud environment using VIKOR method | |
CN114978913B (zh) | 一种基于切链的服务功能链跨域部署方法及系统 | |
Scheinert et al. | Karasu: A collaborative approach to efficient cluster configuration for big data analytics | |
CN112579552A (zh) | 日志存储及调用方法、装置及系统 | |
CN111367632B (zh) | 一种基于周期特征的容器云调度方法 | |
CN113467892B (zh) | 分布式集群资源配置方法及其相应的装置、设备、介质 | |
CN109660392A (zh) | 一种Linux系统下硬件统一化自适应管理部署方法及系统 | |
WO2011084238A1 (en) | Method and apparatus of adaptive categorization technique and solution for services selection based on pattern recognition | |
Zuo et al. | A cloud resource evaluation model based on entropy optimization and ant colony clustering | |
CN107103095A (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 |