本发明专利技术公开了一种基于机器学习的云服务平台负载策略推荐方法。本发明专利技术采用机器学习方法进行参数推荐以及分类识别,可以集成在以Kubernetes为代表的容器编排系统上,通收集集群上负载的历史数据,使用带标签的不同类别负载的特征数据,进行识别模型的构建;完成训练后,持续监控集群,每当集群上有新的负载到达时,识别负载并进行参数推荐;参数推荐的过程通过贝叶斯优化进行,为集群上部署的应用推荐最佳的参数配置。相比于传统的Kubernetes自身的优化方法,本发明专利技术构建起完整的优化逻辑链条,更高效且更具持续性;完成优化迭代过程后,再将类型标签和相应的最佳推荐共同记录到推荐知识库,在后续工作中,进行更新或快速推荐。进行更新或快速推荐。进行更新或快速推荐。
【技术实现步骤摘要】
一种基于机器学习的云服务平台负载策略推荐方法
[0001]本专利技术属于云平台的集群管理
,尤其涉及一种基于机器学习的云服务平台负载策略推荐方法。
技术介绍
[0002]Kubernetes,简称K8s,是用于容器化应用程序部署和管理的开源平台,由Google于2014年发布。Kubernetes提供一系列API和工具,灵活地使用Pod、ReplicaSet、Deployment、Service等概念来构建、部署和管理应用程序,自动化容器生命周期的全过程,包括部署、调度、维护和缩放应用程序,使得在分布式系统中部署、扩展和管理容器化应用程序变得更加容易。然而,Kubernetes作为云服务平台,其自身的主要优势是管理与维护功能,在参数配置方面的关注略显薄弱,难以为平台上部署的产品进行有效的优化处理。因而,不理想的参数选择和资源配置会导致性能恶化和资源浪费。以麦肯锡和Gartner的数据统计为例,据估计,整个业界的服务器平均利用率大约为6%
‑
12%。
[0003]针对以上问题,为了优化集群中应用程序的性能表现和资源配额,以使其能够更好地利用集群资源,并提高应用程序的性能和稳定性,Kubernetes内部实现了一些可行的调优方法,其中,现有的成熟调优策略主要分为以下三类:1.在容器的配置文件中,通过设置资源请求和限制来确保应用程序具有足够的资源,确保容器不会使用超过指定数量的资源,从而防止容器消耗过度,避免过分占用资源导致的浪费;2.通过增加副本数来横向扩展应用程序,或通过在容器中增加CPU、内存等资源,以提高应用程序的负载能力,获得更优的性能表现;3.利用Kubernetes的服务发现机制,将客户端请求分配给集群中的多个副本,同时使用负载均衡器可以使请求在多个副本之间均衡分布,从而提高整体性能。然而,这些方法存在着以下缺点:
[0004]1.使用资源请求与限制的方法:难以确定合适的限制值,在实践中某些应用程序,需要的资源可能会随着时间和负载的变化而发生变化;无法做到更细粒度的资源管理,仅能管理CPU和内存资源;
[0005]2.使用水平、垂直扩缩容的方式:配置复杂,涉及许多参数,如果没有正确调整,可能会导致过度缩放或不足缩放;同时会限制容器使用的CPU和内存资源,这可能会影响应用程序的性能;
[0006]3.使用服务发现和负载均衡的方法:使用中央服务发现机制时,可能会存在单点故障问题;使用负载均衡器时,流量必须通过该负载均衡器进行路由,这可能导致额外的延迟,并且可能会影响系统的性能。
技术实现思路
[0007]针对现有技术中存在的上述问题,本专利技术的目的在于提供一种基于机器学习的负载识别和参数优化的Kubernetes上负载的策略推荐方法,该方法采用机器学习方法进行的参数推荐以及分类识别,可以集成在以Kubernetes为代表的容器编排系统上,通收集集群
上负载的历史数据,使用带标签的不同类别负载的特征数据,进行识别模型的构建。完成训练后,持续监控集群,每当集群上有新的负载到达时,识别负载并进行参数推荐。而参数推荐的过程,则通过贝叶斯优化进行,为集群上部署的应用推荐最佳的参数配置。相比于传统的Kubernetes自身的优化方法,本专利技术构建起完整的优化逻辑链条,更高效且更具持续性,优化集群。
[0008]本专利技术的技术方案为:
[0009]一种基于机器学习的云服务平台负载策略推荐方法,其步骤包括:
[0010]1)选取多个主流负载应用并为每一所述主流负载应用设定若干性能指标和若干特征指标;对于每一所选主流负载应用,获取该主流负载应用的相关参数,并根据各参数的取值范围,构建该主流负载应用的参数空间;
[0011]2)根据参数优化模型从该主流负载应用的参数空间中选取的一组参数配置该主流负载应用并在云服务平台运行该主流负载应用,然后采集云服务平台运行该主流负载应用时对应的特征指标值、性能指标值反馈给所述参数优化模型;
[0012]3)所述参数优化模型根据该主流负载应用的当前性能指标值,从该主流负载应用的参数空间中选取一组新的参数配置该主流负载应用,然后采集云服务平台运行该主流负载应用时对应的特征指标值、性能指标值反馈给所述参数优化模型;
[0013]4)重复步骤3),获取每一所选主流负载应用性能指标值最优时对应的参数配置及特征指标值;根据各所选主流负载应用性能指标值最优时对应的参数配置生成一策略推荐库,记录每一所选主流负载应用对应的类型及性能指标值最优时对应的参数配置;
[0014]5)将采集的每一所选主流负载应用的特征指标值作为一训练样本,训练机器学习模型得到一负载识别模型;
[0015]6)当新的负载到达云服务平台时,依据该负载的参数生成该负载的参数空间;以及获取该负载对应的特征值并将其输入到所述负载识别模型,输出该负载对应的类型;
[0016]根据该负载的类型从策略推荐库中选取对应的参数配置对该负载进行配置;然后采集云服务平台运行该负载时的特征指标值、性能指标值;
[0017]7)所述参数优化模型根据该负载的当前性能指标值,从该负载的参数空间中选取一组新的参数配置该负载,然后采集云服务平台运行该负载时对应的特征指标值、性能指标值反馈给所述参数优化模型;
[0018]8)重复步骤7)直至该负载对应的性能指标值最优;如果该负载对应的最优性能指标值高于所述策略推荐库中该负载类型对应的性能指标值,则利用该负载性能指标值最优时对应的参数配置及性能指标值更新所述策略推荐库。
[0019]进一步的,所述参数优化模型为贝叶斯优化模型、遗传算法、粒子群算法或神经网络模型。
[0020]进一步的,所述机器学习模型为决策树模型或随机森林模型。
[0021]一种服务器,其特征在于,包括存储器和处理器,所述存储器存储计算机程序,所述计算机程序被配置为由所述处理器执行,所述计算机程序包括用于执行上述方法中各步骤的指令。
[0022]一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现上述方法的步骤。
[0023]与现有技术相比,本专利技术的特点在于使用机器学习方法,包括但不限于贝叶斯优化、遗传算法、粒子群算法、决策树、随机森林、神经网络,进行负载识别和参数推荐,其积极作用在于:
[0024]1.先前基于资源请求与限制或水平、垂直扩缩容的方法,主要优化和调整目标集中在CPU和内存资源的分配上,无法做到更细粒度的资源管理。且简单的优化机制,不可避免地存在优化效果不够理想的情况。而本专利技术使用贝叶斯优化模型,在CPU、内存等硬件资源的基础上,将负载应用自身的超参数纳入优化范围,进行协同优化,同时获取相应负载在最佳配置时的软件、硬件参数。
[0025]2.先前基于资源请求与限制或水平、垂直扩缩容的方法,是考虑现有的资源情况,针对单个应用进行持续优化,与集群上其他的应用,包括历史应用以及未来部署的同类应用之间,不产生任何关联。而本专利技术使用基于决策本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种基于机器学习的云服务平台负载策略推荐方法,其步骤包括:1)选取多个主流负载应用并为每一所述主流负载应用设定若干性能指标和若干特征指标;对于每一所选主流负载应用,获取该主流负载应用的相关参数,并根据各参数的取值范围,构建该主流负载应用的参数空间;2)根据参数优化模型从该主流负载应用的参数空间中选取的一组参数配置该主流负载应用并在云服务平台运行该主流负载应用,然后采集云服务平台运行该主流负载应用时对应的特征指标值、性能指标值反馈给所述参数优化模型;3)所述参数优化模型根据该主流负载应用的当前性能指标值,从该主流负载应用的参数空间中选取一组新的参数配置该主流负载应用,然后采集云服务平台运行该主流负载应用时对应的特征指标值、性能指标值反馈给所述参数优化模型;4)重复步骤3),获取每一所选主流负载应用性能指标值最优时对应的参数配置及特征指标值;根据各所选主流负载应用性能指标值最优时对应的参数配置生成一策略推荐库,记录每一所选主流负载应用对应的类型及性能指标值最优时对应的参数配置;5)将采集的每一所选主流负载应用的特征指标值作为一训练样本,训练机器学习模型得到一负载识别模型;6)当新的负载到达云服务平台时,依据该负载的参数生成该负载的参数空间;以及获取该负载对应的特...
【专利技术属性】
技术研发人员:王新元,何家泰,黄山云,马成宇,张开创,侯朋朋,于佳耕,武延军,
申请(专利权)人:中科南京软件技术研究院,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。