openEuler的A-Tune工具小知识【华为根技术】
Atune(Automatic Tuning)是华为开发的系统自动调优工具,核心目标是通过算法分析系统负载特征,自动优化 OS、应用等参数以提升性能。
Atune 的算法核心模块(Engine = 引擎),是实现 “自动调优” 的关键。一些核心逻辑包括:分析系统负载特征(如 CPU 密集型、IO 密集型应用);调用内置的优化算法(如机器学习模型、启发式算法),结合负载特征计算最优参数(如内核参数、应用配置);生成可执行的优化方案,传递给 atuned 执行。
他和 “算法优化” 的关系是:直接承担 “用算法计算优化参数” 的核心职责
A-Tune 是一款基于 AI 的操作系统性能智能调优引擎,由 openEuler 社区孵化。它利用人工智能技术,自动感知和识别系统负载类型,动态调整系统和应用配置,以充分发挥软硬件能力,使应用程序获得最佳性能表现。
1. 核心功能
A-Tune 主要通过以下方式实现智能调优:
- 在线静态调优:实时采集系统性能数据,通过预训练的AI模型识别当前负载类型(如Web服务、数据库、编译任务等),并自动应用预定义的优化配置模板。例如,在Web服务器场景中,A-Tune可自动将SSL/TLS加解密计算卸载到鲲鹏芯片的加速器中,降低CPU消耗,提升处理性能达200%。
- 离线动态调优:针对特定应用,通过迭代测试不同参数组合,找到当前环境下的最优配置。用户需提供基准测试脚本(如压缩算法、编译任务)和调优参数范围,A-Tune使用贝叶斯优化等AI算法搜索最优解。例如,对GCC编译器调优后,内存带宽提升121%,可执行文件大小减少17%。
- 负载感知与自适应:持续监控系统指标(如CPU、内存、I/O),根据负载变化动态调整配置,确保业务始终处于最佳状态。
2. 技术架构
A-Tune 采用分层设计:
- 智能决策层:包含感知和决策子系统,负责负载识别和调优策略生成。
- 系统画像层:通过标注和学习系统构建业务模型,分类和聚类不同负载特征。
- 交互系统层:执行调优策略,监控资源配置。
- 优化模式库:积累不同业务场景的优化配置,支持知识复用和持续学习。
3. 应用场景
- Web服务优化:如Nginx、Apache等,通过卸载加解密计算提升吞吐量。
- 数据库与中间件:对MySQL、Redis、Kafka等调优,提升响应速度和资源利用率。
- 编译与计算任务:优化GCC编译、科学计算等场景的性能。
- 云数据中心:自动调整虚拟机/容器资源分配,提高资源利用率20%,降低运营成本15%。
4. 安装与使用
- 安装依赖:需在openEuler或CentOS系统
查看系统镜像
- 安装Golang、Python3及依赖包(如perf、pandas、xgboost)。
yum install -y golang-bin python3 perf sysstat hwloc-gui
yum install -y python3-dict2xml python3-flask-restful python3-pandas python3-scikit-optimize python3-xgboost
-
依赖说明:
-
golang-bin
:编译 A-Tune 所需。 -
python3-*
:A-Tune 的引擎和算法依赖这些 Python 库。 -
perf
,sysstat
:用于系统性能数据采集和分析。 -
hwloc-gui
:用于可视化查看硬件拓扑结构。
-
- 部署步骤:
- 从Gitee克隆源码:
git clone https://gitee.com/openeuler/A-Tune.git
。 - 编译安装:执行
make models && make && make collector-install && make install
。 - 配置网卡/磁盘:修改
/etc/atuned/atuned.cnf
中的network
和disk
参数。 - 启动服务:
systemctl start atuned atune-engine
。
- 从Gitee克隆源码:
开机启动
- 常用的命令总结:
atune-adm list
:查看支持的优化配置模板。atune-adm profile <name>
:激活指定模板。atune-adm analysis
:在线识别负载并调优。atune-adm tuning --project <项目名>
:执行离线动态调优。
5. 优势和一些价值
- 简化调优流程:屏蔽底层硬件和OS细节,降低对工程师经验的依赖。
- 提升效率:通过AI快速匹配最优配置,避免人工试错。
- 持续学习:积累调优经验,构建可复用的模型库。
A-Tune 支持两种部署模式
-
单机模式:A-Tune 的客户端(client)和服务端(server)安装在同一台机器上。这是最常见和简单的部署方式。
-
分布式模式:Client 和 Server 分别安装在不同的机器上。适用于更复杂的调优场景。
- 在线静态调优
- 数据采集与打标签:在离线情况下采集系统运行数据,包括 CPU 使用率、内存占用、磁盘 I/O 等,最高支持 52 维数据采集,并为每个数据集打标签。
- 模型训练:利用双层分类模型进行训练,第一层分类器识别出默认类型和高吞吐类型;第二层分类器识别到具体的应用。通过训练,使模型能够根据采集的数据识别出不同的业务类型和负载情况。
- 负载识别与配置下发:在线时,基于训练好的模型,对运行环境进行负载识别,根据识别结果从优化配置库中选取最优配置下发,实现对系统的调优,整个过程速度可达分钟级别。优化配置库中的参数一部分来自资深工程师在实际环境中调优得到的人工经验,一部分是通过 atune 提供的离线动态调优功能得到的最优参数。
- 离线动态调优
- 参数选择:对于工程师给定的众多参数,使用 LHS(拉丁超立方抽样算法)算法和 Traverse 算法,均匀采集几个点,自动选择最重要的几个参数进行调优,减少不必要的参数调整,提高调优效率。
- 贝叶斯算法迭代优化:采用贝叶斯优化算法对筛选出的重要参数空间进行迭代搜索,不断优化参数值。在这个过程中,根据贝叶斯算法的原理,迭代次数越多,模型越准确,直到算法收敛,获取到最优配置,最终返回给服务器。该过程可能以天为单位,主要面向专业工程师,需要给定配置参数和评价指标,如对于性能越高越好的应用,评价指标可能就是吞吐量。
- 点赞
- 收藏
- 关注作者
评论(0)