CN115640117A - 基于资源分配的微服务实例部署方法及装置 - Google Patents

基于资源分配的微服务实例部署方法及装置 Download PDF

Info

Publication number
CN115640117A
CN115640117A CN202210280183.1A CN202210280183A CN115640117A CN 115640117 A CN115640117 A CN 115640117A CN 202210280183 A CN202210280183 A CN 202210280183A CN 115640117 A CN115640117 A CN 115640117A
Authority
CN
China
Prior art keywords
micro
ith
service instance
service
instances
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
Application number
CN202210280183.1A
Other languages
English (en)
Inventor
蒋昌俊
闫春钢
丁志军
张亚英
王松
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tongji University
Original Assignee
Tongji University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tongji University filed Critical Tongji University
Priority to CN202210280183.1A priority Critical patent/CN115640117A/zh
Publication of CN115640117A publication Critical patent/CN115640117A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供一种基于资源分配的微服务实例部署方法及装置,方法包括以下步骤:获取每个微服务实例的中央处理器的第一资源需求量、内存的第二资源需求量、每个微服务实例的用户请求到达率以及每个微服务实例的可用性数据;基于所述第一资源需求量和所述用户请求到达率,构建第一函数关系;基于所述第二资源需求量和所述用户请求到达率,构建第二函数关系;基于所述可用性数据和预设的微服务实例的数量条件,确定微服务实例的数量;基于所述微服务实例的数量、所述第一函数关系、所述第二函数关系,应用启发式算法,部署微服务实例;本发明的基于资源分配的微服务实例部署方法及装置能够节省成本的同时保证系统的吞吐量;满足微服务的灵活性需求。

Description

基于资源分配的微服务实例部署方法及装置
技术领域
本发明涉及微服务领域,特别是涉及基于资源分配的微服务实例部署方法及装置。
背景技术
随着云计算技术的不断发展,云原生受到越来越多的关注,云原生应用的开发需要有软 件架构的支持,目前的软件架构趋势是采用微服务的方式,将传统单体式应用分解为一组小 的、可独立部署的服务,并使用容器对每个模块进行封装。
现有技术中的微服务软件架构缺乏多方面的考虑,包括:微服务实例运行过程中资源的 动态变化对系统性能的影响、微服务实例数量和可用性之间的关联等;其中,资源的动态变 化对系统性能的影响是指由于每个微服务实例设定两种资源属性,中央处理器资源和内存资 源,对这两种资源分别设置两种配额,微服务实例需要的最少资源量和允许微服务实例使用 的最大资源量;目前的微服务实例部署仅考虑是否满足最少资源量,并没有考虑因最大资源 量的限制引起的资源竞争问题;其次,目前的微服务实例数量或是预设已知的,或是假设每 个微服务实例的资源量是固定值,通过构建形式化模型进行微服务实例数量的求解;都没有 考虑和微服务实例的可用性之间的关联。
因此,如何在进行微服务实例部署的同时考虑资源分配和微服务实例的可用性是一个亟 待解决的问题。
发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于提供一种基于资源分配的微服务实例 部署方法及装置,用于解决现有技术中无法在进行微服务实例部署的同时考虑资源分配和微 服务实例的可用性问题。
为实现上述目的及其他相关目的,本发明提供一种基于资源分配的微服务实例部署方法, 包括以下步骤:获取每个微服务实例的中央处理器的第一资源需求量、每个微服务实例的内 存的第二资源需求量、每个微服务实例的用户请求到达率以及每个微服务实例的可用性数据; 基于所述第一资源需求量和所述用户请求到达率,应用第一拟合函数,构建所述第一资源需 求量和所述用户请求达到率之间的第一函数关系;基于所述第二资源需求量和所述用户请求 到达率,应用第二拟合函数,构建所述第二资源需求量和所述用户请求到达率之间的第二函 数关系;基于所述可用性数据和预设的微服务实例的数量条件,确定微服务实例的数量;基 于所述微服务实例的数量、所述第一函数关系、所述第二函数关系,应用启发式算法,部署 微服务实例。
于本发明的一实施例中,所述启发式算法包含目标函数和约束条件;所述约束条件包括: 第一约束条件为同一节点上所有微服务实例所需的中央处理器的最少资源量不超过同一节点 的中央处理器资源量,表达式为:
Figure BDA0003556530540000021
其中,mi表示第i个微服务实例,C表示中央处理器,R表示微服务实例所需的最少资源 量;
Figure BDA0003556530540000022
表示第i个微服务实例所需的中央处理器的最少资源量;M表示微服务实例的总个 数;Ui,k表示第i个微服务实例是否使用第k个依赖库;V表示依赖库的总个数;
Figure BDA0003556530540000024
表示第j 个节点上的中央处理器资源量;hk,j表示第k个依赖库是否被安装在第j个节点上,如果是, hk,j为1,否则hk,j为0;zi,j表示第i个微服务实例是否被部署在第j个节点上,如果是,zi,j为1,否则,zi,j为0;N表示节点的总个数;
第二约束条件为同一节点上所有微服务实例所需的内存的最少资源量不超过同一节点的 内存资源量,表达式为:
Figure BDA0003556530540000023
其中,mi表示第i个微服务实例,Q表示内存,R表示微服务实例所需的最少资源量;
Figure BDA0003556530540000025
表示第i个微服务实例所需的内存的最少资源量;M表示所述微服务实例的总个数;Ui,k表示 第i个微服务实例是否使用第k个依赖库;V表示依赖库的总个数;
Figure BDA0003556530540000026
表示第j个节点上的 内存资源量;hk,j表示第k个依赖库是否被安装在第j个节点上;如果是,hk,j为1,否则hk,j为0;zi,j表示第i个微服务实例是否被部署在第j个节点上,如果是,zi,j为1,否则,zi,j为 0;N表示所述节点的总个数;
第三约束条件为同一节点上所有微服务实例的依赖库大小不超过同一节点的存储容量, 表达式为:
Figure BDA0003556530540000031
其中,vk表示第k个依赖库的大小;hk,j表示第k个依赖库是否被安装在第j个节点上;
Figure BDA0003556530540000034
表示第j个节点上的存储容量;V表示依赖库的总个数;N表示所述节点的总个数;
第四约束条件为在预设时间段内,同一节点上所有微服务实例所需的中央处理器的资源 量和所述同一节点的中央处理器资源量的差值,与所述中央处理器资源量的比值小于预设的 第一比值阈值,表达式为:
Figure BDA0003556530540000032
其中,
Figure BDA0003556530540000035
表示第t时刻第i个微服务实例在所述第i个微服务实例归属的队列上的 用户请求到达率与第i个微服务实例所需的中央处理器资源量的函数关系;zi,j表示第i个微 服务实例是否被部署在第j个节点上,如果是,zi,j为1,否则,zi,j为0;
Figure BDA0003556530540000036
表示第j个节点 上的中央处理器资源量;M表示所述微服务实例的总个数;N表示所述节点的总个数;T表示 预设时间段;δc表示所述第一比值阈值;
第五约束条件为在所述预设时间段内,同一节点上所有微服务实例所需的内存的资源量 和所述同一节点的内存资源量的差值,与所述内存资源量的比值小于预设的第二比值阈值, 表达式为:
Figure BDA0003556530540000033
其中,
Figure BDA0003556530540000037
表示第t时刻第i个微服务实例在所述第i个微服务实例归属的队列上的 用户请求到达率与第i个微服务实例所需的内存资源量的函数关系;zi,j表示第i个微服务实 例是否被部署在第j个节点上,如果是,zi,j为1,否则,zi,j为0;
Figure BDA0003556530540000038
表示第j个节点上的内 存资源量;M表示所述微服务实例的总个数;N表示所述节点的总个数;T表示所述预设时间 段;δM表示所述第二比值阈值;
第六约束条件为第i个微服务实例的完成时间,表达式为:
Figure BDA0003556530540000041
其中,Ti为第i个微服务实例的完成时间;parent(i)为第i个微服务实例的父节点的微 服务实例;Tp表示第p个微服务实例的数据传输时间;
Figure BDA0003556530540000042
为第i个微服务实例的数据传输 时间,如果zi,j×zp,j=1,则
Figure BDA0003556530540000043
否则
Figure BDA0003556530540000044
zi,j表示第i个微服务实例是否 被部署在第j个节点上,如果是,zi,j为1,否则,zi,j为0;zp,j表示第i个微服务实例的父节点的微服务实例是否被部署在第j个节点上,如果是,zp,j为1,否则,zp,j为0;Si,p表示 第i个微服务实例和第i个微服务实例的父节点的微服务实例之间的请求大小;Bj表示第j个节点的网络带宽;Wi表示第i个微服务的响应时间;
并且,所有微服务应用的完成时间小于等于微服务应用的截止时间,表达式为:
TM≤D
其中,TM表示所述所有微服务实例运行的完成时间,D表示所述微服务实例运行的截止 时间,M表示所述微服务实例的总个数。
于本发明的一实施例中,所述目标函数为总成本达到预设的成本阈值;所述总成本包括 资源使用成本和通信成本;所述总成本的表达式为:
C=Cres+Ccom
C表示所述总成本,Cres表示所述资源使用成本,Ccom表示所述通信成本;
其中,所述资源使用成本的表达式为:
Figure BDA0003556530540000045
其中,zi,j表示第i个微服务实例是否被部署在第j个节点上,如果是,zi,j为1,否则, zi,j为0;M表示所述微服务实例的总个数;Xi表示第i个微服务实例的数量;Gj表示第j个节点的租用单价;T表示微服务实例的运行时间;
所述通信成本的表达式为:
Figure BDA0003556530540000051
Figure BDA0003556530540000052
其中,Tran_size表示不同微服务实例之间的网络数据传输量,Fj表示第j个节点对应的 网络传输单价;T表示所述微服务实例的运行时间;M表示所述微服务实例的总个数;N表示所 述节点的总个数;
Figure BDA0003556530540000055
表示第i2个微服务实例的用户请求到达率;
Figure BDA0003556530540000056
表示第i1个微服务实例的 数量;
Figure BDA0003556530540000057
表示第i2个微服务实例的数量;
Figure BDA0003556530540000058
表示第i2个微服务实例是否被部署在第j个节点 上,如果是,
Figure BDA0003556530540000059
为1,否则,
Figure BDA00035565305400000510
为0;
Figure BDA00035565305400000511
表示第i1个微服务实例是否被部署在第j个节点上 ,如果是,
Figure BDA00035565305400000512
为1,否则,
Figure BDA00035565305400000513
为0;
Figure BDA00035565305400000514
表示第i1个微服务实例和第i2个微服务实例是否有 依赖关系,如果有,
Figure BDA00035565305400000515
为1,否则,
Figure BDA00035565305400000516
为0;
Figure BDA00035565305400000517
表示第i1个微服务实例和第i2个微服务实 例之间的请求大小。
于本发明的一实施例中,所述基于所述可用性数据和预设的微服务实例的数量条件, 确定微服务实例的数量,包括:基于所述可用性数据和预设的微服务实例不可用条件,得到 微服务实例不可用的概率小于预设的第一概率值;基于所述微服务实例不可用的概率小于所 述第一概率值,以及所述数量条件,确定所述微服务实例的数量;所述数量条件为所述微服 务实例的数量不超过节点总数。
于本发明的一实施例中,所述第一拟合函数为:
Figure BDA0003556530540000053
其中,
Figure BDA00035565305400000518
表示第i个微服务实例的用户请求到达率与第i个微服务实例所需的中央 处理器资源量的函数关系;λi表示第i个微服务实例的用户请求达到率;a表示第一斜率;b 表示第一拟合函数的截距;a、b均为常数;η表示预设的第i个微服务实例的用户请求达到 率的分段点;
所述第二拟合函数为:
Figure BDA0003556530540000054
其中,
Figure BDA0003556530540000064
表示第i个微服务实例的用户请求到达率与第i个微服务实例所需的内存 资源量的函数关系;λi表示第i个微服务实例的用户请求达到率;α表示第二斜率;β表示第 二拟合函数的截距;a、b均为常数。
对应地,本发明提供一种基于资源分配的微服务实例部署装置,包括:获取模块,用于 获取每个微服务实例的中央处理器的第一资源需求量、每个微服务实例的内存的第二资源需 求量、每个微服务实例的用户请求到达率以及每个微服务实例的可用性数据;第一处理模块, 用于基于所述第一资源需求量和所述用户请求到达率,应用第一拟合函数,构建所述第一资 源需求量和所述用户请求达到率之间的第一函数关系;基于所述第二资源需求量和所述用户 请求到达率,应用第二拟合函数,构建所述第二资源需求量和所述用户请求到达率之间的第 二函数关系;确定模块,用于基于所述可用性数据和预设的微服务实例的数量条件,确定微 服务实例的数量;第二处理模块,用于基于所述微服务实例的数量、所述第一函数关系、所 述第二函数关系,应用启发式算法,部署微服务实例。
于本发明的一实施例中,所述启发式算法包含目标函数和约束条件;所述约束条件包括: 第一约束条件为同一节点上所有微服务实例所需的中央处理器的最少资源量不超过同一节点 的中央处理器资源量,表达式为:
Figure BDA0003556530540000061
其中,mi表示第i个微服务实例,C表示中央处理器,R表示微服务实例所需的最少资源 量;
Figure BDA0003556530540000063
表示第i个微服务实例所需的中央处理器的最少资源量;M表示微服务实例的总个 数;Ui,k表示第i个微服务实例是否使用第k个依赖库;V表示依赖库的总个数;
Figure BDA0003556530540000062
表示第j 个节点上的中央处理器资源量;hk,j表示第k个依赖库是否被安装在第j个节点上,如果是, hk,j为1,否则hk,j为0;zi,j表示第i个微服务实例是否被部署在第j个节点上,如果是,zi,j为1,否则,zi,j为0;N表示节点的总个数;
第二约束条件为同一节点上所有微服务实例所需的内存的最少资源量不超过同一节点的 内存资源量,表达式为:
Figure BDA0003556530540000071
其中,mi表示第i个微服务实例,Q表示内存,R表示微服务实例所需的最少资源量;
Figure BDA0003556530540000078
表示第i个微服务实例所需的内存的最少资源量;M表示所述微服务实例的总个数;Ui,k表示 第i个微服务实例是否使用第k个依赖库;V表示依赖库的总个数;
Figure BDA0003556530540000077
表示第j个节点上的 内存资源量;hk,j表示第k个依赖库是否被安装在第j个节点上;如果是,hk,j为1,否则hk,j为0;zi,j表示第i个微服务实例是否被部署在第j个节点上,如果是,zi,j为1,否则,zi,j为 0;N表示所述节点的总个数;
第三约束条件为同一节点上所有微服务实例的依赖库大小不超过同一节点的存储容量, 表达式为:
Figure BDA0003556530540000072
其中,vk表示第k个依赖库的大小;hk,j表示第k个依赖库是否被安装在第j个节点上;
Figure BDA0003556530540000076
表示第j个节点上的存储容量;V表示依赖库的总个数;N表示所述节点的总个数;
第四约束条件为在预设时间段内,同一节点上所有微服务实例所需的中央处理器的资源 量和所述同一节点的中央处理器资源量的差值,与所述中央处理器资源量的比值小于预设的 第一比值阈值,表达式为:
Figure BDA0003556530540000073
其中,
Figure BDA0003556530540000075
表示第t时刻第i个微服务实例在所述第i个微服务实例归属的队列上的 用户请求到达率与第i个微服务实例所需的中央处理器资源量的函数关系;zi,j表示第i个微 服务实例是否被部署在第j个节点上,如果是,zi,j为1,否则,zi,j为0;
Figure BDA0003556530540000074
表示第j个节点 上的中央处理器资源量;M表示所述微服务实例的总个数;N表示所述节点的总个数;T表示 预设时间段;δc表示所述第一比值阈值;
第五约束条件为在所述预设时间段内,同一节点上所有微服务实例所需的内存的资源量 和所述同一节点的内存资源量的差值,与所述内存资源量的比值小于预设的第二比值阈值, 表达式为:
Figure BDA0003556530540000081
其中,
Figure BDA0003556530540000087
表示第t时刻第i个微服务实例在所述第i个微服务实例归属的队列上的 用户请求到达率与第i个微服务实例所需的内存资源量的函数关系;zi,j表示第i个微服务实 例是否被部署在第j个节点上,如果是,zi,j为1,否则,zi,j为0;
Figure BDA0003556530540000086
表示第j个节点上的内 存资源量;M表示所述微服务实例的总个数;N表示所述节点的总个数;T表示所述预设时间 段;δM表示所述第二比值阈值;
第六约束条件为第i个微服务实例的完成时间,表达式为:
Figure BDA0003556530540000082
其中,Ti为第i个微服务实例的完成时间;parent(i)为第i个微服务实例的父节点的微 服务实例;Tp表示第p个微服务实例的数据传输时间;
Figure BDA0003556530540000083
为第i个微服务实例的数据传输 时间,如果zi,j×zp,j=1,则
Figure BDA0003556530540000084
否则
Figure BDA0003556530540000085
zi,j表示第i个微服务实例是否 被部署在第j个节点上,如果是,zi,j为1,否则,zi,j为0;zp,j表示第i个微服务实例的父节点的微服务实例是否被部署在第j个节点上,如果是,zp,j为1,否则,zp,j为0;Si,p表示 第i个微服务实例和第i个微服务实例的父节点的微服务实例之间的请求大小;Bj表示第j个节点的网络带宽;Wi表示第i个微服务的响应时间;
并且,所有微服务应用的完成时间小于等于微服务应用的截止时间,表达式为:
TM≤D
其中,TM表示所述所有微服务实例运行的完成时间,D表示所述微服务实例运行的截止 时间,M表示所述微服务实例的总个数。
于本发明的一实施例中,所述目标函数为总成本达到预设的成本阈值;所述总成本包括 资源使用成本和通信成本;
所述总成本的表达式为:
C=Cres+Ccom
C表示所述总成本,Cres表示所述资源使用成本,Ccom表示所述通信成本;
其中,所述资源使用成本的表达式为:
Figure BDA0003556530540000091
其中,zi,j表示第i个微服务实例是否被部署在第j个节点上,如果是,zi,j为1,否则, zi,j为0;M表示所述微服务实例的总个数;Xi表示第i个微服务实例的数量;Gj表示第j个节点的租用单价;T表示微服务实例的运行时间;
所述通信成本的表达式为:
Figure BDA0003556530540000092
Figure BDA0003556530540000093
其中,Tran_size表示不同微服务实例之间的网络数据传输量,Fj表示第j个节点对应的 网络传输单价;T表示所述微服务实例的运行时间;M表示所述微服务实例的总个数;N表示 所述节点的总个数;
Figure BDA00035565305400000915
表示第i2个微服务实例的用户请求到达率;
Figure BDA00035565305400000916
表示第i1个微服务实例 的数量;
Figure BDA0003556530540000097
表示第i2个微服务实例的数量;
Figure BDA00035565305400000914
表示第i2个微服务实例是否被部署在第j个节 点上,如果是,
Figure BDA0003556530540000098
为1,否则,
Figure BDA0003556530540000099
为0;
Figure BDA00035565305400000910
表示第i1个微服务实例是否被部署在第j个节 点上,如果是,
Figure BDA00035565305400000913
为1,否则,
Figure BDA00035565305400000912
为0;
Figure BDA00035565305400000911
表示第i1个微服务实例和第i2个微服务实例是 否有依赖关系,如果有,
Figure BDA0003556530540000094
为1,否则,
Figure BDA0003556530540000095
为0;
Figure BDA0003556530540000096
表示第i1个微服务实例和第i2个微 服务实例之间的请求大小。
本发明提供一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述的 基于资源分配的微服务实例部署方法。
本发明提供一种微服务实例部署系统,包括存储器,用于存储计算机程序;处理器, 用于运行所述计算机程序以实现上述的基于资源分配的微服务实例部署方法。
如上所述,本发明的基于资源分配的微服务实例部署方法及装置,具有以下有益效果:
(1)能够考虑到微服务实例运行过程中资源的动态变化对系统性能的影响,节省成本的 同时保证了系统的吞吐量。
(2)能够将微服务实例数量的确定和微服务实例的可用性关联起来,适应频繁更新的微 服务实例应用,满足微服务的灵活性需求。
附图说明
图1显示为本发明的基于资源分配的微服务实例部署方法于一实施例中的流程图。
图2显示为本发明的基于资源分配的微服务实例部署方法于一实施例中的微服务实例 应用示意图。
图3显示为本发明的基于资源分配的微服务实例部署方法于一实施例中的节点网络结 构示意图。
图4a显示为本发明的基于资源分配的微服务实例部署方法于一实施例中的微服务实 例部署前图。
图4b显示为本发明的基于资源分配的微服务实例部署方法于一实施例中的微服务实 例部署后图。
图5显示为本发明的基于资源分配的微服务实例部署方法于一实施例中的微服务实例 排队系统图。
图6显示为本发明的基于资源分配的微服务实例部署装置于一实施例中的结构示意 图。
图7显示为本发明的基于资源分配的微服务实例部署装置于一实施例中的微服务实例 部署系统。
元件标号说明
61 获取模块
62 第一处理模块
63 确定模块
63 第二处理模块
71 处理器
72 存储器
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露 的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加 以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精 神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征 可以相互组合。
需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图 式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实 际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复 杂。
本发明的基于资源分配的微服务实例部署方法及装置,能够考虑到微服务实例运行过程 中资源的动态变化对系统性能的影响,节省成本的同时保证了系统的吞吐量;能够将微服务 实例数量的确定和微服务实例的可用性关联起来,适应频繁更新的微服务实例应用,满足微 服务的灵活性需求。
如图1所示,于本实施例中,本发明的基于资源分配的微服务实例部署方法包括以下 步骤:
步骤S1、获取每个微服务实例的中央处理器的第一资源需求量、每个微服务实例的内存 的第二资源需求量、每个微服务实例的用户请求到达率以及每个微服务实例的可用性数据。
步骤S2、基于所述第一资源需求量和所述用户请求到达率,应用第一拟合函数,构建所 述第一资源需求量和所述用户请求达到率之间的第一函数关系;基于所述第二资源需求量和 所述用户请求到达率,应用第二拟合函数,构建所述第二资源需求量和所述用户请求到达率 之间的第二函数关系。
具体地,所述第一拟合函数为:
Figure BDA0003556530540000111
其中,
Figure BDA0003556530540000112
表示第i个微服务实例的用户请求到达率与第i个微服务实例所需的中央 处理器资源量的函数关系;λi表示第i个微服务实例的用户请求达到率;a表示第一斜率;b 表示第一拟合函数的截距;a、b均为常数;η表示预设的第i个微服务实例的用户请求达到 率的分段点;
所述第二拟合函数为:
Figure BDA0003556530540000121
其中,
Figure BDA0003556530540000123
表示第i个微服务实例的用户请求到达率与第i个微服务实例所需的内存资 源量的函数关系;λi表示第i个微服务实例的用户请求达到率;α表示第二斜率;β表示第二拟 合函数的截距;a、b均为常数。
步骤S3、基于所述可用性数据和预设的微服务实例的数量条件,确定微服务实例的数量。
具体地,基于所述可用性数据和预设的微服务实例不可用条件,得到微服务实例不可用 的概率小于预设的第一概率值;基于所述微服务实例不可用的概率小于所述第一概率值,以 及所述数量条件,确定所述微服务实例的数量;所述数量条件为所述微服务实例的数量不超 过节点总数。
举例来说,假设第i个微服务实例mi的可用性数据为可用性概率ρi;微服务实例不可用 条件为微服务实例不可用的概率小于第一概率值α1,得到的表达式为:P{Y=Xi}<α1;其中, Xi为第i个微服务实例的数量,P表示二项分布的概率函数,Y表示微服务实例不可用的数量。 其次,微服务实例的数量不超过节点总数的表达式为1≤Xi≤N;基于这两个表达式的约束条 件,确定微服务实例的数量为:
Xi=min{x|P{Y=Xi}<α1,1≤Xi≤N}
步骤S4、基于所述微服务实例的数量、所述第一函数关系、所述第二函数关系,应用启 发式算法,部署微服务实例。
具体地,所述启发式算法包含目标函数和约束条件;所述约束条件包括:第一约束条件 为同一节点上所有微服务实例所需的中央处理器的最少资源量不超过同一节点的中央处理器 资源量,表达式为:
Figure BDA0003556530540000122
其中,mi表示第i个微服务实例,C表示中央处理器,R表示微服务实例所需的最少资源 量;
Figure BDA0003556530540000136
表示第i个微服务实例所需的中央处理器的最少资源量;M表示微服务实例的总个 数;Ui,k表示第i个微服务实例是否使用第k个依赖库;V表示依赖库的总个数;
Figure BDA0003556530540000137
表示第j 个节点上的中央处理器资源量;hk,j表示第k个依赖库是否被安装在第j个节点上,如果是, hk,j为1,否则hk,j为0;zi,j表示第i个微服务实例是否被部署在第j个节点上,如果是,zi,j为1,否则,zi,j为0;N表示节点的总个数;
第二约束条件为同一节点上所有微服务实例所需的内存的最少资源量不超过同一节点的 内存资源量,表达式为:
Figure BDA0003556530540000131
其中,mi表示第i个微服务实例,Q表示内存,R表示微服务实例所需的最少资源量;
Figure BDA0003556530540000135
表示第i个微服务实例所需的内存的最少资源量;M表示所述微服务实例的总个数;Ui,k表示 第i个微服务实例是否使用第k个依赖库;V表示依赖库的总个数;
Figure BDA0003556530540000134
表示第j个节点上的 内存资源量;hk,j表示第k个依赖库是否被安装在第j个节点上;如果是,hk,j为1,否则hk,j为0;zi,j表示第i个微服务实例是否被部署在第j个节点上,如果是,zi,j为1,否则,zi,j为 0;N表示所述节点的总个数;
第三约束条件为同一节点上所有微服务实例的依赖库大小不超过同一节点的存储容量, 表达式为:
Figure BDA0003556530540000132
其中,vk表示第k个依赖库的大小;hk,j表示第k个依赖库是否被安装在第j个节点上;
Figure BDA0003556530540000133
表示第j个节点上的存储容量;V表示依赖库的总个数;N表示所述节点的总个数;
第四约束条件为在预设时间段内,同一节点上所有微服务实例所需的中央处理器的资源 量和所述同一节点的中央处理器资源量的差值,与所述中央处理器资源量的比值小于预设的 第一比值阈值,表达式为:
Figure BDA0003556530540000141
其中,
Figure BDA0003556530540000148
表示第t时刻第i个微服务实例在所述第i个微服务实例归属的队列上的 用户请求到达率与第i个微服务实例所需的中央处理器资源量的函数关系;zi,j表示第i个微 服务实例是否被部署在第j个节点上,如果是,zi,j为1,否则,zi,j为0;
Figure BDA0003556530540000147
表示第j个节点 上的中央处理器资源量;M表示所述微服务实例的总个数;N表示所述节点的总个数;T表示 预设时间段;δc表示所述第一比值阈值;
第五约束条件为在所述预设时间段内,同一节点上所有微服务实例所需的内存的资源量 和所述同一节点的内存资源量的差值,与所述内存资源量的比值小于预设的第二比值阈值, 表达式为:
Figure BDA0003556530540000142
其中,
Figure BDA0003556530540000146
表示第t时刻第i个微服务实例在所述第i个微服务实例归属的队列上的 用户请求到达率与第i个微服务实例所需的内存资源量的函数关系;zi,j表示第i个微服务实 例是否被部署在第j个节点上,如果是,zi,j为1,否则,zi,j为0;
Figure BDA0003556530540000145
表示第j个节点上的内 存资源量;M表示所述微服务实例的总个数;N表示所述节点的总个数;T表示所述预设时间 段;δM表示所述第二比值阈值;
第六约束条件为第i个微服务实例的完成时间,表达式为:
Figure BDA0003556530540000143
其中,Ti为第i个微服务实例的完成时间;parent(i)为第i个微服务实例的父节点的微 服务实例;Tp表示第p个微服务实例的数据传输时间;
Figure BDA0003556530540000144
为第i个微服务实例的数据传输 时间,如果zi,j×zp,j=1,则
Figure BDA0003556530540000151
否则
Figure BDA0003556530540000152
zi,j表示第i个微服务实例是否 被部署在第j个节点上,如果是,zi,j为1,否则,zi,j为0;zp,j表示第i个微服务实例的父节点的微服务实例是否被部署在第j个节点上,如果是,zp,j为1,否则,zp,j为0;Si,p表示 第i个微服务实例和第i个微服务实例的父节点的微服务实例之间的请求大小;Bj表示第j个节点的网络带宽;Wi表示第i个微服务的响应时间;
并且,所有微服务应用的完成时间小于等于微服务应用的截止时间,表达式为:
TM≤D
其中,TM表示所述所有微服务实例运行的完成时间,D表示所述微服务实例运行的截止 时间,M表示所述微服务实例的总个数。
进一步具体地,所述目标函数为总成本达到预设的成本阈值;所述总成本包括资源使用 成本和通信成本;所述总成本的表达式为:
C=Cres+Ccom
C表示所述总成本,Cres表示所述资源使用成本,Ccom表示所述通信成本;
其中,所述资源使用成本的表达式为:
Figure BDA0003556530540000153
其中,zi,j表示第i个微服务实例是否被部署在第j个节点上,如果是,zi,j为1,否则, zi,j为0;M表示所述微服务实例的总个数;Xi表示第i个微服务实例的数量;Gj表示第j个节点的租用单价;T表示微服务实例的运行时间;
所述通信成本的表达式为:
Figure BDA0003556530540000154
Figure BDA0003556530540000155
其中,Tran_size表示不同微服务实例之间的网络数据传输量,Fj表示第j个节点对应的 网络传输单价;T表示所述微服务实例的运行时间;M表示所述微服务实例的总个数;N表示 所述节点的总个数;
Figure BDA0003556530540000156
表示第i2个微服务实例的用户请求到达率;
Figure BDA0003556530540000157
表示第i1个微服务实例 的数量;
Figure BDA0003556530540000161
表示第i2个微服务实例的数量;
Figure BDA0003556530540000162
表示第i2个微服务实例是否被部署在第j个节 点上,如果是,
Figure BDA0003556530540000163
为1,否则,
Figure BDA0003556530540000164
为0;
Figure BDA0003556530540000165
表示第i1个微服务实例是否被部署在第j个节 点上,如果是,
Figure BDA0003556530540000166
为1,否则,
Figure BDA0003556530540000167
为0;
Figure BDA0003556530540000168
表示第i1个微服务实例和第i2个微服务实例是 否有依赖关系,如果有,
Figure BDA0003556530540000169
为1,否则,
Figure BDA00035565305400001610
为0;
Figure BDA00035565305400001611
表示第i1个微服务实例和第i2个微 服务实例之间的请求大小。
举例来说,如图2所示,于本实施例中,本发明的微服务实例应用示意图,图中包含8 个微服务的应用,每个节点表示一个微服务,每个微服务都具有对应的实例,每个实例预设 有两种资源属性:中央处理器资源量和内存资源量,每种资源属性设置2种配额:微服务实 例需要的最少资源量和允许微服务实例使用的最大资源量,相同类型的微服务实例具有完全 相同的资源配置,具有依赖关系的微服务实例之间会进行数据传输。
如图3所示,于本实施例中,本发明的节点网络结构示意图,图中包含3个物理节点, 每个节点表示为物理机或虚拟机,具有固定的资源量,不同节点之间可相互连通,由于不同 节点所在的物理环境不同,因此不同的节点具有不同的网络带宽,不同的网络带宽对应的传 输速率不同,进而不同的节点的通信成本不同。
如图4a所示,于本实施例中,本发明的微服务实例部署前图,将图2中的8个微服务部 署至图3中的3个物理节点上,比如,第一节点n1的中央处理器资源量为2000M,内存资源量为1000M,第一节点n1上的微服务实例所需的中央处理器的最大资源量分别为m1的600M,m2的600M,m4的600M以及m7的600M,共计2400M,与第一节点n1的中央处理器资源量2000M 相比,超出400M;第一节点n1上的微服务实例所需的中央处理器的最少资源量分别为m1的400M,m2的400M,m4的500M以及m7的500M,共计1800M,与第一节点n1的中央处理器资源 量2000M相比,并未超出。可以看出,图4a中的部署考虑到了同一节点上所有微服务实例所 需的中央处理器的最少资源量不超过同一节点的中央处理器资源量,和同一节点上所有微服务实例所需的内存的最少资源量不超过同一节点的内存资源量,但这种部署方案并没有考虑 因中央处理器的最大资源量或内存的最大资源量的限制引起的资源竞争问题。
如图4b所示,于本实施例中,本发明的微服务实例部署后图,将图2中的8个微服务部 署至图3中的3个物理节点上,比如,第一节点n1的中央处理器资源量为2000M,内存资源量为1000M,第一节点n1上的微服务实例所需的中央处理器的最大资源量分别为m1的600M,m6的500M,m3的500M以及m4的600M,共计2200M,与第一节点n1的中央处理器资源量2000M 相比,超出200M;预设的第一比值阈值为20%,计算200除以2000=10%,即10%小于第一比值阈值,满足约束条件;第一节点n1上的微服务实例所需的中央处理器的最少资源量分别为m1的400M,m6的400M,m3的400M以及m4的500M,共计1700M,与第一节点n1的中央处理器 资源量2000M相比,并未超出。可以看出,图4b中的部署充分利用了各个微服务实例间的最 大资源量和最少资源量的差值进行微服务实例部署,并且考虑了同一节点上可接受的资源超出量,从而保证这种部署方案即能够节省成本又能够保证系统吞吐量。
进一步具体地,微服务实例是通过排队系统的形式运行的,在微服务实例运行过程中, 容器编排引擎通过轮询算法将对微服务的不同请求分发至对应的微服务实例中,由于相同功 能的微服务实例的处理能力相同,因此,所有的微服务实例能够形成排队系统,。如图5所示, 于本实施例中,本发明的微服务实例排队系统图,微服务实例的数量为x,平均处理速率为μi, 对应的排队系统如图中的x个M/M/1的形式,由排队模型可得出如下指标:
平均队长为:
Figure BDA0003556530540000171
平均逗留时间为:
Figure BDA0003556530540000172
其中,
Figure BDA0003556530540000173
表示每个子队列的用户请求到达率,为λi第i个微服务的用户请求达到率, Ls为平均队长;Ws为平均逗留时间。
进一步具体地,应用启发式算法中的遗传算法确定微服务实例的部署。遗传算法包括首 先生成初始种群,再进一步进行后续的选择、交叉、变异等操作,其中,生成初始种群的算 法中包括判断第i个微服务实例所需的依赖库数量是否全部被安装在第j个节点上;判断目前 已经部署的第i个微服务实例的数量是否小于确定出的微服务实例的数量;如果第i个微服务 实例没有部署在第j个节点上,则将第i个微服务实例部署在第j个节点上;以及判断所产生的 染色体是否满足所有的约束条件,如果满足,则保留该染色体,如果不满足则继续生成新的 染色体。
种群是由多条染色体组成,每条染色体是由多个基因构成,一条染色体中的基因数量由 节点数量决定,一条染色体是所有微服务实例部署方案中的一种,初始种群即生成多条染色 体,之后再进行适应度函数的计算,以得到每个染色体的适应度值,具有较大适应度值的染 色体表示该部署方案具有较小的部署成本。由于染色体会随着一系列的操作而被不断改变, 因此,该染色体的适应度值也会发生变化,在计算每个染色体的适应度值时,设定了界限函 数和惩罚函数。界限函数是用于确保适应度值非负,惩罚函数是当该染色体不满足约束条件 时,降低染色体的适应度值,进而降低该染色体下一次迭代中被选择的概率。
进一步具体地,为了选择出下一代的种群个体,在遗传算法中使用轮盘赌的选择策略。 该策略以染色体的适应度函数所占的比例作为被选择的依据。
如图6所示,于本实施例中,本发明的基于资源分配的微服务实例部署装置包括:
获取模块61,用于获取每个微服务实例的中央处理器的第一资源需求量、每个微服务实 例的内存的第二资源需求量、每个微服务实例的用户请求到达率以及每个微服务实例的可用 性数据;
第一处理模块62,用于基于所述第一资源需求量和所述用户请求到达率,应用第一拟合 函数,构建所述第一资源需求量和所述用户请求达到率之间的第一函数关系;基于所述第二 资源需求量和所述用户请求到达率,应用第二拟合函数,构建所述第二资源需求量和所述用 户请求到达率之间的第二函数关系;
确定模块63,用于基于所述可用性数据和预设的微服务实例的数量条件,确定微服务实 例的数量;
第二处理模块64,用于基于所述微服务实例的数量、所述第一函数关系、所述第二函数 关系,应用启发式算法,部署微服务实例。
本实施例的基于资源分配的微服务实例部署装置具体实现的技术特征与实施例1中基于 资源分配的微服务实例部署方法中的各步骤的原理基本相同,方法和装置之间可以通用的技 术内容不作重复赘述。
本发明的存储介质上存储有计算机程序,该程序被处理器执行时实现上述的基于循环一 致性的图像风格迁移方法。
如图7所示,于本实施例中,本发明的微服务实例部署系统包括:处理器71及存储器72。
所述存储器72用于存储计算机程序。
所述存储器72包括:ROM、RAM、磁碟、U盘、存储卡或者光盘等各种可以存储程序代码 的介质。
所述处理器71与所述存储器72相连,用于执行所述存储器72存储的计算机程序,以使 所述微服务实例部署系统执行上述的基于资源分配的微服务实例部署方法。
优选地,上述的处理器71可以是通用处理器,包括中央处理器(CentralProcessing Unit,简称CPU)、网络处理器(Network Processor,简称NP)、图形处理器(Graphic Processing Unit,GPU)等,其中,在实际应用中,主要采用的通用处理器是图形处理器;还可以是数 字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array, 简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
综上所述,本发明的基于资源分配的微服务实例部署方法及装置,能够考虑到微服务实 例运行过程中资源的动态变化对系统性能的影响,节省成本的同时保证了系统的吞吐量;能 够将微服务实例数量的确定和微服务实例的可用性关联起来,适应频繁更新的微服务实例应 用,满足微服务的灵活性需求。所以,本发明有效克服了现有技术中的种种缺点而具高度产 业利用价值。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技 术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡 所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等 效修饰或改变,仍应由本发明的权利要求所涵盖。

Claims (10)

1.一种基于资源分配的微服务实例部署方法,其特征在于,所述微服务实例部署方法包括以下步骤:
获取每个微服务实例的中央处理器的第一资源需求量、每个微服务实例的内存的第二资源需求量、每个微服务实例的用户请求到达率以及每个微服务实例的可用性数据;
基于所述第一资源需求量和所述用户请求到达率,应用第一拟合函数,构建所述第一资源需求量和所述用户请求达到率之间的第一函数关系;基于所述第二资源需求量和所述用户请求到达率,应用第二拟合函数,构建所述第二资源需求量和所述用户请求到达率之间的第二函数关系;
基于所述可用性数据和预设的微服务实例的数量条件,确定微服务实例的数量;
基于所述微服务实例的数量、所述第一函数关系、所述第二函数关系,应用启发式算法,部署微服务实例。
2.根据权利要求1所述的方法,其特征在于,所述启发式算法包含目标函数和约束条件;
所述约束条件包括:
第一约束条件为同一节点上所有微服务实例所需的中央处理器的最少资源量不超过同一节点的中央处理器资源量,表达式为:
Figure FDA0003556530530000011
其中,mi表示第i个微服务实例,C表示中央处理器,R表示微服务实例所需的最少资源量;
Figure FDA0003556530530000012
表示第i个微服务实例所需的中央处理器的最少资源量;M表示微服务实例的总个数;Ui,k表示第i个微服务实例是否使用第k个依赖库;V表示依赖库的总个数;
Figure FDA0003556530530000013
表示第j个节点上的中央处理器资源量;hk,j表示第k个依赖库是否被安装在第j个节点上,如果是,hk,j为1,否则hk,j为0;zi,j表示第i个微服务实例是否被部署在第j个节点上,如果是,zi,j为1,否则,zi,j为0;N表示节点的总个数;
第二约束条件为同一节点上所有微服务实例所需的内存的最少资源量不超过同一节点的内存资源量,表达式为:
Figure FDA0003556530530000021
其中,mi表示第i个微服务实例,Q表示内存,R表示微服务实例所需的最少资源量;
Figure FDA0003556530530000022
表示第i个微服务实例所需的内存的最少资源量;M表示所述微服务实例的总个数;Ui,k表示第i个微服务实例是否使用第k个依赖库;V表示依赖库的总个数;
Figure FDA0003556530530000023
表示第j个节点上的内存资源量;hk,j表示第k个依赖库是否被安装在第j个节点上;如果是,hk,j为1,否则hk,j为0;zi,j表示第i个微服务实例是否被部署在第j个节点上,如果是,zi,j为1,否则,zi,j为0;N表示所述节点的总个数;
第三约束条件为同一节点上所有微服务实例的依赖库大小不超过同一节点的存储容量,表达式为:
Figure FDA0003556530530000024
其中,vk表示第k个依赖库的大小;hk,j表示第k个依赖库是否被安装在第j个节点上;
Figure FDA0003556530530000025
表示第j个节点上的存储容量;V表示依赖库的总个数;N表示所述节点的总个数;
第四约束条件为在预设时间段内,同一节点上所有微服务实例所需的中央处理器的资源量和所述同一节点的中央处理器资源量的差值,与所述中央处理器资源量的比值小于预设的第一比值阈值,表达式为:
Figure FDA0003556530530000026
其中,
Figure FDA0003556530530000027
表示第t时刻第i个微服务实例在所述第i个微服务实例归属的队列上的用户请求到达率与第i个微服务实例所需的中央处理器资源量的函数关系;zi,j表示第i个微服务实例是否被部署在第j个节点上,如果是,zi,j为1,否则,zi,j为0;
Figure FDA0003556530530000028
表示第j个节点上的中央处理器资源量;M表示所述微服务实例的总个数;N表示所述节点的总个数;T表示预设时间段;δc表示所述第一比值阈值;
第五约束条件为在所述预设时间段内,同一节点上所有微服务实例所需的内存的资源量和所述同一节点的内存资源量的差值,与所述内存资源量的比值小于预设的第二比值阈值,表达式为:
Figure FDA0003556530530000031
其中,
Figure FDA0003556530530000032
表示第t时刻第i个微服务实例在所述第i个微服务实例归属的队列上的用户请求到达率与第i个微服务实例所需的内存资源量的函数关系;zi,j表示第i个微服务实例是否被部署在第j个节点上,如果是,zi,j为1,否则,zi,j为0;
Figure FDA0003556530530000033
表示第j个节点上的内存资源量;M表示所述微服务实例的总个数;N表示所述节点的总个数;T表示所述预设时间段;δM表示所述第二比值阈值;
第六约束条件为第i个微服务实例的完成时间,表达式为:
Figure FDA0003556530530000034
其中,Ti为第i个微服务实例的完成时间;parent(i)为第i个微服务实例的父节点的微服务实例;Tp表示第p个微服务实例的数据传输时间;
Figure FDA0003556530530000035
为第i个微服务实例的数据传输时间,如果zi,j×zp,j=1,则
Figure FDA0003556530530000036
否则
Figure FDA0003556530530000037
zi,j表示第i个微服务实例是否被部署在第j个节点上,如果是,zi,j为1,否则,zi,j为0;zp,j表示第i个微服务实例的父节点的微服务实例是否被部署在第j个节点上,如果是,zp,j为1,否则,zp,j为0;Si,p表示第i个微服务实例和第i个微服务实例的父节点的微服务实例之间的请求大小;Bj表示第j个节点的网络带宽;Wi表示第i个微服务的响应时间;
并且,所有微服务应用的完成时间小于等于微服务应用的截止时间,表达式为:
TM≤D
其中,TM表示所述所有微服务实例运行的完成时间,D表示所述微服务实例运行的截止时间,M表示所述微服务实例的总个数。
3.根据权利要求2所述的方法,其特征在于,所述目标函数为总成本达到预设的成本阈值;所述总成本包括资源使用成本和通信成本;
所述总成本的表达式为:
C=Cres+Ccom
C表示所述总成本,Cres表示所述资源使用成本,Ccom表示所述通信成本;
其中,所述资源使用成本的表达式为:
Figure FDA0003556530530000041
其中,zi,j表示第i个微服务实例是否被部署在第j个节点上,如果是,zi,j为1,否则,zi,j为0;M表示所述微服务实例的总个数;Xi表示第i个微服务实例的数量;Gj表示第j个节点的租用单价;T表示微服务实例的运行时间;
所述通信成本的表达式为:
Figure FDA0003556530530000042
Figure FDA0003556530530000043
其中,Tran_size表示不同微服务实例之间的网络数据传输量,Fj表示第j个节点对应的网络传输单价;T表示所述微服务实例的运行时间;M表示所述微服务实例的总个数;N表示所述节点的总个数;
Figure FDA0003556530530000044
表示第i2个微服务实例的用户请求到达率;
Figure FDA0003556530530000045
表示第i1个微服务实例的数量;
Figure FDA0003556530530000046
表示第i2个微服务实例的数量;
Figure FDA0003556530530000047
表示第i2个微服务实例是否被部署在第j个节点上,如果是,
Figure FDA0003556530530000048
为1,否则,
Figure FDA0003556530530000049
为0;
Figure FDA00035565305300000410
表示第i1个微服务实例是否被部署在第j个节点上,如果是,
Figure FDA00035565305300000411
为1,否则,
Figure FDA00035565305300000412
为0;
Figure FDA00035565305300000413
表示第i1个微服务实例和第i2个微服务实例是否有依赖关系,如果有,
Figure FDA00035565305300000414
为1,否则,
Figure FDA00035565305300000415
为0;
Figure FDA00035565305300000416
表示第i1个微服务实例和第i2个微服务实例之间的请求大小。
4.根据权利要求1所述的方法,其特征在于,所述基于所述可用性数据和预设的微服务实例的数量条件,确定微服务实例的数量,包括:
基于所述可用性数据和预设的微服务实例不可用条件,得到微服务实例不可用的概率小于预设的第一概率值;
基于所述微服务实例不可用的概率小于所述第一概率值,以及所述数量条件,确定所述微服务实例的数量;所述数量条件为所述微服务实例的数量不超过节点总数。
5.根据权利要求1所述的方法,其特征在于,所述第一拟合函数为:
Figure FDA0003556530530000051
其中,
Figure FDA0003556530530000052
表示第i个微服务实例的用户请求到达率与第i个微服务实例所需的中央处理器资源量的函数关系;λi表示第i个微服务实例的用户请求达到率;a表示第一斜率;b表示第一拟合函数的截距;a、b均为常数;η表示预设的第i个微服务实例的用户请求达到率的分段点;
所述第二拟合函数为:
Figure FDA0003556530530000053
其中,
Figure FDA0003556530530000054
表示第i个微服务实例的用户请求到达率与第i个微服务实例所需的内存资源量的函数关系;λi表示第i个微服务实例的用户请求达到率;α表示第二斜率;β表示第二拟合函数的截距;a、b均为常数。
6.一种基于资源分配的微服务实例部署装置,其特征在于,包括:
获取模块,用于获取每个微服务实例的中央处理器的第一资源需求量、每个微服务实例的内存的第二资源需求量、每个微服务实例的用户请求到达率以及每个微服务实例的可用性数据;
第一处理模块,用于基于所述第一资源需求量和所述用户请求到达率,应用第一拟合函数,构建所述第一资源需求量和所述用户请求达到率之间的第一函数关系;基于所述第二资源需求量和所述用户请求到达率,应用第二拟合函数,构建所述第二资源需求量和所述用户请求到达率之间的第二函数关系;
确定模块,用于基于所述可用性数据和预设的微服务实例的数量条件,确定微服务实例的数量;
第二处理模块,用于基于所述微服务实例的数量、所述第一函数关系、所述第二函数关系,应用启发式算法,部署微服务实例。
7.根据权利要求6所述的装置,其特征在于,所述启发式算法包含目标函数和约束条件;
所述约束条件包括:
第一约束条件为同一节点上所有微服务实例所需的中央处理器的最少资源量不超过同一节点的中央处理器资源量,表达式为:
Figure FDA0003556530530000061
其中,mi表示第i个微服务实例,C表示中央处理器,R表示微服务实例所需的最少资源量;
Figure FDA0003556530530000062
表示第i个微服务实例所需的中央处理器的最少资源量;M表示微服务实例的总个数;Ui,k表示第i个微服务实例是否使用第k个依赖库;V表示依赖库的总个数;
Figure FDA0003556530530000063
表示第j个节点上的中央处理器资源量;hk,j表示第k个依赖库是否被安装在第j个节点上,如果是,hk,j为1,否则hk,j为0;zi,j表示第i个微服务实例是否被部署在第j个节点上,如果是,zi,j为1,否则,zi,j为0;N表示节点的总个数;
第二约束条件为同一节点上所有微服务实例所需的内存的最少资源量不超过同一节点的内存资源量,表达式为:
Figure FDA0003556530530000064
其中,mi表示第i个微服务实例,Q表示内存,R表示微服务实例所需的最少资源量;
Figure FDA0003556530530000065
表示第i个微服务实例所需的内存的最少资源量;M表示所述微服务实例的总个数;Ui,k表示第i个微服务实例是否使用第k个依赖库;V表示依赖库的总个数;
Figure FDA0003556530530000066
表示第j个节点上的内存资源量;hk,j表示第k个依赖库是否被安装在第j个节点上;如果是,hk,j为1,否则hk,j为0;zi,j表示第i个微服务实例是否被部署在第j个节点上,如果是,zi,j为1,否则,zi,j为0;N表示所述节点的总个数;
第三约束条件为同一节点上所有微服务实例的依赖库大小不超过同一节点的存储容量,表达式为:
Figure FDA0003556530530000071
其中,vk表示第k个依赖库的大小;hk,j表示第k个依赖库是否被安装在第j个节点上;
Figure FDA0003556530530000072
表示第j个节点上的存储容量;V表示依赖库的总个数;N表示所述节点的总个数;
第四约束条件为在预设时间段内,同一节点上所有微服务实例所需的中央处理器的资源量和所述同一节点的中央处理器资源量的差值,与所述中央处理器资源量的比值小于预设的第一比值阈值,表达式为:
Figure FDA0003556530530000073
其中,
Figure FDA0003556530530000074
表示第t时刻第i个微服务实例在所述第i个微服务实例归属的队列上的用户请求到达率与第i个微服务实例所需的中央处理器资源量的函数关系;zi,j表示第i个微服务实例是否被部署在第j个节点上,如果是,zi,j为1,否则,zi,j为0;
Figure FDA0003556530530000075
表示第j个节点上的中央处理器资源量;M表示所述微服务实例的总个数;N表示所述节点的总个数;T表示预设时间段;δc表示所述第一比值阈值;
第五约束条件为在所述预设时间段内,同一节点上所有微服务实例所需的内存的资源量和所述同一节点的内存资源量的差值,与所述内存资源量的比值小于预设的第二比值阈值,表达式为:
Figure FDA0003556530530000076
其中,
Figure FDA0003556530530000077
表示第t时刻第i个微服务实例在所述第i个微服务实例归属的队列上的用户请求到达率与第i个微服务实例所需的内存资源量的函数关系;zi,j表示第i个微服务实例是否被部署在第j个节点上,如果是,zi,j为1,否则,zi,j为0;
Figure FDA0003556530530000078
表示第j个节点上的内存资源量;M表示所述微服务实例的总个数;N表示所述节点的总个数;T表示所述预设时间段;δM表示所述第二比值阈值;
第六约束条件为第i个微服务实例的完成时间,表达式为:
Figure FDA0003556530530000081
其中,Ti为第i个微服务实例的完成时间;parent(i)为第i个微服务实例的父节点的微服务实例;Tp表示第p个微服务实例的数据传输时间;
Figure FDA0003556530530000082
为第i个微服务实例的数据传输时间,如果zi,j×zp,j=1,则
Figure FDA0003556530530000083
否则
Figure FDA0003556530530000084
zi,j表示第i个微服务实例是否被部署在第j个节点上,如果是,zi,j为1,否则,zi,j为0;zp,j表示第i个微服务实例的父节点的微服务实例是否被部署在第j个节点上,如果是,zp,j为1,否则,zp,j为0;Si,p表示第i个微服务实例和第i个微服务实例的父节点的微服务实例之间的请求大小;Bj表示第j个节点的网络带宽;Wi表示第i个微服务的响应时间;
并且,所有微服务应用的完成时间小于等于微服务应用的截止时间,表达式为:
TM≤D
其中,TM表示所述所有微服务实例运行的完成时间,D表示所述微服务实例运行的截止时间,M表示所述微服务实例的总个数。
8.根据权利要求7所述的装置,其特征在于,所述目标函数为总成本达到预设的成本阈值;所述总成本包括资源使用成本和通信成本;
所述总成本的表达式为:
C=Cres+Ccom
C表示所述总成本,Cres表示所述资源使用成本,Ccom表示所述通信成本;
其中,所述资源使用成本的表达式为:
Figure FDA0003556530530000085
其中,zi,j表示第i个微服务实例是否被部署在第j个节点上,如果是,zi,j为1,否则,zi,j为0;M表示所述微服务实例的总个数;Xi表示第i个微服务实例的数量;Gj表示第j个节点的租用单价;T表示微服务实例的运行时间;
所述通信成本的表达式为:
Figure FDA0003556530530000091
Figure FDA0003556530530000092
其中,Tran_size表示不同微服务实例之间的网络数据传输量,Fi表示第j个节点对应的网络传输单价;T表示所述微服务实例的运行时间;M表示所述微服务实例的总个数;N表示所述节点的总个数;
Figure FDA0003556530530000093
表示第i2个微服务实例的用户请求到达率;
Figure FDA0003556530530000094
表示第i1个微服务实例的数量;
Figure FDA0003556530530000095
表示第i2个微服务实例的数量;
Figure FDA0003556530530000096
表示第i2个微服务实例是否被部署在第j个节点上,如果是,
Figure FDA0003556530530000097
为1,否则,
Figure FDA0003556530530000098
为0;
Figure FDA0003556530530000099
表示第i1个微服务实例是否被部署在第j个节点上,如果是,
Figure FDA00035565305300000910
为1,否则,
Figure FDA00035565305300000911
为0;
Figure FDA00035565305300000912
表示第i1个微服务实例和第i2个微服务实例是否有依赖关系,如果有,
Figure FDA00035565305300000913
为1,否则,
Figure FDA00035565305300000914
为0;
Figure FDA00035565305300000915
表示第i1个微服务实例和第i2个微服务实例之间的请求大小。
9.一种存储介质,存储有程序指令,其中,所述程序指令被执行时实现如权利要求1至权利要求5任一项所述的基于资源分配的微服务实例部署方法的步骤。
10.一种图像风格迁移系统,其特征在于:包括存储器,用于存储计算机程序;处理器,用于运行所述计算机程序以实现如权利要求1至权利要求5任一权利要求所述的基于资源分配的微服务实例部署方法的步骤。
CN202210280183.1A 2022-03-21 2022-03-21 基于资源分配的微服务实例部署方法及装置 Pending CN115640117A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210280183.1A CN115640117A (zh) 2022-03-21 2022-03-21 基于资源分配的微服务实例部署方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210280183.1A CN115640117A (zh) 2022-03-21 2022-03-21 基于资源分配的微服务实例部署方法及装置

Publications (1)

Publication Number Publication Date
CN115640117A true CN115640117A (zh) 2023-01-24

Family

ID=84940823

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210280183.1A Pending CN115640117A (zh) 2022-03-21 2022-03-21 基于资源分配的微服务实例部署方法及装置

Country Status (1)

Country Link
CN (1) CN115640117A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116722640A (zh) * 2023-04-19 2023-09-08 广东顺德电力设计院有限公司 一种基于微服务架构的源网荷储协调控制方法和系统
CN117692503A (zh) * 2024-02-04 2024-03-12 国网湖北省电力有限公司信息通信公司 动态微服务图部署和概率请求路由的联合优化方法及系统

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116722640A (zh) * 2023-04-19 2023-09-08 广东顺德电力设计院有限公司 一种基于微服务架构的源网荷储协调控制方法和系统
CN117692503A (zh) * 2024-02-04 2024-03-12 国网湖北省电力有限公司信息通信公司 动态微服务图部署和概率请求路由的联合优化方法及系统
CN117692503B (zh) * 2024-02-04 2024-04-26 国网湖北省电力有限公司信息通信公司 动态微服务图部署和概率请求路由的联合优化方法及系统

Similar Documents

Publication Publication Date Title
CN115640117A (zh) 基于资源分配的微服务实例部署方法及装置
CN103793272B (zh) 一种周期性任务调度方法及系统
CN111400022A (zh) 一种资源调度方法、装置及电子设备
CN110990154B (zh) 一种大数据应用优化方法、装置及存储介质
CN114443263A (zh) 显存管理方法、装置、设备及系统
CN111190696A (zh) Docker容器的部署方法、系统、设备及存储介质
CN111163178A (zh) 一种边缘计算中基于博弈论的服务部署及任务卸载方法
CN113206876B (zh) 一种移动边缘计算环境下双标签感知的服务重部署方法
CN108984286A (zh) 一种云计算平台的资源调度方法和系统
CN107741873A (zh) 业务处理方法及装置
CN116302453B (zh) 量子电子混合平台的任务调度方法及装置
CN115174582B (zh) 数据调度方法及相关装置
CN115098240B (zh) 一种多处理器应用调度方法和系统及存储介质
CN116880968A (zh) 一种作业调度方法及调度系统
CN115396515A (zh) 资源调度方法、装置及存储介质
CN113032137B (zh) 任务分配方法、装置、计算机设备及可读存储介质
CN114896070A (zh) 一种用于深度学习任务的gpu资源分配方法
CN112783651B (zh) 一种云平台vGPU负载均衡调度方法、介质及装置
CN108933834A (zh) 一种调度方法及调度装置
CN112068955B (zh) 一种异构多核平台处理器内的通信优化方法及电子设备
CN114546618A (zh) 基于cnn矩阵分块的调度方法、装置、设备及存储介质
CN114138484A (zh) 资源分配方法、装置以及介质
CN117492934B (zh) 一种基于云服务智能部署的数据处理方法及系统
CN118170551B (zh) 资源调度方法、装置及电子设备
CN114500551B (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