当前位置: 首页 > 专利查询>武汉大学专利>正文

性能瓶颈感知的微服务弹性伸缩方法及系统技术方案

技术编号:37080770 阅读:26 留言:0更新日期:2023-03-29 19:56
本发明专利技术公开的性能瓶颈感知的微服务弹性伸缩方法,包括以下步骤:获取微服务的多源指标数据,存储多源指标数据为时序数据并根据多源指标数据构建微服务依赖关系图;根据微服务依赖关系图,实时检测微服务多源指标数据的异常行为,获取异常微服务集合;利用微服务的异常聚集效应和异常传播特性,在异常微服务集合中定位瓶颈服务;基于遗传算法对各瓶颈服务进行实例数优化,获取微服务系统最终的弹性伸缩决策。本申请通过在线监控微服务应用性能表现和资源消耗,实时检测微服务异常行为,从大量性能降级的微服务中快速进行性能瓶颈定位并进行资源优化,获取最终的弹性伸缩决策。获取最终的弹性伸缩决策。获取最终的弹性伸缩决策。

【技术实现步骤摘要】
性能瓶颈感知的微服务弹性伸缩方法及系统


[0001]本专利技术涉及软件工程微服务
,具体是涉及一种性能瓶颈感知的微服务弹性伸缩方法及系统。

技术介绍

[0002]云原生+微服务的软件架构为现代软件开发带来了便利,但是随着微服务规模的不断扩大,微服务之间交互变得越来越复杂,性能异常频发,治理这样一个庞大的系统变得越来越困难。人工维护这种多团队开发的大体量软件架构显得不切实际,随着可观测性技术的发展,海量异构的监控数据可以实时获取,根据这些数据进行故障分析,弹性伸缩以及负载均衡等任务是云原生时代微服务智能运维和治理的主要内容。
[0003]弹性伸缩一直是云计算中的热点问题,学术界和工业界已经有许多针对虚拟机或容器等云上资源的弹性伸缩方法,微服务的弹性伸缩则还需要考虑微服务之间的影响关系;根因定位可以在微服务的弹性伸缩中快速定位瓶颈服务,减少决策时间和决策范围。
[0004]微服务弹性伸缩的现有工作的方法主要从以下角度出发:
[0005](1)基于启发式规则,比如基于资源阈值和特定规则的KHPA,Libra,KHPA

A和PEMA;
[0006](2)基于对微服务建模,对微服务进行建模可以预测和评估在特定资源配置和负载下的
[0007]微服务状态,对微服务环境的建模有多种方式,比如排队模型,以及图神经网络,J Park等人提出的GRAF采用消息传递网络对所有微服务的延时进行回归预测,然后基于梯度下降方法进行优化决策;
[0008](3)基于控制理论,AF Baarzi提出的SHOWAR基于控制理论对监控指标和用户阈值之间的误差进行修正,从而动态调整微服务的实例数;
[0009](4)基于优化算法,Yu等人提出的MicroScaler通过大量尝试寻找当前资源和负载下的最优决策方案;
[0010](5)基于强化学习,MIRAS首次引入Model

based,减少了强化学习模型训练时对资源的浪费,FIRM[34]采用SVM方法识别微服务中的关键路径,并用DDPG深度强化学习方法对关键服务进行混合弹性决策。
[0011]现有技术的方法至少存在如下技术问题:
[0012]现有技术的弹性伸缩方法在出现大量服务性能降级的情况下表现较差,浪费较多的计算资源在非瓶颈服务服务上,有时甚至会延长决策时间,造成性能降级和资源浪费;另一方面很多方法都是在线进行策略尝试和评估,造成集群服务实例数震荡,不稳定的线上环境间接导致了服务性能降级。

技术实现思路

[0013]本专利技术的目的是为了克服上述
技术介绍
的不足,提供一种性能瓶颈感知的微服务
弹性伸缩方法及系统。
[0014]第一方面,本申请提供了一种性能瓶颈感知的微服务弹性伸缩方法,包括以下步骤:
[0015]步骤S1、获取微服务的多源指标数据,存储多源指标数据为时序数据并根据多源指标数据构建微服务依赖关系图;
[0016]步骤S2、根据微服务依赖关系图,实时检测微服务多源指标数据的异常行为,获取异常微服务集合;
[0017]步骤S3、利用微服务的异常聚集效应和异常传播特性,在异常微服务集合中定位瓶颈服务;
[0018]步骤S4、基于遗传算法对各瓶颈服务进行实例数优化,获取微服务系统最终的弹性伸缩决策。
[0019]根据第一方面,在第一方面的第一种可能的实现方式中,所述步骤S1、获取微服务的多源指标数据,存储多源指标数据为时序数据并根据多源指标数据构建微服务依赖关系图的步骤,具体包括以下步骤:
[0020]步骤S11、基于服务网格技术代理微服务的交互流量,通过监控和聚合收集微服务系统中交互流量产生的多源指标数据;
[0021]步骤S12、将收集的多源指标数据存储在时序数据库中,并根据多源指标数据的端点服务信息构建微服务依赖关系图。
[0022]根据第一方面,在第一方面的第二种可能的实现方式中,所述异常微服务集合包括资源不足的微服务和资源冗余的微服务,所述步骤S2、根据微服务依赖关系图,实时检测微服务多源指标数据的异常行为,获取异常微服务集合的步骤,具体包括以下步骤:
[0023]根据微服务依赖关系图,将微服务的多源指标数据进行SLO违背检测不足检测,获取SLO违背检测结果;
[0024]当检测到SLO违背的微服务时,筛选出SLO违背的微服务;
[0025]当未检测到SLO违背的微服务时,通过假设检验检查所有微服务的负载变化情况,识别出资源冗余的微服务。
[0026]根据第一方面的第一种可能的实现方式,在第一方面的第三种可能的实现方式中,所述步骤S3、利用微服务的异常聚集效应和异常传播特性,在异常微服务集合中定位瓶颈服务的步骤,具体包括以下步骤:
[0027]利用微服务的异常聚集效应,根据下式,获取异常微服务集合的相邻异常聚集分数iScore和一跳异常聚集分数xScore:
[0028][0029][0030]其中,AAN(V
i
)代表微服务V
i
的相邻异常节点集合,NHAN(V
i
)代表微服务V
i
的下一跳的异常节点集合,Degree(V
i
)代表微服务V
i
的度数,AS(V
i
)代表微服务V
i
的异常分数;
[0031]将获取的iScore和xScore根据下式,计算获取异常微服务集合的异常聚集分数ixScore:
[0032]ixScore(V
i
)=iScore(V
i
)+xScore(V
i
);
[0033]其中,V
i
为微服务依赖关系图上第i个微服务节点。
[0034]构建异常微服务集合的依赖关系图,在异常微服务集合的依赖关系图进行异常传播模拟,并根据异常聚集分数,获取异常微服务集合的依赖关系图上的各微服务的性能瓶颈概率,选择预设个排前概率的微服务作为瓶颈服务。
[0035]根据第一方面,在第一方面的第四种可能的实现方式中,所述步骤S4、基于遗传算法对各瓶颈服务进行实例数优化,获取微服务系统最终的弹性伸缩决策的步骤,具体包括以下步骤:
[0036]根据微服务的历史数据训练构建SLO违背预测模型;
[0037]将所有微服务的实例数和负载输入SLO违背预测模型,模拟线上应用反馈结果获取所有服务的模拟线上应用反馈结果;
[0038]根据所有服务的模拟线上应用反馈结果,基于遗传算法对各瓶颈服务进行实例数优化,获取微服务系统最终的弹性伸缩决策。
[0039]根据第一方面,在第一方面的第五种可能的实现方式中,所述步骤S4、基于遗传算法对各瓶颈服务进行实例数优化,获取微服务系统最终的弹性伸缩决策的步骤之后,还包括以下步骤:
[0040]将瓶颈服务服务经SLO违背预测模型处理获取微服务的S本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种性能瓶颈感知的微服务弹性伸缩方法,其特征在于,包括以下步骤:获取微服务的多源指标数据,存储多源指标数据为时序数据并根据多源指标数据构建微服务依赖关系图;根据微服务依赖关系图,实时检测微服务多源指标数据的异常行为,获取异常微服务集合;利用微服务的异常聚集效应和异常传播特性,在异常微服务集合中定位瓶颈服务;基于遗传算法对各瓶颈服务进行实例数优化,获取微服务系统最终的弹性伸缩决策。2.如权利要求1所述的性能瓶颈感知的微服务弹性伸缩方法,其特征在于,所述获取微服务的多源指标数据,存储多源指标数据为时序数据并根据多源指标数据构建微服务依赖关系图的步骤,具体包括以下步骤:基于服务网格技术代理微服务的交互流量,通过监控和聚合收集微服务系统中交互流量产生的多源指标数据;将收集的多源指标数据存储在时序数据库中,并根据多源指标数据的端点服务信息构建微服务依赖关系图。3.如权利要求1所述的性能瓶颈感知的微服务弹性伸缩方法,其特征在于,所述异常微服务集合包括资源不足的微服务和资源冗余的微服务,所述根据微服务依赖关系图,实时检测微服务多源指标数据的异常行为,获取异常微服务集合的步骤,具体包括以下步骤:根据微服务依赖关系图,将微服务的多源指标数据进行SLO违背检测(服务水平目标)检测,获取SLO违背检测结果;当检测到SLO违背的微服务时,筛选出违背SLO的微服务;当未检测到SLO违背的微服务时,通过假设检验检查所有微服务的负载变化情况,识别出资源冗余的微服务。4.如权利要求2所述的性能瓶颈感知的微服务弹性伸缩方法,其特征在于,所述利用微服务的异常聚集效应和异常传播特性,在异常微服务集合中定位瓶颈服务的步骤,具体包括以下步骤:利用微服务的异常聚集效应,根据下式,获取异常微服务集合的相邻异常聚集分数iScore和一跳异常聚集分数xScore:iScore和一跳异常聚集分数xScore:其中,AAN(V
i
)代表微服务V
i
的相邻异常节点集合,NHAN(V
i
)代表微服务V
i
的下一跳的异常节点集合,Degree(V
i
)代表微服务V
i
的度数,AS(V
i
)代表微服务V
i
的异常分数;将获取的iScore和xScore根据下式,计算获取异常微服务集合的异常聚集分数ixScore:ixScore(V
i
)=iScore(V
i
)+xScore(V
i
);其中,V
i
为微服务依赖关系图上第i个微服务节点;构建异常微服务集合的依赖关系图,在异常微服务集合的依赖关系图进行异常传播模
拟,并根据异常聚集分数,获取异常微服务集合的依赖关系图上的各微服务的性能瓶颈概率,选择预设个排前概率的微服务作为瓶颈服务。5.如权利要求1所述的性能瓶颈感知的微服务弹性伸缩方法,其特征在于,所述步骤S4、基于遗传算法对各瓶颈服务进行实例数优化,获取微服务系统最终的弹性伸缩决策的步骤,具体包括以下步骤:根据微服务的历史数据训练构建SLO违背预测模型;将所有微服务实例数和微服务负载输入SLO违背预测模型,模拟线上应用反馈结果获取所有服务的模拟线上应用反馈结果;根据所有服务的模拟线上应用反馈结果,基于遗传算法对各瓶颈服务进行实例数优化,获取微服务系统最终的弹性伸缩决策。6.如权利要求5所述的性能瓶颈感知的微服务弹性伸缩方法,其特征在于,所述根据各瓶颈服务的模拟线上应用反馈结果,基于遗传算法对各瓶颈服务进行实例数优化,获取微服务系统最终的弹性伸缩决策弹性伸缩决策的步骤,具体包括以下步骤:将所有服务经...

【专利技术属性】
技术研发人员:李兵谢帅宇王健张泽锟常佳鑫
申请(专利权)人:武汉大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1