CN110855578A - 基于相似度的云上微服务资源调度优化方法 - Google Patents
基于相似度的云上微服务资源调度优化方法 Download PDFInfo
- Publication number
- CN110855578A CN110855578A CN201911073818.5A CN201911073818A CN110855578A CN 110855578 A CN110855578 A CN 110855578A CN 201911073818 A CN201911073818 A CN 201911073818A CN 110855578 A CN110855578 A CN 110855578A
- Authority
- CN
- China
- Prior art keywords
- micro
- service
- selecting
- matrix
- population
- 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
- 238000005457 optimization Methods 0.000 title claims abstract description 47
- 238000000034 method Methods 0.000 title claims abstract description 30
- 238000013507 mapping Methods 0.000 claims abstract description 23
- 239000011159 matrix material Substances 0.000 claims description 52
- 230000035772 mutation Effects 0.000 claims description 13
- 238000004364 calculation method Methods 0.000 claims description 6
- 230000008859 change Effects 0.000 claims description 4
- 238000003064 k means clustering Methods 0.000 claims description 4
- 238000005259 measurement Methods 0.000 claims description 4
- 230000003247 decreasing effect Effects 0.000 claims description 3
- 230000001186 cumulative effect Effects 0.000 claims description 2
- 238000012545 processing Methods 0.000 claims description 2
- 241001134453 Lista Species 0.000 claims 1
- 230000000694 effects Effects 0.000 abstract description 8
- 238000012163 sequencing technique Methods 0.000 abstract 2
- 238000007796 conventional method Methods 0.000 abstract 1
- 230000006870 function Effects 0.000 description 5
- 230000004044 response Effects 0.000 description 5
- 238000009826 distribution Methods 0.000 description 4
- 230000007547 defect Effects 0.000 description 3
- 230000002068 genetic effect Effects 0.000 description 3
- 230000002688 persistence Effects 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000002474 experimental method Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 201000004569 Blindness Diseases 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000009776 industrial production Methods 0.000 description 1
- 238000011423 initialization method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2416—Real-time traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/78—Architectures of resource allocation
- H04L47/783—Distributed allocation of resources, e.g. bandwidth brokers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/80—Actions related to the user profile or the type of traffic
- H04L47/801—Real time traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1074—Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1074—Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
- H04L67/1078—Resource delivery mechanisms
- H04L67/1085—Resource delivery mechanisms involving dynamic management of active down- or uploading connections
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开的一种基于相似度的云上微服务资源调度优化方法,主要解决现有方法的系统性能指标不全面、优化时间长且优化效果不佳的问题。其实现方案是:选取微服务基准系统,部署微服务系统;选取微服务环境的资源消耗、抖动程度、关联成本作为优化目标;计算并构建映射据库,并对数据库中的相似结果进行分组;基于当前的工作负载与分组后的映射数据库中各个类别的中心点计算相似度,根据相似度生成初始种群;对该初始种群使用交叉、变异操作进行更新,基于非支配排序对种群进行排序,并选出最优解。实验结果表明,本发明降低了时间成本,提高了微服务系统的性能和资源利用率,可用于对工作负载时刻变化的微服务系统进行动态的资源分配和部署。
Description
技术领域
本发明属于计算机技术领域,具体涉及一种云上微服务资源调度的优化方法,可用于对工作负载时刻变化的微服务系统进行动态的资源分配和部署。
背景技术
在传统的IT行业,大多数项目都是各种独立系统的堆砌,单体服务更加适用。但随着互联网的发展,项目的规模越来越大,各个模块更新迭代的速度越来越快,以及对系统扩展性稳定性的要求越来越高,单体服务出现了各种各样的问题,如开发效率缓慢、代码维护困难、部署不灵活等缺点,因此微服务系统应运而生。
微服务架构是一种使用一套小服务来开发单个应用的方式途径,每个服务运行在自己的进程中,并使用超文字传输协定应用程序编程接口(HTTP API)进行轻量级机制通信,这些服务基于业务能力构建,并能够通过自动化部署机制来独立部署,这些服务使用不同的编程语言实现,以及不同数据存储技术,并保持最低限度的集中式管理。微服务系统要提供一套基础的架构,这种架构使得微服务可以独立的部署、运行、升级,不仅如此,这个系统架构还让微服务与微服务之间在结构上“松耦合”,而在功能上则表现为一个统一的整体。微服务架构具有良好的模块扩展性,相比于单体架构能很好满足当前的互联网应用用户量预测、资源动态分配的需求。但是从微服务的运行和维护的视角来看,应对典型的互联网用户请求随机多变的场景,保障应用服务质量,减少微服务系统的资源消耗依旧面临挑战。
中国科学院软件研究所在其申请的专利文献“一种面向微服务架构的容器级弹性资源供给系统及方法”(专利申请号:CN201510974291.9公开号:CN105631196A申请日期:2015.12.22)中公开了一种面向微服务架构的容器级弹性资源供给方法。该方法通过周期性采集每个容器的CPU、内存、磁盘I/O、网络I/O系统资源使用参数以及每秒用户请求数,利用Jackson开环网络中的性能方程及流量方程进行建模,构建微服务架构下“负载-响应时间”的关联关系,再利用卡尔曼滤波器和Ts模糊函数对比响应时间的预测值与观测值,并根据得出的响应时间预测值是否违背了应用的服务质量为依据,对容器进行资源管理,从而保证用户应用的服务质量。该方法存在的不足是,仅从容器层收集数据对系统性能进行建模来评估系统服务的响应时间,从而导致预测值存在偏差,没有基于特征进行微服务性能预测,用户服务质量难以保障的情况。
马翠在其撰写的硕士学位论文“基于SOA的系统性能建模研究”(南京邮电大学2012年3月,分类号:TP393.09)中公开了一种面向服务的体系架构系统性能的建模方法。该方法首先分析了影响面向服务的体系结构系统性能的静态因素,例如运行平台,网络因素和服务因素,以及影响系统性能的动态因素—用户负载。然后在这些影响因素中选择适合评估服务性能的分析方法。最后对服务进行原子服务和组合服务分类来评估Web服务的性能,以服务的响应时间作为评价系统性能的指标。但是该方法在微服务调度发生在云环境中,由于未对公共云服务中的应用调度模型进行充分考虑,而是只考虑影响服务系统性能的静态因素和动态因素,并未将生产环境下单个服务的部署环境性能、以及系统的运行成本等因素考虑进去,不考虑服务之间的调用,相比于分布式结构体系更适合用在集中式的SOA架构,因而无法适应在云环境中分布式部署的第三代微服务架构。
发明内容
本发明的目的在于针对第三代分布式微服务系统,提出一种基于相似度的云上微服务资源调度优化方法,以解决上述现有技术的不足,提高用户服务质量和资源利用效率。
为实现上述目的,本发明技术方案包括如下步骤:
(1)搭建微服务环境:
(1a)在不同的物理服务器上搭建由多台配置不同且相互连接组成的虚拟机集群;
(1b)选定的微服务基准系统,并将其将部署在该虚拟机集群中;
(2)选取微服务环境的三个优化目标:即选取虚拟机的资源消耗C作为第一个目标;选取微服务系统的抖动程度J作为第二个目标;选取微服务的关联成本E作为第三个目标;
(3)使用NSGA-Ⅱ算法构建一个包含工作负载与状态矩阵一一对应的映射数据库;
(4)以欧氏距离作为聚类的依据,使用K-means聚类算法对映射数据库里的工作负载与状态矩阵进行聚类,并将聚类结果相似的映射划分为同一个类别中;
(5)基于相似度生成初始种群:
(5a)根据当前t时刻的系统工作负载W,在上述数据库中,找到每个类别的中心点,计算每个类别的中心点与负载W的相似度,并选出相似度最大的中心点所在的类别;
(5b)使用轮盘赌算法从所选类别中选取部分状态矩阵,将其与随机产生的状态矩阵共同组成初始种群;
(6)求解最优状态矩阵Sopt:
(6a)对初始种群依次使用交叉、变异操作进行每一代的更新,并对种群中的每个个体S计算其三个优化目标C、J、E:
E(t)=U×(D×S(t)×L)×UT
其中,C(t)、J(t)和E(t)分别是三个优化目标C、J、E在t时刻的具体表示,和分别表示在时刻t和时刻t-1下的微服务msi部署在虚拟机vmj上的实例个数,S(t)为用元素构成的矩阵,i∈[1,m],j∈[1,n],m和n分别表示微服务的种类和虚拟机的数量;msi.r表示微服务msi部署在虚拟机vmj上需要的资源总量;U是一个1×n维的全1向量;是n台虚拟机之间的固定延迟,它是由云服务提供商与物理机共同决定的;表示微服务之间的调用距离,其元素dp,q可由以下公式计算得到:
其中cor(msp,msq)表示微服务msp和msq之间的相关性,定义为:
A={A1,A2,…}表示访问微服务系统的一系列应用,每个应用都需调用相应的多个微服务协同实现其功能;表示第k个应用Ak要调用的微服务组成的服务调用链。当msp与msq同属一个调用链时,它们之间的相关性为1,否则为0;
(6b)使用计算出的三个目标值对种群的所有个体进行非支配排序,从中选出Pareto最优解,得到当前负载W下的最优状态矩阵Sopt。
本发明与现有的技术相比具有以下优点:
第一,本发明根据真实情况中用户访问数量的持续性与随机性,对微服务系统的性能进行了系统资源消耗、微服务系统抖动性、微服务关联成本这三个优化目标建模,克服了现有技术只考虑影响服务系统性能的静态因素和动态因素、计算结果存在偏差的问题,相对全面的微服务系统提高了度量指标。
第二,本发明通过使用基于相似性的种群初始化方法,打破了现有的随机生成初始种群的思路,通过在数据库中以往的系统负载与对应的状态矩阵,并计算以往负载与当前负载的相似性,将相似性大的以往负载对应的状态矩阵作为当前初始种群的一部分,降低了随机生成初始种群的盲目性、提高了优化效率,可以更快地收敛到最优解。
第三,本发明由于参考了现实世界中的用户对微服务的请求访问情况,对符合泊松分布的用户请求数据进行模拟,使得计算得到的系统部署状态更加符合真实环境。
附图说明
图1是本发明的实现流程图;
图2是本发明中构建的微服务系统结构图;
图3是本发明中利用相似度生成初始种群的子流程图;
图4是用本发明和现有优化算法针对不同用户负载的优化结果曲线图;
图5是用本发明和现有优化算法针对不同时间约束的优化结果柱状图。
具体实施方式
本发明针对工业生产中经常遇到的微服务动态资源调度问题,给出了一个效果更好、优化速度更快的基于相似度的云上微服务资源调度的优化方法。在这一方法中,首先通过构建映射数据库记录以往的某一工作负载下对应的微服务最优部署状态矩阵,并对数据库中相似的工作负载进行聚类;再通过计算当前负载与数据库中各类别的相似度,选出最接近的一类,采取轮盘赌方法选中与当前负载最接近的负载对应的部署状态矩阵,作为算法的初始种群的一部分,然后进行启发式的交叉、变异和非支配排序选择最优解,获得最终的调度结果。
下面结合附图对本发明的实施例和效果进一步详细描述。
参见图1,本实例的实现步骤如下:
步骤1,搭建微服务环境。
(1.1)在同一台物理服务器上搭建由多台配置不同的虚拟机相互连接组成的集群,作为微服务系统的运行环境:
虚拟机是通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的计算机系统,在实体计算机中完成的工作在虚拟机中都能够实现。在实体机中创建虚拟机时,需要将实体机的部分硬盘和内存容量作为虚拟机的硬盘和内存容量。每个虚拟机都有独立的硬盘和操作系统,可以像实体机一样进行操作。本实例中的具体虚拟机的配置如下表:
表1各虚拟机的配置数据
虚拟机 | CPU核数 | 内存空间(G) | 磁盘空间(G) |
VM1 | 4 | 16 | 30 |
VM2 | 4 | 8 | 30 |
VM3 | 4 | 8 | 30 |
VM4 | 8 | 16 | 30 |
(1.2)选定微服务基准系统部署在虚拟机集群中,根据其具体特性合理地部署在虚拟机中:
本实例选取了TeaStore微服务系统,它包含了五种不同类型的微服务,分别是WebUI、Persistence、Image provider、Authentication、Recommender和一个注册表配置中心Registry,其中WebUI主要提供用户访问的图形界面,是直接面向用户的操作窗口;Persistence提供数据的持久化,保障系统的运行;Image provider为所有界面加载图片;Authentication提供了用户的身份认证,并为不同等级的用户提供了不同的访问权限;Recommender是推荐系统,为不同兴趣的用户提供不同的推荐商品。Registry维护了一张服务注册表,任何新建或者即将销毁的微服务均需向Registry发送消息,更新自己在服务注册表上的状态;
(1.3)在把微服务部署在虚拟机上时,使用容器作为中介来简化部署方式:
一个容器包含有完整的运行需要的环境:即一个应用、该应用所需的全部依赖、类库、其他二进制文件和配置文件,它们统一被打入了一个包中;
通过将应用平台和其依赖使用容器进行打包,操作系统的发行版本和一些基础环境造成的差异,都被容器抽象化,不再产生影响;
通过使用容器可以敏捷地创建和部署应用,提高容器镜像创建的效率,提升虚拟化的层次。
本实例采取“单一容器单一服务”的模式,把每个微服务被打包在一个容器上,每个容器仅放置一个微服务,并将其部署在虚拟机中,如图2所示,即在物理机上部署了多台虚拟机,选取轻量级的TeaStore微服务基准系统,并引入容器作为微服务部署在虚拟机的中间媒介,使整个系统的可操作性更好、服务更加易于部署。
步骤2,选取三个优化目标。
微服务系统的性能具有多个度量指标,包括硬盘资源利用率、CPU利用率、I/O吞吐量和用户服务质量等。本实例选取虚拟机资源消耗、系统的抖动性和微服务之间的关联成本三个方面的指标作为优化目标,具体实现如下:
(2.1)计算虚拟机的资源消耗C(t)并将其作为第一个目标:
首先,通过具体的配置文件,得到不同种类的微服务部署在虚拟机上所需的资源总量msi.r;
然后,根据资源总量msi.r,计算在t时刻不同的分布状态矩阵S(t)对应的虚拟机的资源消耗C(t):
(2.2)计算微服务系统的抖动性J(t)并将其作为第二个目标:
J(t)的计算基于两个相邻时刻的微服务部署状态矩阵的变化差值,如以下公式所示:
(2.3)计算微服务之间的关联成本E(t)并将其作为第三个目标:
(2.3a)定义微服务msi与msj之间的相关性cor(msp,msq):
其中,A={A1,A2,…}表示一系列应用,每个应用都会调用相应的多个微服务协同实现该功能,表示第k个应用Ak需要调用的微服务组成的服务调用链;
(2.3b)定义第p个微服务msp与第q个微服务msq之间的调用距离dp,q为:
(2.3c)通过下式计算关联成本E(t):
E(t)=U×(D×S(t)×L)×UT
其中,U是一个1×n维的全1向量,D是由调用距离dp,q构成的矩阵,L指的是n台虚拟机之间的延迟,它是由云服务提供商与物理机共同决定的,E(t)反映了不同的微服务部署在系统中产生的调用成本,E(t)越小,说明调用成本越小,微服务系统的用户服务质量越高。
步骤3,使用NSGA-Ⅱ算法构建一个包含工作负载与状态矩阵一一对应的映射数据库。
NSGA-Ⅱ算法是一种多目标遗传算法,属于启发式算法的一个分支。启发式算法是基于直观或经验构造的算法,在可接受的指计算时间和空间下给出待解决组合优化问题每一个实例的一个可行解,该可行解与最优解的偏离程度一般不能被预计。
本实例的具体步骤如下:
(3.1)随机初始化一个包含状态矩阵S的种群,且S有如下约束:
其中Wi表示施加在微服务msi上的工作负载,msi.g表示微服务msi一次性能处理的最大工作负载;si.j为矩阵S第i行第j列的元素,表示微服务msi部署在虚拟机vmj上的实例个数;
(3.2)根据上述约束生成状态矩阵S的初始种群,并通过交叉、变异操作更新种群,即先随机生成一个数字k,交换两个个体的第k行,得到新的个体,完成交叉操作,其中1≤k≤m;再随机选择矩阵S中同一行的两个元素,其中一个元素增加,另一个元素减少相应数值,完成变异操作,进行交叉和变异操作之后的个体仍然满足对矩阵S的约束;
(3.3)对交叉、变异后种群的矩阵S分别计算三个优化目标C、J、E;
(3.4)对这三个优化目标进行非支配排序:
非支配排序主要用于多目标问题,即如果对于一个决策变量,不存在其他决策变量能够支配它,则该决策变量为排序后得到的非支配解,即Pareto最优解,多个Pareto最优解构成了Pareto前沿;
在根据不同个体的优化目标C、J、E的支配关系构成了Pareto前沿后,从Pareto前沿中选出最优的状态矩阵S,将它与工作负载W组成工作负载W与状态矩阵S一一对应的映射,并把该映射加入到数据库中。
步骤4,以欧氏距离作为聚类的依据,使用K-means聚类算法对映射数据库里的工作负载与状态矩阵进行聚类,并将聚类结果相似的映射划分为同一个类别中。
本步骤的具体实现如下:
(4.1)根据系统负载的类型,选择类别数k,并从映射数据库中随机选取k个个体作为初始的中心点,计算度量数据库工作负载与中心点之间的距离disted(Wj,μ(l)):
其中μ(l)表示第l个中心点,Wj表示数据库中第j个工作负载;
(4.2)根据距离最近的中心点确定Wj的类别种类λj:
λj=argminl∈{1,2,...,k}disted(Wj,μ(l))
(4.4)更新每个类别Cl的中心点μ'(l):
其中W为类别Cl中的个体;如果中心点μ'(l)没发生变化,则得到的各类别即为映射数据库的聚类结果;若中心点变化,则重复(4.1)-(4.4),将各个体划分到新的类别中。
步骤5,基于映射数据库中每个类别的中心点μ(l)与当前的工作负载W的相似度,生成初始种群。
参照图3,本步骤的具体实现如下:
(5.1)计算每个类别的中心点μ(l)与负载Wj的相似度Γ(μ(l),Wj):
(5.2)选择相似度最大的分组作为初始种群的来源,并使用轮盘赌算法选取相应的状态矩阵作为初始种群的一部分,具体步骤如下:
(5.2a)计算该类别中每个个体的累计概率ps(x(j)):
其中x(j)是由一一对应的工作负载Wj和状态矩阵Sj组成的个体,W(t)为当前t时刻的系统工作负载。
(5.2b)在[0,1]区间内产生一个伪随机数r,选择能使ps(x(j-1))<r<ps(x(j))成立的个体x(j),该x(j)的状态矩阵Sj即为选中的状态矩阵,将其与随机产生的状态矩阵共同组成初始种群。
步骤6,求解最优状态矩阵Sopt。
得到初始种群后,通过交叉、变异操作更新种群,对更新后的种群使用非支配排序,从中选出拥挤度最小的个体作为最优解Sopt,具体步骤如下:
(6.1)随机生成一个数字k,交换两个个体的第k行,得到新的个体1≤k≤m,完成交叉操作;
(6.2)随机选择矩阵S中同一行的两个元素,其中一个元素增加,另一个元素相应减少相应数值,完成变异操作,
完成上述交叉和变异操作之后的个体仍然满足(3.1)中对矩阵S的约束;
(6.2)对更新后的种群中每个个体S,计算其三个优化目标C、J、E,使用这三个目标值对种群的所有个体进行非支配排序,即先根据不同个体的优化目标C、J、E的支配关系,构成非支配Pareto前沿,再使用拥挤距离对Pareto前沿的个体x(i)进行拥挤度的计算:
本实例的效果可通过以下实验进行验证:
一、实验条件
本实例选择一台性能较优的服务器,然后在服务器上创建4台虚拟机用来搭建微服务系统,服务器的具体规格参数如表2所示。
表2服务器参数规格
操作系统 | CentOS 6.5 |
处理器型号 | Intel(R)Xeon(R)CPU E5-2650L v2@1.70GHz |
处理器个数 | 80 |
内存 | 256G |
硬盘 | 3TB |
二、实验内容
将本发明与三种经典遗传算法,即蚁群算法ACO、粒子群算法PSO、非支配遗传算法NSGA-Ⅱ同时在上述搭建的微服务系统中进行最优分布矩阵S的计算,并将计算得到的分布矩阵S对应的三个优化目标C、J、E进行对比,得出该四种算法在不同系统负载W下三个优化目标结果,如图4所示,得出该四种算法在不同时间约束T下三个优化目标结果,如图5所示。
从对图4的纵坐标取值可以看出,对于计算得到的20个决策变量,本发明在三个优化目标上的优化效果都优于另外三个经典算法。
从图5可以看出,在时间约束越严格的情况下,其他三个算法对于三个目标的优化效果越差,而本发明则一直保持比较稳定的优化效果。
上述实验验证了分别在不同系统负载和不同的时间约束下,本发明对于微服务系统的三个优化目标的优化效果均优于另外三种经典算法。
Claims (7)
1.一种基于相似度的云上微服务资源调度的优化方法,其特征在于,包括如下:
(1)搭建微服务环境:
(1a)在不同的物理服务器上搭建由多台配置不同且相互连接组成的虚拟机集群;
(1b)选定的微服务基准系统,并将其将部署在该虚拟机集群中;
(2)选取微服务环境的三个优化目标:即选取虚拟机的资源消耗C作为第一个目标;选取微服务系统的抖动程度J作为第二个目标;选取微服务的关联成本E作为第三个目标;
(3)使用NSGA-Ⅱ算法构建一个包含工作负载与状态矩阵一一对应的映射数据库;
(4)以欧氏距离作为聚类的依据,使用K-means聚类算法对映射数据库里的工作负载与状态矩阵进行聚类,并将聚类结果相似的映射划分为同一个类别中;
(5)基于相似度生成初始种群:
(5a)根据当前t时刻的系统工作负载W,在上述数据库中,找到每个类别的中心点,计算每个类别的中心点与负载W的相似度,并选出相似度最大的中心点所在的类别;
(5b)使用轮盘赌算法从所选类别中选取部分状态矩阵,将其与随机产生的状态矩阵共同组成初始种群;
(6)求解最优状态矩阵Sopt:
(6a)对初始种群依次使用交叉、变异操作进行每一代的更新,并对种群中的每个个体S计算其三个优化目标C、J、E:
E(t)=U×(D×S(t)×L)×UT
其中,C(t)、J(t)和E(t)分别是三个优化目标C、J、E在t时刻的具体表示,和分别表示在时刻t和时刻t-1下的微服务msi部署在虚拟机vmj上的实例个数,S(t)为用元素构成的矩阵,i∈[1,m],j∈[1,n],m和n分别表示微服务的种类和虚拟机的数量;msi.r表示微服务msi部署在虚拟机vmj上需要的资源总量;U是一个1×n维的全1向量;是n台虚拟机之间的固定延迟,它是由云服务提供商与物理机共同决定的;表示微服务之间的调用距离,其元素dp,q可由以下公式计算得到:
其中cor(msp,msq)表示微服务msp和msq之间的相关性,定义为:
A={A1,A2,…}表示访问微服务系统的一系列应用,每个应用都需调用相应的多个微服务协同实现其功能;EAk表示第k个应用Ak要调用的微服务组成的服务调用链。当msp与msq同属一个调用链时,它们之间的相关性为1,否则为0;
(6b)使用计算出的三个目标值对种群的所有个体进行非支配排序,从中选出Pareto最优解,得到当前负载W下的最优状态矩阵Sopt。
2.根据权利要求1所述的方法,其特征在于,步骤(3)中的使用NSGA-Ⅱ算法构建一个包含工作负载与状态矩阵一一对应的映射数据库,实现如下:
(3a)随机初始化一个包含状态矩阵S的种群,且S有如下约束:
其中W表示施加在微服务msi上的工作负载,msi.g表示微服务msi一次性能处理的最大工作负载,si.j为矩阵S第i行第j列的元素;
(3b)根据上述约束生成状态矩阵S的初始种群,并通过经典交叉、变异操作更新种群,即先随机生成一个数字k,交换两个个体的第k行,得到新的个体,其中1≤k≤m,完成交叉操作;再随机选择矩阵S中同一行的两个元素,其中一个元素增加,另一个元素相应减少相应数值,完成变异操作,进行交叉和变异操作之后的个体仍然满足对矩阵S的约束;
(3c)对交叉、变异后种群的矩阵S分别计算其三个优化目标C、J、E;
(3d)对优化目标进行非支配排序:
根据不同个体的优化目标C、J、E的支配关系,构成非支配Pareto前沿;
从Pareto前沿中选出最优的状态矩阵S,将它与工作负载W组成工作负载W与状态矩阵S一一对应的映射,并把该映射加入到数据库中。
3.根据权利要求1所述的方法,其特征在于,步骤(4)中使用K-means聚类算法对映射数据库里的工作负载与状态矩阵进行聚类,实现如下:
(4a)根据系统负载的类型,选择类别数k,并从映射数据库中随机选取k个个体作为初始的中心点,计算度量数据库工作负载与中心点之间的距离disted(Wj,μ(l)):
其中μ(l)表示第l个中心点,Wj表示数据库中第j个工作负载;
(4b)根据距离最近的中心点确定Wj的类别种类λj:
λj=argminl∈{1,2,...,k}disted(Wj,μ(l))
(4c)将Wj划入相应的类别中:
(4d)更新每个类别Cl的中心点μ'(l):
其中W为类别Cl中的个体;如果中心点μ'(l)没发生变化,则得到的各类别即为映射数据库的聚类结果;若中心点变化,则重复(4a)-(4d),将各个体划分到新的类别中。
5.根据权利要求1所述的方法,其特征在于,步骤(5b)中的使用轮盘赌算法从所选类别中选取部分状态矩阵,实现如下:
(5a)计算该类别中每个个体的累计概率ps(x(j)):
其中x(j)是由一一对应的工作负载Wj和状态矩阵Sj组成的个体,W(t)为当前t时刻的系统工作负载;
(5b)在[0,1]区间内产生一个伪随机数r,选择能使ps(x(j-1))<r<ps(x(j))成立的个体x(j),该x(j)的状态矩阵Sj即为选中的状态矩阵。
6.根据权利要求1所述的方法,其特征在于,步骤(6a)中对生成的初始种群依次使用交叉、变异操作进行每一代的更新:采用两点交叉,在种群中选取个体Sp和Sq交换某一行,完成交叉操作;随机选择矩阵S中同一行的两个元素,随机增加其中一个元素的值,并减小另一个元素相同大小的值,完成变异操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911073818.5A CN110855578B (zh) | 2019-11-06 | 2019-11-06 | 基于相似度的云上微服务资源调度优化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911073818.5A CN110855578B (zh) | 2019-11-06 | 2019-11-06 | 基于相似度的云上微服务资源调度优化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110855578A true CN110855578A (zh) | 2020-02-28 |
CN110855578B CN110855578B (zh) | 2022-07-26 |
Family
ID=69598072
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911073818.5A Active CN110855578B (zh) | 2019-11-06 | 2019-11-06 | 基于相似度的云上微服务资源调度优化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110855578B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112612603A (zh) * | 2020-12-14 | 2021-04-06 | 江苏苏州农村商业银行股份有限公司 | 适用于金融业务的多框架微服务应用的云配置方法及系统 |
CN113014421A (zh) * | 2021-02-08 | 2021-06-22 | 武汉大学 | 一种面向云原生系统的微服务根因定位方法 |
CN113064712A (zh) * | 2021-04-16 | 2021-07-02 | 上海交通大学 | 基于云边环境的微服务优化部署控制方法、系统及集群 |
CN114629959A (zh) * | 2022-03-22 | 2022-06-14 | 北方工业大学 | 一种云环境中上下文感知的IoT服务调度策略生成方法 |
CN115118748A (zh) * | 2022-06-21 | 2022-09-27 | 上海交通大学 | 一种智能制造场景微服务部署方案和资源再分配方法 |
CN115733750A (zh) * | 2022-11-25 | 2023-03-03 | 中国工商银行股份有限公司 | 微服务网关中元数据更新方法、装置、设备和存储介质 |
CN115941701A (zh) * | 2022-10-13 | 2023-04-07 | 华能信息技术有限公司 | 一种基于微服务架构的动态配置方法 |
CN117252372A (zh) * | 2023-09-22 | 2023-12-19 | 国网新疆电力有限公司营销服务中心(资金集约中心、计量中心) | 一种基于聚类分析算法的工业互联网资源分配和调度方法 |
US12050946B2 (en) | 2020-09-21 | 2024-07-30 | International Business Machines Corporation | Just in time assembly of transactions |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105959138A (zh) * | 2016-04-29 | 2016-09-21 | 深圳前海大数点科技有限公司 | 基于云计算的微服务动态部署的系统及方法 |
CN108664378A (zh) * | 2018-05-10 | 2018-10-16 | 西安电子科技大学 | 一种微服务最短执行时间的优化方法 |
CN109144724A (zh) * | 2018-07-27 | 2019-01-04 | 众安信息技术服务有限公司 | 一种微服务资源调度系统及方法 |
CN109271232A (zh) * | 2018-07-03 | 2019-01-25 | 广东省城乡规划设计研究院 | 一种基于云计算平台的集群资源分配方法 |
CN109324876A (zh) * | 2018-10-12 | 2019-02-12 | 西安交通大学 | 一种高可用的Docker与虚拟机初始放置方法 |
CN109901922A (zh) * | 2019-03-05 | 2019-06-18 | 北京工业大学 | 一种面向多层服务的容器云资源调度优化方法 |
-
2019
- 2019-11-06 CN CN201911073818.5A patent/CN110855578B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105959138A (zh) * | 2016-04-29 | 2016-09-21 | 深圳前海大数点科技有限公司 | 基于云计算的微服务动态部署的系统及方法 |
CN108664378A (zh) * | 2018-05-10 | 2018-10-16 | 西安电子科技大学 | 一种微服务最短执行时间的优化方法 |
CN109271232A (zh) * | 2018-07-03 | 2019-01-25 | 广东省城乡规划设计研究院 | 一种基于云计算平台的集群资源分配方法 |
CN109144724A (zh) * | 2018-07-27 | 2019-01-04 | 众安信息技术服务有限公司 | 一种微服务资源调度系统及方法 |
CN109324876A (zh) * | 2018-10-12 | 2019-02-12 | 西安交通大学 | 一种高可用的Docker与虚拟机初始放置方法 |
CN109901922A (zh) * | 2019-03-05 | 2019-06-18 | 北京工业大学 | 一种面向多层服务的容器云资源调度优化方法 |
Non-Patent Citations (4)
Title |
---|
FERNANDO H. L. BUZATO等: "Efficient Resources Utilization by DifferentMicroservices Deployment Models", 《 2018 IEEE 17TH INTERNATIONAL SYMPOSIUM ON NETWORK COMPUTING AND APPLICATIONS (NCA)》 * |
WANG XIAOJUN等: "Research on the Construction of Resource Sharing Platform Based on MicroService", 《2017 INTERNATIONAL CONFERENCE ON SMART GRID AND ELECTRICAL AUTOMATION (ICSGEA)》 * |
朱海等: "云环境下能耗优化的任务调度模型及虚拟机部署算法", 《系统工程理论与实践》 * |
郭骏等: "基于云计算的海量微服务资源调度系统设计与实现", 《电子设计工程》 * |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12050946B2 (en) | 2020-09-21 | 2024-07-30 | International Business Machines Corporation | Just in time assembly of transactions |
CN112612603A (zh) * | 2020-12-14 | 2021-04-06 | 江苏苏州农村商业银行股份有限公司 | 适用于金融业务的多框架微服务应用的云配置方法及系统 |
CN112612603B (zh) * | 2020-12-14 | 2024-05-10 | 江苏苏州农村商业银行股份有限公司 | 适用于金融业务的多框架微服务应用的云配置方法及系统 |
CN113014421A (zh) * | 2021-02-08 | 2021-06-22 | 武汉大学 | 一种面向云原生系统的微服务根因定位方法 |
CN113064712A (zh) * | 2021-04-16 | 2021-07-02 | 上海交通大学 | 基于云边环境的微服务优化部署控制方法、系统及集群 |
CN113064712B (zh) * | 2021-04-16 | 2022-05-17 | 上海交通大学 | 基于云边环境的微服务优化部署控制方法、系统及集群 |
CN114629959A (zh) * | 2022-03-22 | 2022-06-14 | 北方工业大学 | 一种云环境中上下文感知的IoT服务调度策略生成方法 |
CN114629959B (zh) * | 2022-03-22 | 2023-11-17 | 北方工业大学 | 一种云环境中上下文感知的IoT服务调度策略方法 |
CN115118748B (zh) * | 2022-06-21 | 2023-09-26 | 上海交通大学 | 一种智能制造场景微服务部署方案和资源再分配方法 |
CN115118748A (zh) * | 2022-06-21 | 2022-09-27 | 上海交通大学 | 一种智能制造场景微服务部署方案和资源再分配方法 |
CN115941701B (zh) * | 2022-10-13 | 2023-06-23 | 华能信息技术有限公司 | 一种基于微服务架构的动态配置方法 |
CN115941701A (zh) * | 2022-10-13 | 2023-04-07 | 华能信息技术有限公司 | 一种基于微服务架构的动态配置方法 |
CN115733750A (zh) * | 2022-11-25 | 2023-03-03 | 中国工商银行股份有限公司 | 微服务网关中元数据更新方法、装置、设备和存储介质 |
CN117252372A (zh) * | 2023-09-22 | 2023-12-19 | 国网新疆电力有限公司营销服务中心(资金集约中心、计量中心) | 一种基于聚类分析算法的工业互联网资源分配和调度方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110855578B (zh) | 2022-07-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110855578B (zh) | 基于相似度的云上微服务资源调度优化方法 | |
Pourghebleh et al. | The importance of nature-inspired meta-heuristic algorithms for solving virtual machine consolidation problem in cloud environments | |
Zade et al. | SAEA: A security-aware and energy-aware task scheduling strategy by Parallel Squirrel Search Algorithm in cloud environment | |
Jyoti et al. | Dynamic provisioning of resources based on load balancing and service broker policy in cloud computing | |
Cho et al. | A hybrid meta-heuristic algorithm for VM scheduling with load balancing in cloud computing | |
Hamad et al. | Genetic-based task scheduling algorithm in cloud computing environment | |
Chen et al. | A multi-objective optimization for resource allocation of emergent demands in cloud computing | |
Xu et al. | Dynamic deployment of virtual machines in cloud computing using multi-objective optimization | |
Wu et al. | Fuzzy high-utility pattern mining in parallel and distributed Hadoop framework | |
Panwar et al. | TOPSIS–PSO inspired non-preemptive tasks scheduling algorithm in cloud environment | |
Ding et al. | Kubernetes-oriented microservice placement with dynamic resource allocation | |
Tang et al. | Parallel random matrix particle swarm optimization scheduling algorithms with budget constraints on cloud computing systems | |
Ankita et al. | Ba-PSO: A Balanced PSO to solve multi-objective grid scheduling problem | |
Paulraj et al. | An efficient hybrid job scheduling optimization (EHJSO) approach to enhance resource search using Cuckoo and Grey Wolf Job Optimization for cloud environment | |
Asghari et al. | Combined use of coral reefs optimization and reinforcement learning for improving resource utilization and load balancing in cloud environments | |
Vasile et al. | MLBox: Machine learning box for asymptotic scheduling | |
Sarathambekai et al. | Task scheduling in distributed systems using heap intelligent discrete particle swarm optimization | |
Zhou et al. | Deep reinforcement learning-based algorithms selectors for the resource scheduling in hierarchical cloud computing | |
Jalalian et al. | A hierarchical multi-objective task scheduling approach for fast big data processing | |
Awad et al. | Multiobjective optimization | |
Kaur et al. | Virtual machine migration approach in cloud computing using genetic algorithm | |
Mirmohseni et al. | FPSO-GA: a fuzzy metaheuristic load balancing algorithm to reduce energy consumption in cloud networks | |
Saidi et al. | Resources allocation in cloud computing: a survey | |
Srikanth et al. | Effectiveness review of the machine learning algorithms for scheduling in cloud environment | |
Kowsigan et al. | An improved job scheduling in cloud environment using auto-associative-memory network |
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 |