社区伙伴们:
很荣幸能够作为推荐人之一推荐 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、深度强化学习、模型蒸馏等关键技术,实现从传统的系统配置优化演进到系统设计优化。 场景上:云计算场景的系统和业务形态的复杂性急剧上升,面向多样性应用、负载的性能优化。通过负载感知和在线调优,实现资源和负载的最佳匹配,达到应用性能实时最优、时时最优。