CN112783649B - 一种面向云计算的交互感知的容器化微服务资源调度方法 - Google Patents
一种面向云计算的交互感知的容器化微服务资源调度方法 Download PDFInfo
- Publication number
- CN112783649B CN112783649B CN202110066625.8A CN202110066625A CN112783649B CN 112783649 B CN112783649 B CN 112783649B CN 202110066625 A CN202110066625 A CN 202110066625A CN 112783649 B CN112783649 B CN 112783649B
- Authority
- CN
- China
- Prior art keywords
- micro
- service
- node
- services
- interaction
- 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
- 238000000034 method Methods 0.000 title claims abstract description 23
- 230000003993 interaction Effects 0.000 claims abstract description 73
- 230000006399 behavior Effects 0.000 claims abstract description 12
- 238000012545 processing Methods 0.000 claims abstract description 12
- 238000004891 communication Methods 0.000 claims abstract description 11
- 238000010586 diagram Methods 0.000 claims abstract description 9
- 238000012360 testing method Methods 0.000 claims abstract description 9
- 238000013507 mapping Methods 0.000 claims abstract description 6
- 238000012544 monitoring process Methods 0.000 claims description 6
- 238000004364 calculation method Methods 0.000 claims description 5
- 230000001419 dependent effect Effects 0.000 claims description 3
- 230000002452 interceptive effect Effects 0.000 claims description 3
- 230000002776 aggregation Effects 0.000 claims 1
- 238000004220 aggregation Methods 0.000 claims 1
- 230000004044 response Effects 0.000 abstract description 5
- 238000007726 management method Methods 0.000 description 10
- 238000013468 resource allocation Methods 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000013439 planning Methods 0.000 description 3
- 241000529895 Stercorarius Species 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 1
- 238000013079 data visualisation Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 238000011160 research 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/5083—Techniques for rebalancing the load in a distributed system
-
- 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
- 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
-
- 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/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- 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)
- Multi Processors (AREA)
Abstract
发明涉及一种面向云计算的交互感知的容器化微服务资源调度方法。本发明根据负载测试脚本生成负载以监测微服务间的调用行为,表示为微服务交互图;使用顶点权重表示微服务的资源需求,边权重表示微服务间的交互次数,表示为微服务交互因子;使用0/1线性约束的二次规划建模微服务到可用节点的映射,以在资源容量限制下最小化微服务间的通信开销;将满足资源需求的微服务部署到集群中的可用节点,并部署依赖该微服务的微服务实例到该节点。通过将相互作用的微服务优先部署在相同节点上,最大限度减少部署应用程序的物理节点之间的通信开销,以达到最小化请求处理响应时间的目标。
Description
技术领域
本发明涉及一种面向云计算的交互感知的容器化微服务资源调度方法,属于软件技术领域。
背景技术
云计算已经成为商业、医疗和教育等领域的技术解决方案,提供了可以通过网络访问计算、存储等资源池的方式。托管在云计算环境中的应用程序已经成为人类日常生活不可或缺的部分。云计算范式以云服务的形式扩展功能,这些云服务可以组合成云应用程序。云服务按照面向服务架构的原则构建,将应用程序设计为几个相互作用的独立微服务单元的组合。云模式依赖虚拟化技术托管各种应用程序和服务,提供虚拟机托管云中的应用程序。由于基于虚拟机技术的性能开销,云提供商采用了轻量级虚拟化技术,将其所提供的服务托管在容器中,容器为在云中托管和运行微服务提供了可用的选择。资源管理是容器化云计算系统的关键问题,通过容器编排引擎控制和协调跨不同节点容器的操作处理任务。
云数据中心中将微服务容器分配给不同节点,分配任务操作决定了微服务软件应用的执行效率,低效分配策略可能会导致响应时间增加和吞吐量降低,从而影响用户体验。考虑资源需求和其他关键因素的资源管理技术对于确保微服务应用程序高效运行至关重要。确定分配给即将到来的微服务应用程序的正确资源量是复杂的任务,每个微服务都托管在独立容器中,该容器需要映射到合适的物理节点。文献(X.Wan,X.Guan,T.Wang,G.Bai,B.-Y.Choi,Application deployment using microservice and docker containers:framework and optimization,J.Netw.Comput.Appl.,119(2018),97–109.)分析Docker的特点,根据微服务应用的资源需求以及云数据中心的可用资源描述应用部署问题,提出了通信效率框架和次优算法来确定容器的放置和任务分配策略。文献(T.Zheng,X.Zheng,Y.Zhang,Y.Deng,E.Dong,R.Zhang,X.Liu,Smartvm:a SLA-aware microservicedeployment framework,World Wide Web,22(1)(2019),275–293.)提出了面向微服务软件架构,支持业务服务级别协议的部署框架,以简化构建和部署动态可伸缩微服务过程,从而以较低开销应对流量峰值。文献(Y.Tao,X.Wang,X.Xu,Y.Chen,Dynamic resourceallocation algorithm for container-based service computing,in:2017IEEE 13thInternational Symposium on Autonomous Decentralized System(ISADS),IEEE,2017,pp.61–67.)提出了基于模糊推理系统的调度算法,通过模糊推理系统评估节点的状态来进行容器资源的全局分配。上述研究工作没有考虑微服务之间的交互模式,而交互操作和交互实体的频率会严重影响通信开销,是决定特定于微服务的响应时间值的重要因素。
发明内容
本发明的目的:在云计算环境下,将容器化微服务资源分配问题建模为规划问题,通过将相互作用的微服务优先部署在相同节点上,最大限度减少部署应用程序的物理节点之间的通信开销,以达到最小化请求处理响应时间的目标。
本发明的原理:微服务资源分配问题可以形式化为二元规划问题,限定对计算和内存资源的约束条件。将系统建模为无向加权图以表示微服务的交互行为,以加权交互图的形式描述微服务之间的交互模式,包括交互频率和交互组件的特征,将相互作用的微服务优先部署在相同节点上。
本发明技术解决方案为一种面向云计算的交互感知的容器化微服务资源调度方法,其特点在于实现步骤如下:
第一步,生成微服务交互图:获取开发人员编写的应用的负载测试脚本并生成负载,监测微服务间的调用行为并表示为微服务交互图。开发人员为应用提供负载测试脚本,对基于微服务软件架构的应用程序进行负载测试,监测各种微服务之间的交互调用行为,将其表示为微服务交互图。微服务应用软件由众多微服务构成,相互交互以处理从用户接收的请求,微服务之间的交互可以用无向图的形式表示。交互图G是由<V,T,E,D>表示的无向完全加权图。其中,V表示微服务组成的顶点集合;T表示由V中与定点相关联的权重集合,权重表示为<vcpu_req,vmem_req>,即与顶点相关联的计算和内存资源需求;E表示微服务交互所形成的边集合;D表示边权重dij集合,即微服务顶点i和微服务顶点j之间交互的数量,即两个方向上交互次数的总和。
第二步,计算微服务交互因子:在所述微服务交互图中,使用顶点权重表示微服务的资源需求,边权重表示微服务间的交互次数,所述交互次数为微服务交互因子。计算微服务之间的交互次数,由交互图中边的权重来表示,计算每对微服务的相互作用的系数。频繁交互的微服务尽可能放置在相同或相邻物理节点,以确保不同物理节点之间的通信最小化,从而减少请求处理所带来的延迟。将两个节点vi和vj之间的相互作用量化定义为交互因子cij,其中,微服务vi部署在主机hz和微服务vj部署在节点hw。如果hz和hw是不同的节点,则cij=0;否则,cij=dij/2,即相互作用成本在调用双向中平均分配。因此,交互因子值取决于交互的数量,以及托管这些微服务的物理节点位置。
第三步,建模微服务放置策略:得到所述交互因子后,使用0/1线性约束的二次规划建模微服务到可用节点的映射,以在资源容量限制下最小化微服务间的通信开销。云数据中心具有n个物理主机,表示为H={h1,h2,…,hi,…,hn},其中,hi表示单个主机。每个主机特征表示为元组<cpu,mem>,表示物理主机上的处理核心数量和内存单元数量。应用程序由不同的微服务组成,微服务在物理机器中托管的容器上运行。属于同一个应用程序的微服务可以相互作用,处理用户提交的服务请求,因此,属于不同应用程序的微服务相互作用形成了微服务生态系统。数据中心中的每个主机将资源分配给进程使用,分配过程中需要考虑剩余资源或剩余资源能力。F表示具有足够剩余资源容量的可用节点集。每个节点上的剩余CPU和内存容量分别表示为hi cpu_res和hi mem_res,而CPU和内存利用率分别表示为hi cpu_util和hi mem_util,那么,hi u_res=hi u(1-hi u_util),u∈{cpu,mem}。每个微服务都分配给满足微服务资源要求的可用主机,微服务分配策略决定了部署微服务的数据中心主机,以及主机上放置的微服务。将微服务分配给数据中心主机的问题,可以建模为(0/1)线性约束的二次规划问题,用于确定微服务请求到可行节点的映射。目标是在资源容量限制下,最小化交互的总成本,问题的决策变量表示模块所分配到的节点。如果vi分配在节点hz上,则为1,否则为0。
Minimize其中,/>
优化问题旨在减少节点间通信,从而减少用户经历的延迟时间,约束条件给出了对处理和存储器的约束,放置在主机上的所有微服务请求的资源总和不得超过总剩余资源容量,同时,确保每个微服务都放置在系统中唯一的一台主机上。
第四步,部署微服务实例:将满足资源需求,可用于部署微服务的节点加入到节点集合中,并按照微服务资源需求量以及节点剩余资源数量,依次将微服务部署到节点。
(1)将该集合中的元素按照可用计算能力、可用内存空间和边权重以非递增顺序排列;
(2)对于第一个边,如果第一个节点可以满足两个微服务组合的计算和内存要求,则将两个连接的微服务放在同一个节点;
(3)遍历与已经在当前节点上分配的微服务交互的微服务,在节点上可用处理和内存资源的约束条件下,将尽可能多的相关微服务放在相同节点上;
(4)在每个节点上,当所有依赖的微服务分配完成,如果当前节点能够满足处理和内存要求,无依赖的剩余微服务放置在当前节点,以确保节点资源利用率最大化;
(5)将微服务放置在当前节点上时,会执行重新检查以确保是否需要进行重新分配。
当做出分配决定时,当前节点上的剩余容量就会更新,将该节点上的可用资源中减去所请求的资源,剩余资源容量更新以反映当前的资源分配;如果更新后的剩余资源容量不足以满足微服务的最小资源需求,选择排序列表中的下一个节点;
(6)当没有更多的微服务需要放置,或者没有更多的可用节点用来容纳微服务时,确定分配策略;
(7)数组索引给出了微服务标识符,索引值表示微服务分配到的物理节点。如果该索引值为0,则没有可用节点能够分配,微服务继续在调度队列中等待,直到节点变得可用。
本发明与现有技术相比具有如下优点:在云计算环境下,将容器化微服务资源分配问题建模为规划问题,通过将相互作用的微服务优先部署在相同节点上,最大限度减少部署应用程序的物理节点之间的通信开销,以达到最小化请求处理响应时间的目标。
附图说明
图1为交互感知的容器化微服务资源调度框架。
具体实施方式
以下结合具体实施例和附图对本发明进行详细说明,如图1所示,本发明实施例方法流程:
应用程序开发人员设计由不同微服务组成的应用,将不同的微服务及其实例提交到云数据中心。云提供商为基于微服务的应用程序提供了扩展服务和基础设施的管理功能。服务管理能力主要关注用户和微服务之间的接口活动,包括路由、服务发现等。基础设施管理能力主要关注微服务和底层基础设施之间的映射活动。在微服务生态系统中,应用程序开发人员提交构成应用程序的微服务,云提供商考虑每个微服务的资源需求,以得出应用程序的最佳放置或部署策略,各种微服务被分配给数据中心中合适的物理节点以满足微服务的资源需求。在物理节点上运行的一组相关微服务形成一个Pod(一组容器的集合,在Pod里面的容器共享网络/存储),以作为资源管理的基本单元,一旦部署操作完成,微服务容器就会启动。微服务容器处于“运行”状态后,云平台接收用户对微服务的请求,识别微服务实例和承载微服务实例的节点,请求转发到相应节点,处理完请求后,将结果返回发起请求的用户。
微服务生命周期可以分为开发和运行等两个阶段,运行阶段包括服务管理和基础设施管理。本发明的微服务部署方法属于基础设施管理,开发者提交不同类型的微服务,每个微服务都有多个实例,云提供商将这些实例视为不同的模块进行调度,其框架如图1所示。实施运行环境将基于容器的集群管理平台(Kubernetes,K8S)集群作为基础架构,集群根据应用请求数量自动伸缩。集群由3到10个工作节点组成,每个工作节点分配2个虚拟中央处理器(central processing unit,CPU)和7.5GB的内存。每个节点运行节点代理(kubelet)服务以管理在节点上托管的容器,主节点上运行的调度器在容器中部署应用程序。应用容器引擎(Docker)容器封装了应用程序模块,容器配置有与应用程序部署文件中的规范相对应的资源要求和限制。使用Jaeger、Prometheus和Grafana开源监控工具,通过收集日志和其他指标来支持基于微服务的系统的日志记录和监控。其中,Jaeger是微服务执行跟踪工具,用于提取微服务容器的运行时指标,Prometheus用于收集微服务生命周期中的其他时间序列指标,Grafana根据Prometheus搜集的监测数据提供数据可视化能力。微服务调度包括以下具体步骤:
(1)生成微服务交互图:获取开发人员编写的应用的负载测试脚本并生成负载,监测微服务间的调用行为并表示为微服务交互图。本实施例中,通过对基于微服务的应用程序进行负载测试,并捕获各种微服务组件之间的交互。开发人员向应用程序提供负载测试脚本,然后使用该负载测试脚本来捕获微服务之间的交互信息,并表示为交互图形式。微服务应用由众多微服务构成,这些微服务相互交互以处理从用户接收的请求,微服务之间的交互表示为无向图加权图G=<V,T,E,D>,其中,V表示微服务组成的顶点集合;T表示由V中与顶点相关联的权重集合,权重表示为<vcpu_req,vmem_req>,即vcpu_req表示与该顶点相关联的计算资源需求,vmem_req表示与所述顶点相关联的内存资源需求;E表示微服务交互的边集合;D表示边权重dij集合,即微服务i和微服务j之间的调用数量,即两个方向上交互次数的总和。
(2)计算微服务交互因子:在微服务交互图中,使用顶点权重表示微服务的资源需求,边权重表示微服务间的交互次数即微服务交互因子。本实施例中,微服务交互因子计算方法包括:计算微服务组件之间的交互次数,由微服务交互图中的边权重来表示该交互次数,然后计算每对微服务间的相互作用系数,将两个节点vi和vj之间的交互行为定义为交互因子cij,其中,微服务vi部署在主机hz,微服务vj部署在节点hw,如果hz和hw是不同的节点则cij=0,否则cij=dij/2。
(3)微服务放置策略建模,即调度引擎:得到交互因子后,使用0/1线性约束的二次规划建模微服务到可用节点的映射,以在资源容量限制下最小化微服务间的通信开销。本实施例中,使用求解器应用调度策略求解二次规划问题,以制定资源分配方案,即建模微服务放置策略。微服务放置策略建模方法包括:云数据中心具有n个可用物理主机,表示为{h1,h2,…,hi,…,hn},其中,hi表示单个主机,每个主机特征表示为元组<cpu,mem>,表示物理主机上的处理核心数量和内存空间;每个节点上剩余的CPU和内存容量为,hi u_res=hi u(1-hi u_util),u∈{cpu,mem},其中,hi u_util表示当前CPU和内存利用率;将微服务放置到数据中心主机的问题,建模为0/1线性约束的二次规划问题:Minimize其中,/> 如果微服务vi分配在节点hz上,则/>为1,否则为0。
(4)部署微服务实例:将满足资源需求的微服务部署到集群中的可用节点,并部署依赖该微服务的微服务实例到该可用节点。当获得调度策略,部署微服务实例的模块即部署模块在相应的物理节点上启动分配的微服务组件,其相关信息也输入到注册服务中,以确保微服务是可发现的,具体部署微服务实例,包括以下操作步骤:
1)将云数据中心中可用于部署微服务的节点加入到节点集合中,并按照可用计算资源、可用内存空间和边权重以非递增顺序排列;
2)对于微服务应用中的第一个边,如果节点列表中的第一个节点可以满足两个交互微服务的计算和内存资源需求,则将这两个微服务放在同一个节点;
3)遍历与在节点上部署微服务交互的微服务,在节点可用计算和内存资源约束条件下,将多个微服务放在相同节点;
4)在每个节点上,当所有依赖的微服务分配完成,在当前节点能够满足计算和内存需求的条件下,将无依赖的剩余微服务放置在当前节点,并更新节点的可用资源数量;
5)如果更新后的剩余资源量不足以满足剩余微服务的资源需求,则选择节点排序列表中的下一个节点,按照微服务资源需求降序依次部署;
6)当没有更多的微服务需要放置,或者没有更多的可用节点用来部署微服务时,微服务实例部署操作终止;
7)为每个微服务设置索引值,表示微服务分配到的物理节点,如果索引值为0,则没有可用节点能够分配,微服务继续在调度队列中等待,直到节点变得可用。
Claims (3)
1.一种面向云计算的交互感知的容器化微服务资源调度方法,其步骤包括:
1)生成微服务交互图:获取开发人员编写的应用的负载测试脚本并生成负载,监测微服务间的调用行为并表示为微服务交互图;
2)计算微服务交互因子:在所述微服务交互图中,使用顶点权重表示微服务的资源需求,边权重表示微服务间的交互次数,所述交互次数为微服务交互因子;
3)建模微服务放置策略:得到所述交互因子后,使用0/1线性约束的二次规划建模微服务到可用节点的映射,以在资源容量限制下最小化微服务间的通信开销,所述微服务放置策略的建模方法包括:
31)云数据中心具有n个可用物理主机,表示为{h1,h2,…,hi,…,hn},其中,hi表示单个主机,每个主机特征表示为元组<cpu,mem>,表示物理主机上的处理核心数量和内存空间;每个节点上剩余的CPU和内存容量为,hi u_res=hi u(1-hi u_util),u∈{cpu,mem},其中,hi u_util表示当前CPU和内存利用率;
32)将微服务放置到数据中心主机的问题,建模为0/1线性约束的二次规划问题:
其中,/> 如果微服务vi分配在节点hz上,则/>为1,否则为0;
4)部署微服务实例:将满足资源需求的微服务部署到集群中的可用节点,并部署依赖所述微服务的微服务实例到所述可用节点,所述微服务实例的部署方法为:
41)将所述云数据中心中可用于部署微服务的节点加入到节点集合中,并按照可用计算资源、可用内存空间和边权重以非递增顺序排列;
42)对于微服务应用中的第一个边,如果节点列表中的第一个节点可以满足两个交互微服务的计算和内存资源需求,则将这两个微服务放在同一个节点;
43)遍历与在节点上部署微服务交互的微服务,在节点可用计算和内存资源约束条件下,将多个微服务放在相同节点;
44)在每个节点上,当所有依赖的微服务分配完成,在当前节点能够满足计算和内存需求的条件下,将无依赖的剩余微服务放置在当前节点,并更新节点的可用资源数量;
45)如果更新后的剩余资源量不足以满足剩余微服务的资源需求,则选择节点排序列表中的下一个节点,按照微服务资源需求降序依次部署;
46)当没有更多的微服务需要放置,或者没有更多的可用节点用来部署微服务时,微服务实例部署操作终止;
47)为每个微服务设置索引值,表示微服务分配到的物理节点,如果该索引值为0,则没有可用节点能够分配,微服务继续在调度队列中等待,直到节点变得可用。
2.如权利要求1所述的方法,其特征在于,微服务交互图生成方法为:
微服务应用由众多微服务构成,这些微服务相互交互以处理从用户接收的请求,微服务之间的交互表示为无向图加权图G=<V,T,E,D>,其中,V表示微服务组成的顶点集合;T表示由V中与顶点相关联的权重集合,权重表示为<vcpu_req,vmem_req>,vcpu_req表示与所述顶点相关联的计算资源需求,vmem_req表示与所述顶点相关联的内存资源需求;E表示微服务交互的边集合;D表示边权重dij集合,dij表示微服务i和微服务j之间的调用数量,所述调用数量是指微服务i和微服务j在两个方向上交互次数的总和。
3.如权利要求2所述的方法,其特征在于,微服务交互因子计算方法为:
将两个节点vi和vj之间的交互行为定义为所述交互因子cij,其中,微服务vi部署在主机hz,微服务vj部署在节点hw,如果hz和hw是不同的节点则cij=0,否则cij=dij/2。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110066625.8A CN112783649B (zh) | 2021-01-19 | 2021-01-19 | 一种面向云计算的交互感知的容器化微服务资源调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110066625.8A CN112783649B (zh) | 2021-01-19 | 2021-01-19 | 一种面向云计算的交互感知的容器化微服务资源调度方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112783649A CN112783649A (zh) | 2021-05-11 |
CN112783649B true CN112783649B (zh) | 2024-03-01 |
Family
ID=75757510
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110066625.8A Active CN112783649B (zh) | 2021-01-19 | 2021-01-19 | 一种面向云计算的交互感知的容器化微服务资源调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112783649B (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113268251A (zh) * | 2021-05-25 | 2021-08-17 | 中国联合网络通信集团有限公司 | 微服务的部署方法及其设备、计算机存储介质 |
CN113596110B (zh) * | 2021-07-08 | 2023-12-15 | 交通银行股份有限公司太平洋信用卡中心 | 一种面向异构云的云原生微服务平台 |
CN113703945B (zh) * | 2021-08-31 | 2024-02-20 | 深圳市兴海物联科技有限公司 | 微服务集群的调度方法、装置、设备及存储介质 |
CN115834689A (zh) * | 2021-09-15 | 2023-03-21 | 深圳富桂精密工业有限公司 | 微服务分配方法、电子设备及存储介质 |
CN114024782B (zh) * | 2022-01-10 | 2022-04-12 | 江苏博云科技股份有限公司 | 基于三层安全隧道技术的云与边缘、边缘与边缘组网系统 |
CN114928633B (zh) * | 2022-05-16 | 2024-04-16 | 江苏赞奇科技股份有限公司 | 一种基于复杂云应用环境的高效控制方法及系统 |
CN115190121B (zh) * | 2022-05-25 | 2023-11-17 | 上海交通大学 | 基于跨地域的微服务过量负载调度系统、方法及设备 |
CN115277862B (zh) * | 2022-06-21 | 2024-08-13 | 阿里巴巴(中国)有限公司 | 基于容器的资源调度方法及装置 |
CN114816272B (zh) * | 2022-06-23 | 2022-09-06 | 江苏博云科技股份有限公司 | Kubernetes环境下的磁盘管理系统 |
CN115190010B (zh) * | 2022-07-01 | 2023-04-07 | 北京友友天宇系统技术有限公司 | 基于软件服务依赖关系的分布推荐方法和装置 |
CN116192962B (zh) * | 2023-02-27 | 2023-11-14 | 中国人民解放军国防科技大学 | 一种面向云边端计算的通信聚合方法及系统 |
CN116881571B (zh) * | 2023-07-27 | 2024-01-12 | 广东麦视互联网科技有限公司 | 基于微服务的数据挖掘方法及系统 |
CN117349036B (zh) * | 2023-12-06 | 2024-04-05 | 湖北省楚天云有限公司 | 微服务实例部署方法、系统、设备及存储介质 |
CN117692503B (zh) * | 2024-02-04 | 2024-04-26 | 国网湖北省电力有限公司信息通信公司 | 动态微服务图部署和概率请求路由的联合优化方法及系统 |
CN118113421B (zh) * | 2024-04-28 | 2024-07-23 | 深圳云天畅想信息科技有限公司 | 云工作站的云资源池容量规划方法、装置及计算机设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019024445A1 (zh) * | 2017-07-31 | 2019-02-07 | 上海交通大学 | 地理分布交互服务云资源协同优化方法 |
CN111027736A (zh) * | 2019-07-30 | 2020-04-17 | 中国人民解放军国防科技大学 | 多目标优化下的微服务组合部署与调度方法 |
US10776172B1 (en) * | 2019-12-31 | 2020-09-15 | Oath Inc. | Cost optimized services for dynamic service levels |
-
2021
- 2021-01-19 CN CN202110066625.8A patent/CN112783649B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019024445A1 (zh) * | 2017-07-31 | 2019-02-07 | 上海交通大学 | 地理分布交互服务云资源协同优化方法 |
CN111027736A (zh) * | 2019-07-30 | 2020-04-17 | 中国人民解放军国防科技大学 | 多目标优化下的微服务组合部署与调度方法 |
US10776172B1 (en) * | 2019-12-31 | 2020-09-15 | Oath Inc. | Cost optimized services for dynamic service levels |
Non-Patent Citations (1)
Title |
---|
面向微服务系统的运行时部署优化;徐琛杰;周翔;彭鑫;赵文耘;;计算机应用与软件(10);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112783649A (zh) | 2021-05-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112783649B (zh) | 一种面向云计算的交互感知的容器化微服务资源调度方法 | |
Carrión | Kubernetes scheduling: Taxonomy, ongoing issues and challenges | |
Kaur et al. | Container-as-a-service at the edge: Trade-off between energy efficiency and service availability at fog nano data centers | |
Gupta et al. | Resource-aware virtual machine placement algorithm for IaaS cloud | |
Xu et al. | A survey on load balancing algorithms for virtual machines placement in cloud computing | |
Skarlat et al. | A framework for optimization, service placement, and runtime operation in the fog | |
Nardelli et al. | Elastic provisioning of virtual machines for container deployment | |
Ali et al. | A cost and energy efficient task scheduling technique to offload microservices based applications in mobile cloud computing | |
Bajo et al. | A low-level resource allocation in an agent-based Cloud Computing platform | |
CN109478973A (zh) | 用于任务调度、资源发放和服务提供的sdn控制器、系统和方法 | |
CN115134371A (zh) | 包含边缘网络算力资源的调度方法、系统、设备及介质 | |
Kim et al. | An autonomic approach to integrated hpc grid and cloud usage | |
Chen et al. | Task partitioning and offloading in IoT cloud-edge collaborative computing framework: a survey | |
Al-Sinayyid et al. | Job scheduler for streaming applications in heterogeneous distributed processing systems | |
Mishra et al. | A meta-heuristic based multi objective optimization for load distribution in cloud data center under varying workloads | |
Petrosyan et al. | Serverless high-performance computing over cloud | |
Liu et al. | Fine-grained scheduling for containerized hpc workloads in kubernetes clusters | |
Lyu et al. | A heterogeneous cloud-edge collaborative computing architecture with affinity-based workflow scheduling and resource allocation for internet-of-things applications | |
Mendes et al. | Oversubscribing micro-clouds with energy-aware containers scheduling | |
Rao et al. | Scheduling microservice containers on large core machines through placement and coalescing | |
Priyanka et al. | Comparative analysis on Virtual Machine assignment algorithms | |
Yadav et al. | Job scheduling in grid computing | |
Zhou et al. | Stability property of clouds and cooperative scheduling policies on multiple types of resources in cloud computing | |
Tiwari et al. | A comprehensive study on cloud computing: Architecture, load balancing, task scheduling and meta-heuristic optimization | |
Pretto et al. | Janus: a framework to boost HPC applications in the cloud based on SDN path provisioning |
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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 7-9f, creative industry park, 328 Xinghu street, Suzhou Industrial Park, Suzhou City, Jiangsu Province, 215213 Applicant after: Jiangsu Boyun Technology Co.,Ltd. Address before: 7-9f, creative industry park, 328 Xinghu street, Suzhou Industrial Park, Suzhou City, Jiangsu Province, 215213 Applicant before: SUZHOU BONA XUNDONG SOFTWARE Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |