A-Tune是一款基于AI的操作系统性能调优引擎。A-Tune利用AI技术,使操作系统“懂”业务,简化IT系统调优工作的同时,让应用程序发挥出色性能。
推荐人: 王建民 @jianminw jianmin@iscas.ac.cnmailto:jianmin@iscas.ac.cn openEuler TC成员 李次华 @Monday licihua@huawei.commailto:licihua@huawei.com openEuler A-Tune sig/Base-service sig等sig maintainer 谢志鹏 @xiezhipeng1 xiezhipeng1@huawei.commailto:xiezhipeng1@huawei.com openEuler A-Tune sig maintainer 项目名称:A-Tune 项目代码仓位置:https://gitee.com/openeuler/A-Tune 推荐获奖方向:综合奖
行业影响: 与OSV/ISV厂商、电信、金融等行业的top公司进行项目联创、技术分享,包括但不限于:
? 麒麟软件在openEuler应用迁移大赛基于A-Tune对etcd数据库进行性能优化,效果提升10%+(2020,linkhttps://mp.weixin.qq.com/s/t2O3nHjtvYOL56oZ3eh9_Q)
? 华云数据通过A-Tune对数据库场景进行性能调优,优化60%+,成果亮相openEuler summit(2020)
? 与移动苏研联创项目,基于MySQL应用场景进行性能调优,优化效果可达到30%+(2021,linkhttps://mp.weixin.qq.com/s/hA-ip5OlCEUFSr33_n7bDA)
? A-Tune与工商银行进行联创,项目中对MySQL/redis/宝兰德中间件性能进行调优,优化效果达到15%~140%,调优成果以代码提交的形式回馈社区(2022)
? 中移在线基于MySQL、Redis等场景性能提升10%+,服务器成本节省550w/年(2022) 同时,A-Tune也实现了功能落地:
? 落地华为ICT计算产品线性能分析平台,应用性能调优效率10倍提升(2021)
? 落地华为ICT公共开发部FAST性能工程平台, 调优时间从小时级->分钟级(2022)
? 作为性能优化工具落地移动操作系统(2023,进行中) 多次参与国内外分享会,包括但不限于:
? 2021 openeuler峰会:中国移动使用A-Tune进行MySQL性能调优https://v1.openeuler.org/zh/interaction/summit-list/summit2021/
? 2022 ow2con:A-tune (AI-based) - Donghui Chen at Huaweihttps://www.ow2con.org/view/2022/Videos
? 2023 FOSS ASIA:A-Tune: An Automatic Performance Tuning Tool Based on AI for Applications on OShttps://eventyay.com/e/7cfe0771/schedule?search=A-Tune
? 2023 AI大会「Night Of AI」:A-Tune:基于 AI 的操作系统性能调优引擎的实践分享https://mp.weixin.qq.com/s/Dz1oRBKT7j7e_xdQHOEl1Q
技术创新:
? 支持在线静态调优和离线动态调优两大核心功能,从0到1在openEuler社区进行孵化;
? 支持10+种调优算法(强化学习、贝叶斯优化、分类算法等);
? 调优场景涵盖数据库、web、大数据、HPC等10+种,相比于专家调优,调优时长从30天缩短为3天,在此基础上能进一步提升应用性能3%+;
? 已提交专利4篇(近一年3篇),正在撰写论文1篇。
社区活跃:
? 积极参与openEuler社区组织的会议、活动等10+次,包括openEuler summit、openEuler开发者大会、openEuler meetup、开源之夏、开源实习等;
? 软件功能演进过程中共计60+贡献者向代码仓提交并合入代码,其中外部贡献者50+,2023年新增外部开发者10+;
? 在2023鲲鹏创新大赛中,深信息同学基于A-Tune现有功能进行优化开发,获得openEuler赛道二等奖名次。
附: 软件介绍 近几十年来,随着硬件和应用软件的不断发展,Linux内核变得越来越复杂,整个Linux操作系统也变得越来越庞大。在openEuler开源操作系统中,使用sysctl -a | wc -l命令获取的内核参数总数就超过1000个;整个系统,从底层的CPU、加速器、网卡,到编译器、操作系统、中间件框架,再到上层应用,可调节的参数总数超过7000个,而大部分用户只使用了这些参数的默认配置,因此无法充分发挥系统的最佳性能。然而,在针对特定的应用场景进行参数优化时,存在以下几个方面的难题。 挑战1:参数数量多,且参数间存在依赖关系。 挑战2:上层应用系统种类众多,不同应用系统的参数不同。 挑战3:每个应用的负载复杂多样,不同负载对应的最优参数值也不同。 为了解决这些难题,openEuler提供了智能调优工具A-Tune,来帮助用户通过自动化手段对操作系统的参数进行调优。 A-Tune的整体架构如下图所示,其整体包含三部分:A-Tune客户端、A-Tune服务器端和A-Tune引擎端。 A-Tune客户端是一个命令行工具,用于接受用户提交的请求命令。 A-Tune服务器端需要部署在调优机器上,包含一个前端gRPC服务层和本地HTTP服务层。gRPC服务层负责优化库管理和对外提供调优服务(包括智能决策和自动调优)。本地HTTP服务层包括MPI(Model Plugin Interface)/CPI(Configurator Plugin Interface),它们负责与系统配置进行交互,完成数据采集和系统参数配置等任务。 A-Tune引擎端是一个远程HTTP服务,包括AI引擎,负责对上层提供机器学习能力,主要包括应用感知、数据监控、重要参数选择、模型训练和自动参数优化。 [cid:image002.png@01D9FC65.8D377A60] 图:A-Tune的整体架构 目前,A-Tune主要提供两种能力:智能决策和自动调优。 智能决策的基本原理是先采集操作系统的数据,然后通过AI引擎中的聚类算法和分类算法,对采集到的数据进行业务负载类型识别,从优化配置数据库中提取适合当前负载类型的优化配置参数,并将它们应用到被调优的操作系统上。 A-Tune工具的智能决策具备以下功能。 * 重要特征分析:自动选择重要特征,剔除冗余特征,实现精准用户画像。 * 两层分类模型:通过分类算法,准确识别当前负载。 * 负载变化感知:主动识别应用负载的变化,实现自适应调优。 自动调优的基本原理是基于系统或应用的配置参数及性能评价指标,利用AI引擎中的参数搜索算法反复迭代,最终得到性能最优的参数配置。 A-Tune工具的自动调优具备以下功能。 * 自动选择重要的调优参数:减少搜索空间,提升训练效率。 * 调优算法构建:用户可以从适用场景、参数类型、性能要求等方面选择最优算法。 * 知识库构建:将当前负载特征和最优参数加入知识库,以提升后续调优效率。 后续规划 技术上:1)从“离线调优”到“在线调优”:构建负载变化感知、负载感知的贝叶斯优化、历史感知热启动等关键技术,实现面向在线应用的持续性能优化能力。2)从“用户态调优”到“内核态调优”:构建In-kernel ML、深度强化学习、模型蒸馏等关键技术,实现从传统的系统配置优化演进到系统设计优化。 场景上:云计算场景的系统和业务形态的复杂性急剧上升,面向多样性应用、负载的性能优化。通过负载感知和在线调优,实现资源和负载的最佳匹配,达到应用性能实时最优、时时最优。