CN115629860A - 软件参数调优方法、容器管理平台、存储介质及系统 - Google Patents
软件参数调优方法、容器管理平台、存储介质及系统 Download PDFInfo
- Publication number
- CN115629860A CN115629860A CN202211298016.6A CN202211298016A CN115629860A CN 115629860 A CN115629860 A CN 115629860A CN 202211298016 A CN202211298016 A CN 202211298016A CN 115629860 A CN115629860 A CN 115629860A
- Authority
- CN
- China
- Prior art keywords
- tuning
- parameter
- task
- workload
- optimization
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种软件参数调优方法、容器管理平台、存储介质及系统,所述容器管理平台包括:任务接收模块、数据收集模块、在线优化模块、参数更新模块、离线优化模块和专家知识库。该容器管理平台可以针对动态调优任务或静态调优任务的需要,提供最优算法解决方案或查表解决方案,在保障应用程序服务感知不到中断的情况下,使用新的调优过的容器替换原有容器的方式,对应用程序在启动时设定的初始化参数进行用户无感的更新。
Description
技术领域
本发明属于计算机软件技术领域,尤其涉及一种软件参数调优方法、容器管理平台、存储介质及系统。
背景技术
Kubernetes又称为K8s,当前K8s在产业界的应用越来越广泛,据2020年CNCF中国云原生调查报告显示在2020年生产环境中使用K8s的比例已有82%,且这一数字仍在快速增长,K8s已成为不可忽视的基础软件。与此同时K8s配置不当将会带来资源闲置、成本增加,68%的受访者表示业务迁移到K8s后计算资源成本有所增加,36%的受访者表示成本飙升超过20%,腾讯云对1000多云客户进行资源利用情况分析,抽样超过10000计算节点,发现资源普遍利用不充分;麦肯锡报告表明企业云计算预算平均超过了23%,并且浪费了30%的支出;《2021年中国云优化调查报告》显示63%的企业表示需要对公司云计算的性能进行优化。
对K8s等容器管理平台进行参数调优有利于提高资源利用率、降低企业成本。然而当前对于类似K8s这样的复杂系统软件的参数进行调优难度很大,主要有以下几个原因:
(1)当前上层应用软件应用场景多元化。当前应用场景广泛、应用软件多元,典型应用如购物、微博、短视频、聊天应用、支付软件等,这些应用间特征差异较大,每个应用均有自己应用特点。
(2)硬件设备差异很大。硬件涉及到CPU、BIOS、网卡、磁盘等,这些硬件的差异也会给参数调优带来挑战,如磁盘可细分为机械磁盘和SSD磁盘,不同的物理特性导致对上层磁盘调度策略有性能影响。
(3)软硬件堆栈复杂。当前典型软件栈如下:应用层软件(如购物app)、中间件(包括消息通道等组件)、数据库、运行时环境、K8s、操作系统、CPU。用户很难对于这么多层的软件相关的特性和参数都有深入理解。
(4)K8s等容器管理平台自带策略复杂。以K8s为例,K8s中的典型策略包括调度策略、亲和性机制、弹性伸缩、资源配置策略等,这些策略均涉及到对很多参数的设置,需要对相关策略有深入理解才能正确对相关参数进行正确设置。
(5)很难有普世的、统一的参数优化方案。由于前文所述,应用软件多元化、硬件环境差异、软硬件堆栈复杂、软件版本差异等原因,导致技术经验丰富的技术专家也很难对整个软件栈涉及到的参数进行系统调优。
(6)很难对所有应用场景进行预先调优。由于前文所述,应用软件的多元、硬件环境差异、软硬件堆栈复杂等原因,导致实际应用中由软件堆栈和硬件设备组成的搜索空间巨大,在实验室很难遍历完所有场景,很难对所有的场景进行预先调优。
基于以上原因,我们将基于容器管理平台进行软件参数调优从而提高系统性能、提高资源利用率、降低能耗、节省成本。
发明内容
本发明旨在提出一种软件参数调优方法、容器管理平台、存储介质及系统,所述方法对部署于容器集群中的应用进行调优,可以基于性能目标或者能耗目标进行调优。
本发明的技术内容包括:
一种软件参数调优方法,应用于一容器管理平台,所述方法包括:
接收动态调优任务;所述动态调优任务包括:调优对象和调优目标,所述调优对象类型为包括多个pod的K8s资源类型;
收集所述调优对象所在节点或容器维度中相关的运行数据;
基于所述调优目标,启动在线参数优化任务;其中,所述在线参数优化任务包含一迭代式的参数优化算法;
结合所述相关数据对K8s资源进行参数优化,通过参数优化算法,获取潜在的最优参数组合,并将所述潜在的最优参数组合逐个的更新到所述调优对象的各个维度中;
测试所述潜在的最优参数组合的性能表现,并在不满足所述调优目标的情况下,将所述潜在的最优参数组合的性能表现返回至所述参数优化算法供下次预测潜在的最优参数组合使用,在所述性能表现满足所述调用目标的情况下,将所述潜在的最优参数组合作为参数调优结果。
进一步地,所述容器管理平台包括:Kubernetes平台、Mesos平台或Docker Swarm平台。
进一步地,所述最优参数组合包括:操作系统维度参数、容器管理平台维度参数、运行时环境维度参数和/或应用程序维度参数。
进一步地,所述优化算法包括:暴力枚举搜索算法、基于启发式搜索算法、基于贝叶斯的调优算法、基于机器学习的参数调优算法或深度学习的参数调优算法。
进一步地,结合所述相关数据进行参数优化,以获取潜在的最优参数组合,包括:
设定参数优化目标;所述参数优化目标包括:性能相关指标或者能耗相关指标;
基于所述优化算法和所述相关数据,最优化所述参数优化目标,以得到潜在的最优参数组合。
进一步地,所述方法还包括:
获取所述调优对象所在节点或容器维度中的工作负载;其中,所述工作负载包括:运行在容器中的任务或程序;
将所述参数调优结果以及对应的工作负载,存入专家知识库,作为经验参数用于之后的静态调优任务;其中,所述专家知识库还包括:基于人工经验的专家知识。
一种软件参数调优方法,应用于一容器管理平台,所述方法包括:
接收静态调优任务;所述静态调优任务包括:调优对象,所述调优对象类型为包括多个pod的K8s资源类型;
收集所述调优对象的工作负载画像;
将所述工作负载画像输入工作负载分类模型,以识别所述调优对象对应的工作负载;
在获取所述调优对象对应的工作负载的情况下,基于权利要求6中所述的专家知识库,获取所述参数调优结果;
在未获取所述调优对象对应的工作负载的情况下,基于所述工作负载画像更新所述工作负载分类模型,根据更新后的工作负载分类模型得到所述调优对象对应的工作负载,并基于权利要求6中所述的专家知识库,获取所述参数调优结果。
一种容器管理平台,所述容器管理平台包括:
任务接收模块,用于接收调优任务;其中,所述调优任务包括:动态调优任务或静态调优任务,所述动态调优任务包括:调优对象和调优目标,所述调优对象类型为包括多个pod的K8s资源类型,所述静态调优任务包括:调优对象;
数据收集模块,用于收集所述调优对象所在节点或容器维度中相关的运行数据;
在线优化模块,用于在所述调优任务为动态调优任务的情况下,基于所述调优目标,启动在线参数优化任务;结合所述相关数据对K8s资源进行参数优化,通过参数优化算法,获取潜在的最优参数组合;测试所述潜在的最优参数组合的性能表现,并在不满足所述调优目标的情况下,将所述潜在的最优参数组合的性能表现返回至所述参数优化算法供下次预测潜在的最优参数组合使用,在所述性能表现满足所述调用目标的情况下,将所述潜在的最优参数组合作为参数调优结果;其中,所述在线参数优化任务包含一迭代式的参数优化算法;
参数更新模块,用于将最优参数组合逐个的更新到所述调优对象的各个维度中;
专家知识库,用于存储基于人工经验的专家知识和所述在线优化模块参数调用结果;
离线优化模块,用于在所述调优任务为静态调优任务的情况下,收集所述调优对象的工作负载画像;将所述工作负载画像输入工作负载分类模型,以识别所述调优对象对应的工作负载;在获取所述调优对象对应的工作负载的情况下,基于所述专家知识库,获取所述参数调优结果;在未获取所述调优对象对应的工作负载的情况下,基于所述工作负载画像更新所述工作负载分类模型,根据更新后的工作负载分类模型得到所述调优对象对应的工作负载,并基于所述专家知识库,获取所述参数调优结果。
一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一所述方法。
一种软件参数调优系统,其特征在于,包括:
客户端,用于生成调优任务;其中,所述调优任务包括:动态调优任务或静态调优任务,所述动态调优任务包括:调优对象和调优目标,所述调优对象类型为包括多个pod的K8s资源类型,所述静态调优任务包括:调优对象;
容器管理平台,用于:
接收生成调优任务;
在所述调优任务为动态调优任务的情况下,
收集所述调优对象所在节点或容器维度中相关的运行数据;
基于所述调优目标,启动在线参数优化任务;其中,所述在线参数优化任务包含一迭代式的参数优化算法;
结合所述相关数据对K8s资源进行参数优化,通过参数优化算法,获取潜在的最优参数组合,并将所述潜在的最优参数组合逐个的更新到所述调优对象的各个维度中;
测试所述潜在的最优参数组合的性能表现,并在不满足所述调优目标的情况下,将所述潜在的最优参数组合的性能表现返回至所述参数优化算法供下次预测潜在的最优参数组合使用,在所述性能表现满足所述调用目标的情况下,将所述潜在的最优参数组合作为参数调优结果;
在所述调优任务为静态调优任务的情况下,
收集所述调优对象的工作负载画像;
将所述工作负载画像输入工作负载分类模型,以识别所述调优对象对应的工作负载;
在获取所述调优对象对应的工作负载的情况下,基于专家知识库,获取所述参数调优结果;其中,所述专家知识库中存储基于人工经验的专家知识和基于动态调优任务得到的参数调用结果;
在未获取所述调优对象对应的工作负载的情况下,基于所述工作负载画像更新所述工作负载分类模型,根据更新后的工作负载分类模型得到所述调优对象对应的工作负载,并基于专家知识库,获取所述参数调优结果;
容器集群,用于提供各参数组合下的运行数据。
与现有技术相比,本发明的积极效果为:
(1)本发明的自动化的对容器管理平台(如K8s)资源进行性能调优;
(2)相比传统的人工调优,本发明自动化的对容器管理平台(如K8s)管理的程序参数进行调优,更加的高效;
(3)本发明的优化策略和容器管理平台的容器管理机制(如K8s的repliceset等机制)紧密绑定,对于容器管理平台进行深入优化;
(4)对于程序运行期间不可更新参数,传统调优方法无法在不重启程序的情况下对这些参数进行调优,而重启应用程序会导致相关服务的中断;本发明基于容器管理平台的容器管理机制(如K8s的Service等机制),可以在保障应用程序服务感知不到中断的情况下,使用新的调优过的容器替换原有容器的方式,对应用程序在启动时设定的初始化参数进行用户无感的更新。
附图说明
图1为本发明提出的基于容器管理平台的软件参数调优的系统架构图;
图2为本发明提出的基于容器管理平台的软件参数调优的在线优化模式的流程图;
图3为本发明提出的基于容器管理平台的软件参数调优的离线优化模式的流程图;
具体实施方式
下面通过实例对本发明作进一步的说明,但不以任何方式限制本发明的范围。
本发明提出的软件参数调优方法,应用于容器管理平台。其中容器管理平台是指对容器进行管理和编排的平台工具,包括但不限于Kubernetes、Mesos、Docker Swarm等平台。本发明后续将以Kubernetes为例进行描述说明。
本发明的软件参数调优方法主要有两种调优模式,第一种为在线调优模式,第二种为离线调优模式。在线调优模式,通过参数优化算法,实时收集工作负载的运行数据,迭代地获取到最优参数组合。离线调优模式,使用分类算法,识别待优化对象的工作负载,从专家知识库来获取到对应工作负载的最优参数组合。
本发明的整体架构图如图1所示,主要包括客户端、服务端以及算法服务。客户端主要包括任务定义模块和命令行模块,用于定义调优任务、发送调优请求给服务端及其他辅助功能。服务端主要包括在线优化模块、离线优化模块、参数更新模块以及数据收集模块,主要作用是,接收调优任务、启动调优任务、数据收集以及进行参数更新等。算法服务主要包括参数优化模块、场景分类模块和参数选择模块。主要做如下工作:启动参数调优任务、工作负载分类、参数重要性选择等。具体描述如下:
一、客户端
任务定义模块,通过文件定义优化任务,仅在线调优模式下使用,用于明确调优对象和调优目标。对于调优对象,定义待调优参数类型、参数获取方法、参数修改方法、参数取值范围、参数保存路径等。对于调优目标,定义特定benchmark场景、特定场景下的性能指标。同时指定调优使用到的调优算法、调优迭代结束条件等。
命令行模块,是为用户提供的启动优化任务的接口。包括启动动态调优任务、静态调优任务、添加静态调优场景、更新分类模型等,也包括一些其他的用户接口功能。
二、服务端
在线优化模块,用于启动在线优化任务。从客户端接收到优化任务请求后,触发数据收集部署模块,部署数据收集模块到优化目标所在的节点,发送请求启动参数优化任务到算法服务,并根据优化任务定义的优化算法,启动迭代的参数优化算法。经过一定的迭代后,获取到满足优化目标的最优参数组合。
离线优化模块,用于启动离线优化任务。从客户端接收到优化任务请求后,触发数据收集部署模块,部署数据收集模块到优化目标所在节点。收集优化目标的运行数据,并形成工作负载的画像,用分类模型进行工作负载分类。最后,从专家知识库获取匹配到的工作负载的最优参数组合。
参数更新模块,用于优化对象的参数更新。可更新参数包括但不限于节点参数、容器参数、运行时环境参数、软件应用参数等。具体地,
节点参数的修改方法包括但不限于:主节点发送参数更新指令给从节点,从节点自行进行参数更新。
容器中内核参数的修改方法包括但不限于:(1)直接在运行的容器中,修改内核参数;(2)通过挂载容器的内核参数配置文件进行更新;(3)通过设置security_context参数,在需要修改参数时,修改security_context参数中的sysctls属性进行更新(4)在容器创建时,加入初始化容器(如k8s的initcontainer机制),通过初始化容器中完成相应的内核参数更新。(5)通过新的内核参数更新后的容器替换原来旧容器。
运行时环境参数的修改方法包括但不限于:(1)包含新参数的新容器替换老容器。如通过在容器管理单元(如K8s的pod)配置文件中设置环境属性(env)在该属性内定义运行时环境参数,然后更新容器管理单元。(2)在容器管理单元环境中运行命令,直接修改运行时环境参数。
应用参数的修改方法包括但不限于:(1)通过挂载容器的应用参数配置文件进行更新;(2)直接在运行的容器中,修改应用参数。(3)通过新的内核参数更新后的容器替换原来旧容器。
数据收集部署模块,部署收集工作负载的运行数据。收集的数据包括但不限于软件的应用参数、运行时环境参数、容器内核参数以及相关应用的性能指标,性能指标可以是CPU、内存、存储、网络等,也可以是应用本身的工作负载性能。其中,数据收集模块的底层工具包括系统命令(如perf等)、基于ebpf的工作性能和系统负载工具以及自定义的一些工作负载脚本等。
专家知识库,存储具体工作负载的最优参数。可以是业内专业人员的经验参数组合,也可以从历史的调优经验中沉淀出来的最优参数组合。
三、算法服务
参数优化模块,在线优化模式中,迭代的获取最优参数组合。主要是一些参数优化算法是的集合。包括但不限于,基于暴力枚举搜索算法、基于启发式搜索算法、基于贝叶斯的调优算法、基于机器学习和深度学习的参数调优算法等。
场景分类模块,离线优化模式中,生成待优化对象的工作负载的画像,并对工作负载进行场景分类。是一些场景分类的算法集合。包括但不限于,基于机器学习和深度学习的场景分类算法。
参数选择模块,对待优化的参数进行参数选择。只对重要参数进行调优,从而减少调优复杂度。是可选模块。
本发明的一个显著特征是针对程序运行期间不可修改参数可以实现在用户无感知的情况下对这些参数进行更新调优,从而进行优化。一般程序的参数可以分为两类:(1)运行期间不可修改参数,这些参数一般在程序启动时完成初始化。如jvm的最大可用内存、每个线程堆栈大小、垃圾回收相关参数等,这些参数在jvm运行时初始化且在运行期间不能修改;(2)运行时可更新参数,即在程序运行期间可修改参数。当前传统的参数调优工具主要针对第二类参数,即运行时可更新参数的调优,传统参数调优工具对第一类参数进行调优的话需要重新启动程序以使参数生效,而重启程序的过程会导致应用程序对外提供的服务中断。在容器管理平台下本发明可在保障程序对外服务不中断的情况下对第一类参数进行调优。本发明基于容器管理平台机制(如K8s的service机制)先创建一个新的容器并在该容器中创建调优过参数的程序,然后使用该新容器替换原来的老的程序,借助容器管理平台本身的机制(如k8s的service机制)可将后续应用请求映射到新的容器上面进行处理,然后淘汰掉老的程序,在整个过程中对于用户而言感觉不到程序服务的中断。
如图2所示为动态调优模式的流程图。具体步骤如下:
步骤1,通过文件定义调优任务,明确调优对象和调优目标;调优对象类型为包括多个pod的K8s资源类型,以到达无感知的调优目标。
步骤2,依据调优任务定义文件,启动调优任务;基于步骤1定义的调优任务文件,启动调优任务。
步骤3,部署数据收集模块,收集K8s资源运行相关数据;对要调优的资源所在的节点或容器维度部署数据收集模块,收集相关的数据。
步骤4,启动参数优化任务,迭代地进行优化参数组合;基于步骤1定义的调优目标,启动参数优化任务,绑定要优化的资源,启动特定的调优算法。
步骤5,通过参数优化算法,推荐潜在的最优参数组合;基于步骤4中启动的调优算法,结合将数据收集的模块收集到的相关信息,推荐潜在的最优参数组合,并在后续中测试该组参数的性能表现。
步骤6,基于步骤5推荐的潜在的最优参数组合,通过参数更新模块,更新K8s资源参数;通过逐个的更新资源中每个pod的参数,达到无感知的参数更新。
步骤7,测试推荐的参数组合性能表现,并反馈给参数优化算法;基于步骤1中定义的调优目标,重现定义的特定场景,并获取定义的性能指标。获取到参数组合的性能指标后,反馈给参数优化算法,用于后续的优化迭代。
步骤8,在经过若干次的迭代,满足结束条件后,结束参数优化算法,获取最优参数组合;若干次的迭代以后,对于性能指标表现最好的参数组合作为最优参数组合,并作为结果进行返回。
步骤9,为K8s资源设置最优参数组合;在步骤(8)后,会获取到最优参数组合。为要优化的K8s资源的所有维度更新参数为最优参数组合。
如图3所示为静态调优模式的流程图。具体步骤如下:
步骤1,定义优化对象。通过命令行模块,在静态优化模式下,定义需要优化的对象。优化对象类型为包括多个pod的K8s资源类型,以到达无感知的调优目标。
步骤2,启动离线优化任务。在步骤1中定义优化对象后,通过命令行模块提交离线优化任务给服务端的离线优化模块。
步骤3,识别工作负载。提交离线优化任务以后,离线优化模块会调用算法服务中的工作负载分类模块进行工作负载分类。
步骤4,如果步骤3中,能够识别优化对象的工作负载。从专家知识库中,获取到最优参数组合。最后,通过参数更新模块,通过逐个的更新pod中的参数,无感知的更新优化对象的参数组合。
步骤5,如果步骤4中,未能够识别优化对象的工作负载。可以用收集到的工作负载画像数据更新算法服务中的工作负载分类模块中相关的分类算法模型以及相应的专家知识库中的最优参数组合。
一示例中,假设有一个java程序运行在jvm环境中,当前需要对于jvm运行时环境的相关参数如jvm的最大可用内存、每个线程堆栈大小、垃圾回收相关参数等进行调优的过程如下:
步骤1,通过文件定义调优任务,明确调优对象为jvm和调优目标为提高性能;
步骤2,启动jvm调优任务;
步骤3,部署数据收集模块,收集K8s资源运行相关数据;对jvm所在的节点或容器维度部署数据收集模块,收集相关的数据。
步骤4,基于jvm调优目标,启动参数优化任务,启动特定调优算法。
步骤5,通过参数优化算法,推荐潜在的最优参数组合;基于步骤4中启动的调优算法,结合将数据收集的模块收集到的相关信息,推荐潜在的最优参数组合,并在后续中测试该组参数的性能表现。
步骤6,基于步骤5推荐的潜在的最优参数组合,更新K8s资源参数,如通过包含新参数的容器替换旧容器的方式对jvm参数进行更新;
步骤7,测试推荐的参数组合性能表现,并反馈给参数优化算法,用于后续的优化迭代。
步骤8,在经过若干次的迭代,满足结束条件后,结束参数优化算法,获取最优jvm参数组合;
步骤9,为jvm设置最优参数组合,如通过包含新参数的容器替换旧容器的方式对最优jvm参数组合进行更新。
综上所述,与相关技术的参数调优方法的目标对象不同,本发明主要针对容器集群中的程序进行性能或者能耗调优,充分利用容器管理平台的自身特性,在用户无感知的情况下,完成对软件应用、运行时环境、容器管理平台、操作系统内核等多维度参数进行调优,从而优化整个系统的性能和能耗。本发明可以在服务不中断的情况下,借助容器管理平台的机制(如Kubernetes的service和pod相关机制)对程序运行时不可修改参数进行调优。
以上所述仅为本发明的较佳实施方式而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
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资源类型,所述静态调优任务包括:调优对象;
数据收集模块,用于收集所述调优对象所在节点或容器维度中相关的运行数据;
在线优化模块,用于在所述调优任务为动态调优任务的情况下,基于所述调优目标,启动在线参数优化任务;结合所述相关数据对K8s资源进行参数优化,通过参数优化算法,获取潜在的最优参数组合;测试所述潜在的最优参数组合的性能表现,并在不满足所述调优目标的情况下,将所述潜在的最优参数组合的性能表现返回至所述参数优化算法供下次预测潜在的最优参数组合使用,在所述性能表现满足所述调用目标的情况下,将所述潜在的最优参数组合作为参数调优结果;其中,所述在线参数优化任务包含一迭代式的参数优化算法;
参数更新模块,用于将最优参数组合逐个的更新到所述调优对象的各个维度中;
专家知识库,用于存储基于人工经验的专家知识和所述在线优化模块参数调用结果;
离线优化模块,用于在所述调优任务为静态调优任务的情况下,收集所述调优对象的工作负载画像;将所述工作负载画像输入工作负载分类模型,以识别所述调优对象对应的工作负载;在获取所述调优对象对应的工作负载的情况下,基于所述专家知识库,获取所述参数调优结果;在未获取所述调优对象对应的工作负载的情况下,基于所述工作负载画像更新所述工作负载分类模型,根据更新后的工作负载分类模型得到所述调优对象对应的工作负载,并基于所述专家知识库,获取所述参数调优结果。
9.一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行权利要求1-7中任一所述方法。
10.一种软件参数调优系统,其特征在于,包括:
客户端,用于生成调优任务;其中,所述调优任务包括:动态调优任务或静态调优任务,所述动态调优任务包括:调优对象和调优目标,所述调优对象类型为包括多个pod的K8s资源类型,所述静态调优任务包括:调优对象;
容器管理平台,用于:
接收生成调优任务;
在所述调优任务为动态调优任务的情况下,
收集所述调优对象所在节点或容器维度中相关的运行数据;
基于所述调优目标,启动在线参数优化任务;其中,所述在线参数优化任务包含一迭代式的参数优化算法;
结合所述相关数据对K8s资源进行参数优化,通过参数优化算法,获取潜在的最优参数组合,并将所述潜在的最优参数组合逐个的更新到所述调优对象的各个维度中;
测试所述潜在的最优参数组合的性能表现,并在不满足所述调优目标的情况下,将所述潜在的最优参数组合的性能表现返回至所述参数优化算法供下次预测潜在的最优参数组合使用,在所述性能表现满足所述调用目标的情况下,将所述潜在的最优参数组合作为参数调优结果;
在所述调优任务为静态调优任务的情况下,
收集所述调优对象的工作负载画像;
将所述工作负载画像输入工作负载分类模型,以识别所述调优对象对应的工作负载;
在获取所述调优对象对应的工作负载的情况下,基于专家知识库,获取所述参数调优结果;其中,所述专家知识库中存储基于人工经验的专家知识和基于动态调优任务得到的参数调用结果;
在未获取所述调优对象对应的工作负载的情况下,基于所述工作负载画像更新所述工作负载分类模型,根据更新后的工作负载分类模型得到所述调优对象对应的工作负载,并基于专家知识库,获取所述参数调优结果;
容器集群,用于提供各参数组合下的运行数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211298016.6A CN115629860A (zh) | 2022-10-21 | 2022-10-21 | 软件参数调优方法、容器管理平台、存储介质及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211298016.6A CN115629860A (zh) | 2022-10-21 | 2022-10-21 | 软件参数调优方法、容器管理平台、存储介质及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115629860A true CN115629860A (zh) | 2023-01-20 |
Family
ID=84906564
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211298016.6A Pending CN115629860A (zh) | 2022-10-21 | 2022-10-21 | 软件参数调优方法、容器管理平台、存储介质及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115629860A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117648063A (zh) * | 2024-01-29 | 2024-03-05 | 南京功夫豆信息科技有限公司 | 一种基于大数据分析的智能运营管理系统及方法 |
-
2022
- 2022-10-21 CN CN202211298016.6A patent/CN115629860A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117648063A (zh) * | 2024-01-29 | 2024-03-05 | 南京功夫豆信息科技有限公司 | 一种基于大数据分析的智能运营管理系统及方法 |
CN117648063B (zh) * | 2024-01-29 | 2024-04-05 | 南京功夫豆信息科技有限公司 | 一种基于大数据分析的智能运营管理系统及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11403297B2 (en) | Selecting resource configurations for query execution | |
US11422853B2 (en) | Dynamic tree determination for data processing | |
EP3047376B1 (en) | Type-to-type analysis for cloud computing technical components | |
US9778967B2 (en) | Sophisticated run-time system for graph processing | |
US8738645B1 (en) | Parallel processing framework | |
CN104050042B (zh) | Etl作业的资源分配方法及装置 | |
US9304835B1 (en) | Optimized system for analytics (graphs and sparse matrices) operations | |
CN101039330A (zh) | 在移动应用程序环境中使用的产品 | |
CN109740765B (zh) | 一种基于亚马逊网络服务器的机器学习系统搭建方法 | |
US8849947B1 (en) | IT discovery of virtualized environments by scanning VM files and images | |
US10970113B1 (en) | Systems and methods for orchestrating seamless, distributed, and stateful high performance computing | |
CN112698952A (zh) | 计算资源统一管理方法、装置、计算机设备及存储介质 | |
CN111782452A (zh) | 接口对比测试的方法、系统、设备和介质 | |
CN115629860A (zh) | 软件参数调优方法、容器管理平台、存储介质及系统 | |
US11138215B2 (en) | Method and system for implementing parallel database queries | |
CN114237892A (zh) | 键值数据的处理方法、装置、电子设备及存储介质 | |
CN1650255A (zh) | 移动应用环境 | |
US10785102B2 (en) | Modifying distributed application based on cloud diagnostic data | |
Wu et al. | Heterogeneous virtual machine consolidation using an improved grouping genetic algorithm | |
US8650571B2 (en) | Scheduling data analysis operations in a computer system | |
US20060031194A1 (en) | Decision support implementation for workflow applications | |
Koutsovasilis et al. | A holistic approach to data access for cloud-native analytics and machine learning | |
CN111782363A (zh) | 一种支持多业务场景调用的方法和流程系统 | |
CN111538491A (zh) | 数据事件处理方法、装置、设备和存储介质 | |
CN116225606A (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 |