A-Tune 是一款基于 AI 的操作系统性能调优引擎。 A-Tune 利用 AI 技术,使操作系统“懂”业务,简化 IT 系统调优工作的同时,让应用程序发挥出色性能。
推荐人: 王建民 @jianminw jianmin@iscas.ac.cn openEuler TC 成员 李次华 @Monday licihua@huawei.com openEuler A-Tune sig/Base-service sig 等 sig maintainer 谢志鹏 @xiezhipeng1 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, link )
Ø 华云数据通过 A-Tune 对数据库场景进行性能调优,优化 60%+ ,成果亮相 openEuler summit ( 2020 )
Ø 与移动苏研联创项目,基于 MySQL 应用场景进行性能调优,优化效果可达到 30%+ ( 2021 , link )
Ø 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 性能调优
Ø 2022 ow2con : A-tune (AI-based) - Donghui Chen at Huawei
Ø 2023 FOSS ASIA : A-Tune: An Automatic Performance Tuning Tool Based on AI for Applications on OS
Ø 2023 AI 大会「 Night Of AI 」: A-Tune :基于 AI 的操作系统性能调优引擎的实践分享
技术创新:
Ø 支持在线静态调优和离线动态调优两大核心功能,从 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 引擎,负责对上层提供机器学习能力,主要包括应用感知、数据监控、重要参数选择、模型训练和自动参数优化。
图: A-Tune 的整体架构
目前, A-Tune 主要提供两种能力:智能决策和自动调优。
智能决策的基本原理是先采集操作系统的数据,然后通过 AI 引擎中的聚类算法和分类算法,对采集到的数据进行业务负载类型识别,从优化配置数据库中提取适合当前负载类型的优化配置参数,并将它们应用到被调优的操作系统上。
A-Tune 工具的智能决策具备以下功能。
l 重要特征分析:自动选择重要特征,剔除冗余特征,实现精准用户画像。
l 两层分类模型:通过分类算法,准确识别当前负载。
l 负载变化感知:主动识别应用负载的变化,实现自适应调优。
自动调优的基本原理是基于系统或应用的配置参数及性能评价指标,利用 AI 引擎中的参数搜索算法反复迭代,最终得到性能最优的参数配置。
A-Tune 工具的自动调优具备以下功能。
l 自动选择重要的调优参数:减少搜索空间,提升训练效率。
l 调优算法构建:用户可以从适用场景、参数类型、性能要求等方面选择最优算法。
l 知 识库构建:将当前负载特征和最优参数加入知识库,以提升后续调优 效 率。 后续规划 技术上: 1 )从“离线调优”到“在线调优”:构建负载变化感知、负载感知的贝叶斯优化、历史感知热启动等关键技术,实现面向在线应用的持续性能优化能力。 2 )从“用户态调优”到“内核态调优”:构建 In-kernel ML 、深度强化学习、模型蒸馏等关键技术,实现从传统的系统配置优化演进到系统设计优化。 场景上:云计算场景的系统和业务形态的复杂性急剧上升,面向多样性应用、负载的性能优化。通过负载感知和在线调优,实现资源和负载的最佳匹配,达到应用性能实时最优、时时最优。
社区伙伴们:
很荣幸能够作为推荐人之一推荐 2023 年度优秀项目的候选: A-Tune 项目。
当有人问我 openEuler 社区创新技术都有哪些时,第一个想要分享的就是 A-Tune 项目。
从 2019 年底参与 openEuler 社区早期建设时,A-Tune 就让我印象非常深刻。不仅仅是因为 AI 调优 OS 的创新,更重要的是其很棒的架构设计,充分适应未来不同场景的应用、不同 AI 技术的融合以及未来的发展。
非常高兴地看到经过三年多的发展,A-Tune 项目与 openEuler 社区共同成长,不仅仅有更多工程师的参与,更有很多成功的落地案例。三年的时间里经常遇到同事、老师、学生来了解 A-Tune 以及怎么参与这个项目,前两天还有国科大的老师来联系与 Maintainer 沟通,看是否有哪些 Todolist 适合学生参与进来。
A-Tune 项目今年也在海外多次亮相,我也有机会在一次 AI Meetup 上分享了这个让听众觉得非常 “硬核” 的项目。今年是 AI 热度很高的年,但事实上这个项目在三年多前就已经迭代发展了,十分钦佩这个项目背后的工程师们对技术的前瞻设计以及创新热情。
再次非常推荐社区伙伴们多多关注 A-Tune 项目,也希望和 openEuler 社区一起诞生并发展的 A-Tune 项目能够成为咱们 openEuler 社区创新力的旗帜。
——王建民 openEuler 技术委员会委员 openEuler RaspberryPi、CloudNative、Compat-winapp SIG Maintainer
On 11 Oct 2023, at 5:32 PM, chendonghui chendonghui6@huawei.com wrote:
A-Tune是一款基于AI的操作系统性能调优引擎。A-Tune利用AI技术,使操作系统“懂”业务,简化IT系统调优工作的同时,让应用程序发挥出色性能。
推荐人: 王建民 @jianminw jianmin@iscas.ac.cn mailto:jianmin@iscas.ac.cn openEuler TC成员 李次华 @Monday licihua@huawei.com mailto:licihua@huawei.com openEuler A-Tune sig/Base-service sig等sig maintainer 谢志鹏 @xiezhipeng1 xiezhipeng1@huawei.com mailto: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,link https://mp.weixin.qq.com/s/t2O3nHjtvYOL56oZ3eh9_Q) Ø 华云数据通过A-Tune对数据库场景进行性能调优,优化60%+,成果亮相openEuler summit(2020) Ø 与移动苏研联创项目,基于MySQL应用场景进行性能调优,优化效果可达到30%+(2021,link https://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 Huawei https://www.ow2con.org/view/2022/Videos Ø 2023 FOSS ASIA:A-Tune: An Automatic Performance Tuning Tool Based on AI for Applications on OS https://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引擎,负责对上层提供机器学习能力,主要包括应用感知、数据监控、重要参数选择、模型训练和自动参数优化。 <image002.png> <> 图:A-Tune的整体架构 目前,A-Tune主要提供两种能力:智能决策和自动调优。
智能决策的基本原理是先采集操作系统的数据,然后通过AI引擎中的聚类算法和分类算法,对采集到的数据进行业务负载类型识别,从优化配置数据库中提取适合当前负载类型的优化配置参数,并将它们应用到被调优的操作系统上。
A-Tune工具的智能决策具备以下功能。
l 重要特征分析:自动选择重要特征,剔除冗余特征,实现精准用户画像。
l 两层分类模型:通过分类算法,准确识别当前负载。
l 负载变化感知:主动识别应用负载的变化,实现自适应调优。
自动调优的基本原理是基于系统或应用的配置参数及性能评价指标,利用AI引擎中的参数搜索算法反复迭代,最终得到性能最优的参数配置。
A-Tune工具的自动调优具备以下功能。
l 自动选择重要的调优参数:减少搜索空间,提升训练效率。 l 调优算法构建:用户可以从适用场景、参数类型、性能要求等方面选择最优算法。 l 知识库构建:将当前负载特征和最优参数加入知识库,以提升后续调优效率。 后续规划 技术上:1)从“离线调优”到“在线调优”:构建负载变化感知、负载感知的贝叶斯优化、历史感知热启动等关键技术,实现面向在线应用的持续性能优化能力。2)从“用户态调优”到“内核态调优”:构建In-kernel ML、深度强化学习、模型蒸馏等关键技术,实现从传统的系统配置优化演进到系统设计优化。 场景上:云计算场景的系统和业务形态的复杂性急剧上升,面向多样性应用、负载的性能优化。通过负载感知和在线调优,实现资源和负载的最佳匹配,达到应用性能实时最优、时时最优。