软件参数调优方法、容器管理平台、存储介质及系统技术方案

技术编号:36429470 阅读:19 留言:0更新日期:2023-01-20 22:41
本发明专利技术公开了一种软件参数调优方法、容器管理平台、存储介质及系统,所述容器管理平台包括:任务接收模块、数据收集模块、在线优化模块、参数更新模块、离线优化模块和专家知识库。该容器管理平台可以针对动态调优任务或静态调优任务的需要,提供最优算法解决方案或查表解决方案,在保障应用程序服务感知不到中断的情况下,使用新的调优过的容器替换原有容器的方式,对应用程序在启动时设定的初始化参数进行用户无感的更新。行用户无感的更新。行用户无感的更新。

【技术实现步骤摘要】
软件参数调优方法、容器管理平台、存储介质及系统


[0001]本专利技术属于计算机软件
,尤其涉及一种软件参数调优方法、容器管理平台、存储介质及系统。

技术介绍

[0002]Kubernetes又称为K8s,当前K8s在产业界的应用越来越广泛,据2020年CNCF中国云原生调查报告显示在2020年生产环境中使用K8s的比例已有82%,且这一数字仍在快速增长,K8s已成为不可忽视的基础软件。与此同时K8s配置不当将会带来资源闲置、成本增加,68%的受访者表示业务迁移到K8s后计算资源成本有所增加,36%的受访者表示成本飙升超过20%,腾讯云对1000多云客户进行资源利用情况分析,抽样超过10000计算节点,发现资源普遍利用不充分;麦肯锡报告表明企业云计算预算平均超过了23%,并且浪费了30%的支出;《2021年中国云优化调查报告》显示63%的企业表示需要对公司云计算的性能进行优化。
[0003]对K8s等容器管理平台进行参数调优有利于提高资源利用率、降低企业成本。然而当前对于类似K8s这样的复杂系统软件的参数进行调优难度很大,主要有以下几个原因:
[0004](1)当前上层应用软件应用场景多元化。当前应用场景广泛、应用软件多元,典型应用如购物、微博、短视频、聊天应用、支付软件等,这些应用间特征差异较大,每个应用均有自己应用特点。
[0005](2)硬件设备差异很大。硬件涉及到CPU、BIOS、网卡、磁盘等,这些硬件的差异也会给参数调优带来挑战,如磁盘可细分为机械磁盘和SSD磁盘,不同的物理特性导致对上层磁盘调度策略有性能影响。
[0006](3)软硬件堆栈复杂。当前典型软件栈如下:应用层软件(如购物app)、中间件(包括消息通道等组件)、数据库、运行时环境、K8s、操作系统、CPU。用户很难对于这么多层的软件相关的特性和参数都有深入理解。
[0007](4)K8s等容器管理平台自带策略复杂。以K8s为例,K8s中的典型策略包括调度策略、亲和性机制、弹性伸缩、资源配置策略等,这些策略均涉及到对很多参数的设置,需要对相关策略有深入理解才能正确对相关参数进行正确设置。
[0008](5)很难有普世的、统一的参数优化方案。由于前文所述,应用软件多元化、硬件环境差异、软硬件堆栈复杂、软件版本差异等原因,导致技术经验丰富的技术专家也很难对整个软件栈涉及到的参数进行系统调优。
[0009](6)很难对所有应用场景进行预先调优。由于前文所述,应用软件的多元、硬件环境差异、软硬件堆栈复杂等原因,导致实际应用中由软件堆栈和硬件设备组成的搜索空间巨大,在实验室很难遍历完所有场景,很难对所有的场景进行预先调优。
[0010]基于以上原因,我们将基于容器管理平台进行软件参数调优从而提高系统性能、提高资源利用率、降低能耗、节省成本。

技术实现思路

[0011]本专利技术旨在提出一种软件参数调优方法、容器管理平台、存储介质及系统,所述方法对部署于容器集群中的应用进行调优,可以基于性能目标或者能耗目标进行调优。
[0012]本专利技术的
技术实现思路
包括:
[0013]一种软件参数调优方法,应用于一容器管理平台,所述方法包括:
[0014]接收动态调优任务;所述动态调优任务包括:调优对象和调优目标,所述调优对象类型为包括多个pod的K8s资源类型;
[0015]收集所述调优对象所在节点或容器维度中相关的运行数据;
[0016]基于所述调优目标,启动在线参数优化任务;其中,所述在线参数优化任务包含一迭代式的参数优化算法;
[0017]结合所述相关数据对K8s资源进行参数优化,通过参数优化算法,获取潜在的最优参数组合,并将所述潜在的最优参数组合逐个的更新到所述调优对象的各个维度中;
[0018]测试所述潜在的最优参数组合的性能表现,并在不满足所述调优目标的情况下,将所述潜在的最优参数组合的性能表现返回至所述参数优化算法供下次预测潜在的最优参数组合使用,在所述性能表现满足所述调用目标的情况下,将所述潜在的最优参数组合作为参数调优结果。
[0019]进一步地,所述容器管理平台包括:Kubernetes平台、Mesos平台或Docker Swarm平台。
[0020]进一步地,所述最优参数组合包括:操作系统维度参数、容器管理平台维度参数、运行时环境维度参数和/或应用程序维度参数。
[0021]进一步地,所述优化算法包括:暴力枚举搜索算法、基于启发式搜索算法、基于贝叶斯的调优算法、基于机器学习的参数调优算法或深度学习的参数调优算法。
[0022]进一步地,结合所述相关数据进行参数优化,以获取潜在的最优参数组合,包括:
[0023]设定参数优化目标;所述参数优化目标包括:性能相关指标或者能耗相关指标;
[0024]基于所述优化算法和所述相关数据,最优化所述参数优化目标,以得到潜在的最优参数组合。
[0025]进一步地,所述方法还包括:
[0026]获取所述调优对象所在节点或容器维度中的工作负载;其中,所述工作负载包括:运行在容器中的任务或程序;
[0027]将所述参数调优结果以及对应的工作负载,存入专家知识库,作为经验参数用于之后的静态调优任务;其中,所述专家知识库还包括:基于人工经验的专家知识。
[0028]一种软件参数调优方法,应用于一容器管理平台,所述方法包括:
[0029]接收静态调优任务;所述静态调优任务包括:调优对象,所述调优对象类型为包括多个pod的K8s资源类型;
[0030]收集所述调优对象的工作负载画像;
[0031]将所述工作负载画像输入工作负载分类模型,以识别所述调优对象对应的工作负载;
[0032]在获取所述调优对象对应的工作负载的情况下,基于权利要求6中所述的专家知识库,获取所述参数调优结果;
[0033]在未获取所述调优对象对应的工作负载的情况下,基于所述工作负载画像更新所述工作负载分类模型,根据更新后的工作负载分类模型得到所述调优对象对应的工作负载,并基于权利要求6中所述的专家知识库,获取所述参数调优结果。
[0034]一种容器管理平台,所述容器管理平台包括:
[0035]任务接收模块,用于接收调优任务;其中,所述调优任务包括:动态调优任务或静态调优任务,所述动态调优任务包括:调优对象和调优目标,所述调优对象类型为包括多个pod的K8s资源类型,所述静态调优任务包括:调优对象;
[0036]数据收集模块,用于收集所述调优对象所在节点或容器维度中相关的运行数据;
[0037]在线优化模块,用于在所述调优任务为动态调优任务的情况下,基于所述调优目标,启动在线参数优化任务;结合所述相关数据对K8s资源进行参数优化,通过参数优化算法,获取潜在的最优参数组合;测试所述潜在的最优参数组合的性能表现,并在不满足所述调优目标的情况下,将所述潜在的最优参数组合的性能表现返回至所述参数优化算法供下次预测潜在的最优参本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种软件参数调优方法,应用于一容器管理平台,其特征在于,所述方法包括:接收动态调优任务;所述动态调优任务包括:调优对象和调优目标,所述调优对象类型为包括多个pod的K8s资源类型;收集所述调优对象所在节点或容器维度中相关的运行数据;基于所述调优目标,启动在线参数优化任务;其中,所述在线参数优化任务包含一迭代式的参数优化算法;结合所述相关数据对K8s资源进行参数优化,通过参数优化算法,获取潜在的最优参数组合,并将所述潜在的最优参数组合逐个的更新到所述调优对象的各个维度中;测试所述潜在的最优参数组合的性能表现,并在不满足所述调优目标的情况下,将所述潜在的最优参数组合的性能表现返回至所述参数优化算法供下次预测潜在的最优参数组合使用,在所述性能表现满足所述调用目标的情况下,将所述潜在的最优参数组合作为参数调优结果。2.如权利要求1所述的方法,其特征在于,所述容器管理平台包括:Kubernetes平台、Mesos平台或Docker Swarm平台。3.如权利要求1所述的方法,其特征在于,所述最优参数组合包括:操作系统维度参数、容器管理平台维度参数、运行时环境维度参数和/或应用程序维度参数。4.如权利要求1所述的方法,其特征在于,所述优化算法包括:暴力枚举搜索算法、基于启发式搜索算法、基于贝叶斯的调优算法、基于机器学习的参数调优算法或深度学习的参数调优算法。5.如权利要求1所述的方法,其特征在于,结合所述相关数据进行参数优化,以获取潜在的最优参数组合,包括:设定参数优化目标;所述参数优化目标包括:性能相关指标或者能耗相关指标;基于所述优化算法和所述相关数据,最优化所述参数优化目标,以得到潜在的最优参数组合。6.如权利要求1

5项所述的方法,其特征在于,所述方法还包括:获取所述调优对象所在节点或容器维度中的工作负载;其中,所述工作负载包括:运行在容器中的任务或程序;将所述参数调优结果以及对应的工作负载,存入专家知识库,作为经验参数用于之后的静态调优任务;其中,所述专家知识库还包括:基于人工经验的专家知识。7.一种软件参数调优方法,应用于一容器管理平台,其特征在于,所述方法包括:接收静态调优任务;所述静态调优任务包括:调优对象,所述调优对象类型为包括多个pod的K8s资源类型;收集所述调优对象的工作负载画像;将所述工作负载画像输入工作负载分类模型,以识别所述调优对象对应的工作负载;在获取所述调优对象对应的工作负载的情况下,基于权利要求6中所述的专家知识库,获取所述参数调优结果;在未获取所述调优对象对应的工作负载的情况下,基于所述工作负载画像更新所述工作负载分类模型,根据更新后的工作负载分类模型得到所述调优对象对应的工作负载,并基于权利要求6中所述的专家知识库,获取所述参数调优结果。
8.一种容器管理平台,其特征在于,所述容器管理平台包括:任务接收模块,用于接收调优任务;其中,所述调优任务包括:动态调优任务或静态调优任务,所述动态调优任务包括:调优对象和调优目标,所述调优对象类型为包括多个pod的K8s资源类型,所述静态调优任务包括:调优对象;数据收集模块,用于收集所述调优对象所在节点或...

【专利技术属性】
技术研发人员:侯朋朋张开创马成宇何家泰于佳耕武延军
申请(专利权)人:中国科学院软件研究所
类型:发明
国别省市:

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

1