一种微服务架构下中性能资源成本优化方法及系统

文档序号:34264533发布日期:2023-05-25 05:55阅读:164来源:国知局
一种微服务架构下中性能资源成本优化方法及系统

本发明涉及微服务,具体涉及一种微服务架构下中性能资源成本优化方法及系统。


背景技术:

1、随着微服务技术的发展,微服务(microservices)的概念早已深入人心,越来越多的公司开始使用微服务架构来开发业务应用。o’reilly 2020年的调研报告显示77%的用户已经使用微服务架构的开发模式,并且其中92%获得了成功经验。

2、容器是微服务架构的绝佳示例,现代云原生应用通常使用容器构建为微服务。借助容器良好的隔离,资源分配特性,能够为各服务分配相应资源以满足其性能需求。随着云基础设施的日益普及,开发者更加倾向于在云上部署基于微服务的应用程序,以利用云基础设施的弹性。

3、公布号为cn114924887a的现有发明专利申请文献《一种电力交易平台的微服务资源配置参数优化方法》,方法包括:获取实时的网络运行参数数据、平台系统运行参数数据以及微服务性能参数数据,分别对应地构造网络配置向量、系统感知向量以及微服务性能观测向量,输入预先训练的序列到序列模型seq2seq进行计算推理;根据seq2seq模型的输出,确定优化后的微服务资源配置参数,进而对电力交易平台进行微服务资源参数配置。seq2seq模型的训练样本为已知微服务资源配置向量的平台处理性能向量的连续时间序列数据,微服务资源配置参数包括cpu核数量、内存大小、带宽和实例数。在前述现有方案中,尽管公有云产品可被认为拥有无限的资源,但微服务应用程序在现实世界中的部署通常受到成本开销的限制。如何通过适当地分配给微服务有限的资源(如cpu使用时间,内存容量,微服务副本数量)以满足特定的性能目标是微服务领域重要的研究问题。

4、保证端到端服务质量的同时优化资源分配对云服务供应商和用户来说都是非常重要的课题。从云服务供应商的角度来说关系到公司利润与产品声誉,从用户角度来看优化资源分配关系到基础设施的持有成本与服务性能(如延迟)。公布号为cn111913800a的现有发明专利申请文献《基于l-aco的云中微服务成本优化的资源分配方法》,包括:将整个组合服务的完成服务最后期限分配给每一个任务,计算每一个任务的概率向上秩,形成子最后期限;把概率向上秩作为蚁群中的启发式信息,进行迭代计算,迭代计算过程中信息素权重、启发式信息权重和信息素挥发率进行动态更新,根据迭代过程中的局部最优解来更新信息素轨迹;根据子最后期限,依次为每个任务的执行者,即服务实例选择满足其子最后期限的资源配置,找出成本优化的全局最优解。持有成本和服务性能之间需要根据情况做出相应的权衡,如前述现有技术中,通过缩减资源分配的方式降低持有成本,那么微服务响应延迟则可能会有所增加。由于保障服务性能通常比降低持有成本有着更高的优先级,常见的做法是过分配资源以保障服务性能。这种方式根据峰时负载所需资源数量进行分配,导致在大部分时间资源未得到充分的利用,对持有成本造成了负面影响。

5、此外,现有的调优技术方案还存在以下性能问题:

6、(1)多目标优化问题:

7、对于微服务场景下的优化问题,现今大多数解决方法是在满足预置的持有成本约束前提下,以性能为优化目标进行单目标优化。或者将性能与成本多个优化目标形式化为performance/cost,再通过单目标优化算法进行优化。但是这种单目标优化的方式,忽略了多个目标之间本质上存在的竞争关系,难以正确地捕捉多个目标之间的权衡,由此在优化过程中可能会导致激进的探索行为进而获得次优的优化结果。持有成本与性能指标之间存在权衡需要进行多目标优化,现有技术中没有进行多目标优化。

8、(2)软件参数与资源参数的协同优化问题:

9、现有方式通过对微服务容器占用的机器资源以及副本数进行调整来达到降本增效的目的。但是这种调优策略未对微服务自身所部署的软件加以考虑。微服务架构下通常会接入一个或多个数据库软件(如redis、mongodb等)以存储数据,同时可能部署nginx作为服务前端进行流量治理。这些软件中存在大量可调节的参数,软件参数的调优对微服务系统整体降本增效也起着至关重要的作用。此外这些软件参数的调整与服务容器资源之间是存在着依赖性的,最佳的软件参数配置随分配给容器的资源大小变化而改变,比如nginx通过worker_processes设置用于出来请求的工作线程数量,该参数的最优配置需要联合考虑分配给容器的cpu资源情况。所以需要对软件参数与资源参数进行协同优化。现有技术中没有对微服务的资源配置参数(如cpu的核心数量,内存大小,服务副本数量)和微服务本身的软件参数(如redis、mongodb、nginx的配置参数)进行协同优化。

10、(3)高维配置空间问题:

11、微服务架构下可能包含几十到几百个微服务。每个微服务都有多种类型的资源配置参数可供调节,如cpu的核心数量、服务副本数量、内存大小等。假设目前存在n个微服务,每个微服务有m个资源配置参数,那么微服务系统调优过程中的参数搜索空间为mn,可见参数搜索空间随着微服务的数量呈指数级增长,同时微服务系统中的软件参数也会影响系统调优效果,需要对资源配置参数与软件配置参数进行联合考虑,这又更进一步地加大了参数搜索空间,因此需要采用合理的方式进行降维处理,以解决高维搜索空间的问题。然而现有技术中,没有很好的对高维参数配置空间进行降维处理。

12、综上,现有技术未进行性能指标与成本开销的多目标优化,未对微服务资源配置参数和微服务自身软件参数协同调优,没有很好的对高维参数配置空间进行降维处理的技术问题。


技术实现思路

1、本发明所要解决的技术问题在于如何解决现有技术未进行性能指标与成本开销的多目标优化,未对微服务资源配置参数和微服务自身软件参数协同调优,没有很好的对高维参数配置空间进行降维处理的技术问题。

2、本发明是采用以下技术方案解决上述技术问题的:一种微服务架构下中性能资源成本优化方法包括:

3、s1、对微服务调用链路以及服务指标,据以识别获取请求链路中的关键路径,据以调优关键服务的配置参数;

4、s2、初始化配置参数并运行微服务系统;

5、s3、针对微服务系统,进行压力测试并收集压测系统性能指标,步骤s3包括:

6、s31、对处于运行状态的微服务系统进行压力测试,以得到压测系统性能指标;

7、s32、在发送网络请求数量达到预置上限阈值时,请求微服务调用链路覆盖微服务系统中的微服务;

8、s33、处理当前的微服务系统的配置方案的资源成本开销;

9、s4、使用多目标调优算法生成新的配置方案,并变更应用至微服务系统,其中,多目标调优算法包括:遗传算法,动态维度搜索算法、粒子群优化算法、贝叶斯优化算法,步骤s4包括:

10、s41、利用遗传算法模仿自然选择,根据预置目标函数值选择一个候选解决方案子集;

11、s42、进行突变操作以及交叉操作,随机改变特定参数配置和组合候选方案配置,据以产生新的候选方案,其中,遗传算法包括:nsga-ⅱ算法;

12、s43、将当前的配置方案作为nsga-ii算法的输入数据,在该配置方案下,将压测系统性能指标以及成本开销作为目标函数;

13、s44、根据配置方案以及目标函数,产生新配置方案;

14、s45、将新配置方案应用于微服务系统,以变更预置应用至微服务系统,使微服务系统在新配置方案下运行;

15、s5、循环执行步骤s3及步骤s4,直至循环的次数达到预置重复次数阈值,将目前最优配置应用于微服务系统,以作为后续执行配置方案。

16、本发明采用多目标优化方式获取帕累托最优的配置方案,解决了现有技术中单目标优化方式忽略多目标间竞争关系的缺陷,本发明能够正确地捕捉多个目标之间的权衡,避免了优化过程中因为激进探索行为,能够获得调优的优化结果,解决了多目标优化问题,同时避免了传统方案中采用过分配资源的保障方式造成的持有成本造成了负面影响。

17、本发明采用的调优策略考虑微服务自身的资源配置参数,以及微服务所部属的软件中大量存在的可调节参数。有益于微服务系统整体降本增效。

18、在更具体的技术方案中,步骤s1包括:

19、s11、将关键路径上的微服务作为关键服务;

20、s12、调优关键服务的配置参数。

21、在更具体的技术方案中,步骤s12中,通过调优配置参数。并降低关键服务的配置参数搜索空间。

22、本发明综合处理参数搜索空间随着微服务的数量呈指数级增长,以及微服务系统中的软件参数对调优操作的影响,对资源配置参数与软件配置参数进行联合考虑,针对联合考虑带来的高维配置空间,通过降维处理,降低了参数搜索空间,解决了高维搜索空间的问题。

23、在更具体的技术方案中,步骤s2中,通过获取用户信息,以联合优化关键服务的配置参数。

24、本发明结合从云服务供应商以及用户的角度,获取用户信息,来看优化资源分配关系到基础设施的持有成本与服务性能,改善微服务系统的参数调优效果。

25、在更具体的技术方案中,步骤s2中,配置参数包括:微服务系统硬件资源配置参数以及微服务系统软件配置参数。

26、在更具体的技术方案中,针对关键服务,设置硬件资源配置参数以及软件配置参数,据以控制关键服务的微服务系统运行。

27、在更具体的技术方案中,获取预设软件的软件配置参数,其中,预设软件包括:redis、mongodb、nginx。

28、本发明针对软件参数的调整与服务容器资源之间是存在依赖性的特点,对包括nginx等参数的最优配置进行联合考虑,并将分配给容器的cpu资源情况、内存以及服务的副本数纳入考虑。本发明解决了软件参数与资源参数的协同优化问题。

29、在更具体的技术方案中,步骤s32还包括:

30、s321、以不同的调用次数调用每一微服务,收集压测系统性能指标;

31、s322、在微服务请求链路延迟时,以相同的调用次数请求每秒处理的请求数。

32、在更具体的技术方案中,步骤s33中,成本开销包括:硬件资源用量产生的费用。

33、在更具体的技术方案中,一种微服务架构下中性能资源成本优化系统包括:

34、关键服务识别模块,用以对微服务调用链路以及服务指标,据以识别获取请求链路中的关键路径,据以调优关键服务的配置参数;

35、参数初始及微系统运行模块,用以初始化配置参数并运行微服务系统,参数初始及微系统运行模块与关键服务识别模块连接;

36、测试及值班收集模块,用以针对微服务系统,进行压力测试并收集压测系统性能指标,测试及值班收集模块与参数初始及微系统运行模块连接,测试及值班收集模块包括:

37、压力测试模块,用以对处于运行状态的微服务系统进行压力测试,以得到压测系统性能指标;

38、链路覆盖模块,用以在发送网络请求数量达到预置上限阈值时,请求微服务调用链路覆盖微服务系统中的微服务,链路覆盖模块与压力测试模块连接;

39、成本获取模块,用以处理当前的微服务系统的配置方案的资源成本开销,成本获取模块与链路覆盖模块连接;

40、多目标调优模块,用以使用多目标调优算法生成新的配置方案,并变更应用至微服务系统,其中,多目标调优算法包括:动态维度搜索算法、粒子群优化算法、贝叶斯优化算法以及遗传算法,多目标调优模块与测试及值班收集模块连接,多目标调优模块包括:

41、方案子集选择模块,用以利用遗传算法模仿自然选择,根据预置目标函数值选择一个候选解决方案子集;

42、候选方案产生模块,用以进行突变操作以及交叉操作,随机改变特定参数配置和组合候选方案配置,据以产生新的候选方案,其中,遗传算法包括:nsga-ⅱ算法,候选方案产生模块与方案子集选择模块连接;

43、目标函数设置模块,用以将当前的配置方案作为nsga-ii算法的输入数据,在该配置方案下,将压测系统性能指标以及成本开销作为目标函数,目标函数设置模块与候选方案产生模块连接;

44、新方案产生模块,用以根据配置方案以及目标函数,产生新配置方案,新方案产生模块与目标函数设置模块连接;

45、应用更新运行模块,用以将新配置方案应用于微服务系统,以变更预置应用至微服务系统,使微服务系统在新配置方案下运行,应用更新运行模块与新方案产生模块连接;

46、后续执行模块,用以循环执行压力测试并收集系统性能指标及生成新的配置方案并变更应用到微服务系统的操作,直至循环的次数达到预置重复次数阈值,将目前最优配置应用于微服务系统,以作为后续执行配置方案,后续执行模块与多目标调优模块连接。

47、本发明相比现有技术具有以下优点:本发明采用多目标优化方式获取帕累托最优的配置方案,解决了现有技术中单目标优化方式忽略多目标间竞争关系的缺陷,本发明能够正确地捕捉多个目标之间的权衡,避免了优化过程中因为激进探索行为,能够获得调优的优化结果,解决了多目标优化问题,同时避免了传统方案中采用过分配资源的保障方式造成的持有成本造成了负面影响。

48、本发明采用的调优策略考虑微服务自身的资源配置参数,以及微服务所部属的软件中大量存在的可调节参数。有益于微服务系统整体降本增效。

49、本发明综合处理参数搜索空间随着微服务的数量呈指数级增长,以及微服务系统中的软件参数对调优操作的影响,对资源配置参数与软件配置参数进行联合考虑,针对联合考虑带来的高维配置空间,通过降维处理,降低了参数搜索空间,解决了高维搜索空间的问题。

50、本发明结合从云服务供应商以及用户的角度,获取用户信息,来看优化资源分配关系到基础设施的持有成本与服务性能,改善微服务系统的参数调优效果。

51、本发明针对软件参数的调整与服务容器资源之间是存在依赖性的特点,对包括nginx等参数的最优配置进行联合考虑,并将分配给容器的cpu资源情况、内存以及微服务副本数纳入考虑。本发明解决了软件参数与资源参数的协同优化问题。

52、本发明解决了现有技术中未进行性能指标与成本开销的多目标优化,未对微服务资源配置参数和微服务自身软件参数协同调优,没有很好的对高维参数配置空间进行降维处理的技术问题。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1