KeenTune—智能化调优&容量评估

本文涉及的产品
RDS DuckDB + QuickBI 企业套餐,8核32GB + QuickBI 专业版
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
RDS Agent(兼容OpenClaw),2核4GB
简介: 阿里QA导读:亲爱的小伙伴们,还记得上个月圆满落幕的TICA2022大会吗?应大家要求,我们将为大家深入解读一些Topic。今天的文章来自TICA大数据&智能化分会场,读完后,你对KeenTune(轻豚)这款优秀的智能优化产品会有更深入的了解。

一、背景介绍

I 性能调优&容量评估中遇到的问题


在业务的性能调优中,我们往往会遇到下面三个方面的问题:

  1. 操作系统的软硬件配置过于繁杂。无论是应用内核参数、系统服务还是应用配置,都有成百上千的参数,而且参数之间相互,在调优的时候往往存在跷跷板现象,如何管理如此大量的领域知识,是非常困难的事情。
  2. 人力、时间成本高。做一次有效的全栈调优,往往需要把多个领域的专家集中起来进行一次1-3个月的集中攻关,在人力和时间成本上是非常大的代价。
  3. 专家知识难以固化复用。即使是我们在一个场景上把所有专家集中起来做了一次非常好的攻关,专家知识还是非常难以固化下来并在下个应用扩展使用起来,到了下一次调优场景,还是几乎要重头再来。
    

针对上述问题我们该如何求解呢?

  • 如果专家知识非常难以固化,那我们为什么不建一个专家知识库平台来把专家知识固化起来呢?
  • 如果我们的配置关系非常复杂,投入时间和人力非常高,那我们为什么不把AI算法引入进来,让人工智能帮我们做一些事情。
  • image.png
  • 在容量评估测试中,我们也会遇到类似的问题:Benchmark的参数众多,哪些参数是需要使用的,哪些其实无关紧要?需要使用的参数,如何设置它的值才能保证给出的压力是足够的,从而不会因为压力不足而无法验证到物理机/系统真实的容量呢?

I 可行的解决途径——KeenTune的缘起


从上个部分中,我们其实可以看出求解的方式,一个是需要专家知识的固化平台,一个是可以考虑引入AI算法来解决人工无法有效探索参数取值空间的问题。这也就是KeenTune的起源,其主要完成两大部分的功能,一方面将人工的经验固化下来,形成能够在业务上一键调优的专家知识库——也就是静态调优;另一方面,在有了需要调优的参数及其取值空间的概要知识的情况下,可以使用AI算法来进行最优取值搜索。



这是KeenTune产品开始研发时最朴素的想法,后面也因为业务的实际需要,引入了参数可解释性方向的算法,来识别出来哪些参数对结果真实有影响,其最优取值范围是什么,从而指导进行人工解释和进一步研究;同时,也引入了高保真方向的算法来规避Benchmark/业务环境的波动对调优效果的准确性带来的影响;另外,也针对“在不增加时延的情况下,提升吞吐量”这样的带控制条件的实际调优需求,引入了多目标调优方向的算法。

image.png

请注意,KeenTune提供的动静态协同调优的能力,可以协助实际业务解决如下问题:


  1. POC小集群调优到线上大规模集群调优,比如:POC小集群动态调优完后,调优经验固化成静态调优,直接大规模部署到线上;
  2. 相似场景的精细化调优,比如:调优过mysql后,使用mysql的固化出的静态专家知识库,转化成动态进行精细化调优。

在算法创新的同时,基于阿里业务自身的特点,KeenTune采用了高度模块化的分布式部署的方式,在业务端只需要部署轻量的agent(keentune-target),管控调度模块keentuned,算法模块keentune-brain,Benchmark管控模块keentune-bench,前端管控与算法可视化模块keentune-ui都是可以部署在网络可连通的其他环境上,因此,对业务的适配度非常高。

image.png

二、创新点


KeenTune项目目前已经提交13篇专利,其中9篇已提交专利局;另外,还有3篇正在提交流程中。A类论文发表1篇(FSE2022:KeenTune: Inteligent Parameter Interpretability and Tuning Tool for Linux System),1篇在投A类论文。

本章节的各小节中,后续也会简单介绍一下KeenTune的创新点。

I 多领域算法的集成


KeenTune主要使用的算法为Hyper Parameter Tuning方向,目标是在参数空间上寻找最优组合。不过,在实际应用落地中,发现在实际应用中会存在很多问题:


  1. 在高维空间上,无论是传统的Bayes,还是更新的HORD、EPTE等算法,都无法达到工程需求的快速收敛(比如:100个连续/分散取值的参数,在100轮达成收敛目标),而一般Benchmark的执行时间都会在几分钟甚至几小时,每一轮执行代价都非常大,因此,降低轮次成为首要问题。
  2. 非单一目标调优,在实际中,往往是“不增加时延的情况下提升吞吐”、“不仅avg_latency降低,还要求99_latency、95_latency都降低”
  3. 无论是Benchmark还是业务环境,都存在抖动的问题,如何识别出环境抖动并且尽量消除,是个问题。

为应对这些问题,KeenTune集成了多个领域的算法来使参数调优在实际工程中能够产生效果:

  • 敏感参数可解释性方向算法:从众多的参数中识别出真正对结果有影响的TOP参数,并且能够给出其最优取值的范围,给出参考。一方面,可以成为参数调优算法的输入,大大降低参数空间,从而实现快速找到优化点的目标。另一方面,也可以为人工提炼专家静态知识库并进行领域分析提供依据。
  • 多目标调优算法:KeenTune自研的带有可控制条件的多目标调优,有效地解决了工程中遇到的各种多个评价指标同时调优,甚至是带有强制限制条件的调优问题。
  • 高保真算法:能够通过评估环境的波动情况,调整每轮运行的次数,从而保证调优效果。另外,结合early stop机制,能够智能化控制实际的运行效率,从而大大提升对于每次调优的收敛效率。
  • image.png

I 自研参数调优算法BGCS


为了实现高效可扩展的参数调优算法,BGCS参考了HORD框架进行了改进,使用CNN/MLP模型取代RBF模型作为代理模型,以提高代理模型预测准确性。


在HORD算法的DYCORS过程中,通过两个变量φδ来控制变异的过程,前者控制的是给坐标的某个维度进行变异的概率,后者决定了增加变异的幅度。在调优过程中,φ随着调优的进行递减,而δ根据每一轮是否发现了新的最优参数进行动态调整。


虽然有两个变量干预参数的变异,但HORD算法的参数变异过程整体来说是随机的,在这个过程中会产生大量无意义的参数配置。我们针对这个过程加入性能梯度对参数编译的过程进行指导,避免盲目随机地生成大量参数配置。同时使用梯度对参数维度进行排序,优先针对性能梯度较高的参数进行变异,同时保持性能梯度低参数的取值,降低代理模型预测误差的干扰。

I 自研参数可解释性算法XSen


为了达成算法能够正确的找到真正对结果产生影响的参数,PIA将多种不同的敏感参数领域算法进行融合,根据实际情况使用。下图中列出了PIA的框架,主要是分为analyzer和aggregator。


Analyzer分为mutual information analyzer、linear analyzer、non-linear analyzer三种。Non-linear analyzer分为两种:DNN模型、树形模型,linear analyzer使用线性模型。在工程验证中,高维度non-linear analyzer的准确度更高,但是运行时间较久;linear analyzer运行时间在1s内,不过准确度相对不高。mutual information analyzer捕捉线性和非线性信息,通过互信息识别来识别敏感参数。


三、应用实践


I KeenTune在Linux全栈性能调优中的实践


KeenTune不仅在算法层面上实现了对kernel、environment configuration、runtime、compiler、application的多个层级的参数的动态算法调优,还积累了包括多层级的人工经验。目前,在云场景、云原生场景、编译器场景等多个合作项目中达成了调优目标,并且在社区中与统信、中兴、intel等SIG伙伴进行相关共建。

image.png

1. 专家一键式调优 –MySQL的竞分打榜


项目背景

某商业打榜

调优目标

AnolisOS提供自研性能调优工具能力,主流应用(MySQL)调优能力不低于友商

调优效果

MySQL的TPCC跑分在一键式专家调优后,相比初始安装性能提升10倍+

image.png

2. 敏感参数识别 –Nginx业务的参数可解释性


项目背景

调优参数多导致参数空间巨大,进而导致参数调优算法收敛慢(100参数收敛需要2000轮以上)

调优目标

116个联合参数(内核+ Nginx) 中对结果影响大的参数,目标20个以内

识别效果

TOP10参数对Nginx吞吐与时延的影响已经超过90%,降维后调优效果和全量保持一致


image.png

3. 智能参数调优 – 云原生业务Ingress-Nginx的全栈调优


项目背景

调优参数多导致参数空间巨大,进而导致参数调优算法收敛慢(100参数收敛需要500轮以上)

调优目标

  • 四个场景完整覆盖:HTTP短链接,HTTP长链接,HTTPs短链接,HTTPs长链接
  • 多领域参数协同调优:Sysctl,Nginx
  • 两个指标统一优化:Throughput提升的同时Latency下降

调优效果

  • 四个场景均达成了throughput提升的同时latency下降,有些场景最好效果达到40%+
  • 达成内核到应用的全栈调优,取得良好效果

image.png

4. 智能参数调优 – 云业务gcc编译参数调优

项目背景

gcc编译参数对应用性能影响较大,人工定义配置比较困难

调优目标

对云业务上TOP3的应用进行编译参数优化

调优效果

TOP3应用的主要指标均达成调优目标(目标1-3%)

image.png

I KeenTune在容量评估方向的实践


容量评估一直一直以来的痛点,就是Benchmark工具,大家都知道是什么,怎么用,不过却不一定能够用对。现在集团内的使用方式基本上还是人工定义性能测试用例,用这个结果直接评估是否正确,这就对Benchmark使用人员有着非常高的要求,怎么创建模型,定义Benchmark的各个参数是很有讲究的。往往存在直接从网上找到使用的命令行方式,修改修改参数,跑出来个结果就开始做分析。可是这样子就会有几个问题:


  1. 不少Benchmark的参数都非常多,比如:sysbench,那么,哪些参数是我们需要关注并且使用的呢?
  2. 在不同规格的机器上,都使用相同一套参数的测试用例,是不是不合适?换个说法,是否能够提供足够的压力用来提供容量评估?
  3. Benchmark本身的资源消耗怎样?会不会因为参数设置不当,或者环境选用不当,导致Benchmark自己占掉了所有资源而无法给出足够压力?这一点在wrk上非常明显。

为了解决这些问题,KeenTune的参数调优算法登场了,开始在看似不属于自己的领域,进行了一些还挺有效果的实践。

1. 基础Benchmark的压力管控 – iperf3网络带宽测试

项目背景

在与私有云团队进行容量评估的需求分析时,发现使用人工用例进行容量评估,往往存在因为Benchmark压力不足导致无法测出真实容量

压控目标

通过动态控压,评测出硬件和云上环境的真实容量

压控效果

  • 相比人工测试用例,评测出更真实的网络容量,高出10%+
  • image.png
  • 管控更多工具参数,并且能够提供最佳效果取值范围

说明:左边的两个图分别是iperf3进行接收端和发送端容量评估时,iperf3中参数真正对结果有效果的3个参数,右边的两列图,分别给出来了接收端和发送端在当前规格机器中这三个敏感参数的取值推荐。


image.png

2. 应用的调优、压力双控 – MySQL的调优与变压


项目背景:

进行应用的调优时,需要解决两部分问题:(1)Benchmark压力不足;(2)应用环境及自身调优

压控目标:

同时管控MySQL与Benchmark的参数,保证压力控制的状况下进行MySQL调优

image.png

四、价值体现


I 开源共建

KeenTune在2021年10月开源以来,成为OpenAnolis社区的标杆SIG,对整个开源生态有着重要的贡献。

  • 集团重点开源项目
  • 2021云栖大会官宣开源
  • 龙蜥社区标杆SIG
  • SIG深度合作单位:统信、中兴、intel……
  • OS2ATC、TICA等大会重点宣传项目
  • 龙蜥社区公众号等多次重点推荐项目

KeenTune的官方网站可以通过以下途径访问,非常欢迎感兴趣的同学加入:

I 商业落地

KeenTune已经在阿里云多个商业产品中落地:

  • 阿里云ECS购买页的“场景加速”

image.png

阿里云ACK大客户解决方案

Dragonwell的SPECjbb商业打榜

……

后续KeenTune也将持续服务开源社区和阿里云商业产品,助力AnolisOS/Alibaba Cloud Linux3成为稳定高效的国产操作系统。



相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
存储 缓存 弹性计算
阿里巴巴开源 容器镜像加速技术DADI 上手指南
阿里资深技术专家在阿里云开发者社区特别栏目《周二开源日》直播中,介绍刚于3月份开源的容器镜像加速器项目 DADI ,并带大家快速上手使用。本文为直播内容文字整理,看直播回放,请点击文首链接~
阿里巴巴开源 容器镜像加速技术DADI 上手指南
|
数据采集 自动驾驶 Java
PAI-TurboX:面向自动驾驶的训练推理加速框架
PAI-TurboX 为自动驾驶场景中的复杂数据预处理、离线大规模模型训练和实时智能驾驶推理,提供了全方位的加速解决方案。PAI-Notebook Gallery 提供PAI-TurboX 一键启动的 Notebook 最佳实践
|
9月前
|
SQL 人工智能 自然语言处理
阿里云 CIO 蒋林泉:AI 大模型时代,我们如何用 RIDE 实现 RaaS 的首次落地?
本文整理自阿里云智能集团 CIO 蒋林泉在 AICon 2025 深圳的演讲,分享了阿里云在大模型应用落地中的实践经验。通过多个数字人项目案例,探讨了企业在 AI 应用中的组织转型、业务识别、产品定义与工程落地等关键环节,并提出了 RIDE 方法论(重组、识别、定义、执行),助力企业实现 AI 有效落地。
|
机器学习/深度学习 人工智能 运维
使用AI进行系统调优:给系统装上“智能大脑”
使用AI进行系统调优:给系统装上“智能大脑”
682 10
|
消息中间件 存储 负载均衡
AI 推理场景的痛点和解决方案
一个典型的推理场景面临的问题可以概括为限流、负载均衡、异步化、数据管理、索引增强 5 个场景。通过云数据库 Tair 丰富的数据结构可以支撑这些场景,解决相关问题,本文我们会针对每个场景逐一说明。
4976 149
AI 推理场景的痛点和解决方案
|
9月前
|
数据采集 机器学习/深度学习 人工智能
2026年具身智能商业化浪潮前瞻:开发者工具与软件生态的万亿级掘金图谱
在具身智能执行器和传感器等硬件成本持续下降的背景下,真正驱动其大规模商业化爆发的,并非单一的硬件产品,而是其背后的软件与生态系统。正如互联网的价值最终体现在软件应用与服务上,具身智能的商业价值正在从传统的“硬件产品销售”转向“软件与服务订阅”。RaaS等创新商业模式的兴起,正是这一趋势的直接体现。这里我们将深入剖析2026年具身智能领域,特别是围绕数据采集、训练和任务开发的软件工具与服务所蕴藏的万亿级商业机遇,为开发者与投资者描绘一幅详尽的掘金图谱。
1279 0
|
弹性计算 运维 自然语言处理
开发者评测|操作系统智能助手OS Copilot
OS Copilot 是阿里云针对Linux操作系统推出的一款智能助手,它利用大模型技术提供自然语言问答、辅助命令执行和系统运维调优等功能,旨在提高Alibaba Cloud Linux的使用效率。OS Copilot在新人上手时并不简单,文档指引不够清晰,存在一些步骤无法顺利执行的问题,比如环境配置和命令执行。此外,产品目前仅支持Alibaba Cloud Linux,限制了其应用范围。虽然OS Copilot在一些基本功能上表现尚可,如解答问题和编写简单脚本,但在处理复杂任务或自动化运维时显得不足。总体而言,OS Copilot对新手和阿里云环境有一定的帮助,但功能和使用体验仍有改进空间。
|
人工智能 安全 PyTorch
SPDL:Meta AI 推出的开源高性能AI模型数据加载解决方案,兼容主流 AI 框架 PyTorch
SPDL是Meta AI推出的开源高性能AI模型数据加载解决方案,基于多线程技术和异步事件循环,提供高吞吐量、低资源占用的数据加载功能,支持分布式系统和主流AI框架PyTorch。
1013 10
SPDL:Meta AI 推出的开源高性能AI模型数据加载解决方案,兼容主流 AI 框架 PyTorch