A-Tune智能优化引擎的部署与应用
发表于 2023/07/21
0
尊敬的鲲鹏开发者你好,为了帮助操作系统运维人员/调优工程师更加方便、简单的解决性能问题,我们提供了基于AI算法的智能调优工具——A-Tune,您可以阅读本篇文章进行A-Tune智能调优工具的快速入门。
本篇文章主要介绍了以下知识:
(1)性能调优的基本知识
(2)如何安装和使用A-Tune智能调优工具
(3)以压缩算法调优为例展示A-Tune性能调优效果
基础技能:
(1)了解常用的Linux操作命令
性能调优基础知识
1.什么是性能调优
性能调优,即通过调节各项参数为软件、硬件、操作系统等提供更优的性能,他可以用于处理系统响应速度太慢、每秒所完成的系统输入/输出低于预期、系统资源(如CPU、内存)分配不合理等问题。
当前主流的性能调优方案还是人工调优,通过人工调节系统参数的方式提升性能,其优点是可以针对特定场景进行特定的性能调优。通过人工排查找到可能对性能有影响的参数,并经过反复修改、验证从而达到理想的调优效果;这一过程耗时耗力,且由于操作系统参数众多,对调优工程师的水平也有极高的要求。
随着近几年AI算法的发展,基于AI算法的性能调优也开始成为人们研究的课题。使用AI算法调优可以实现调优过程的自动化,极大程度上解放了人力。同时因为AI算法可以从给定的众多参数中选择出对场景影响更大的参数,因此对使用者的调优经验要求也相对放低。
2. A-Tune智能调优工具
A-Tune作为一款基于AI算法的智能优化引擎,集成了AI算法调优和人工调优的优势,即可以通过AI算法实现自动化调优,节约人工调优的人力成本;又结合了专家经验进行性能优化,实现更便捷的性能调优解决方案。
智能优化引擎A-Tune实验
1. 准备工作
步骤一:申请鲲鹏远程实验室资源
实验过程需要在鲲鹏平台上完成,为了方便开发者在鲲鹏环境上进行开发,鲲鹏在鲲鹏社区中提供了鲲鹏远程实验室资源供各位开发者免费申请。
为了兼顾所有鲲鹏开发者的开发体验,鲲鹏远程实验室中提供了云开发环境(开发态模式)和远程服务器(黑框模式)。本文涉及案例会在云开发环境上进行,开发者在申请云开发环境后可以直接通过在线IDE的方式打开页面进行操作。降低了开发者在鲲鹏上的开发门槛。
首先我们访问鲲鹏社区的远程实验室页面https://www.hikunpeng.com/zh/developer/cloud-lab,申请云开发环境:

之后输入自己的邮箱地址,选择openEuler 20.03 LTS-SP1系统,点击提交进行申请。
申请成功后我们点击“打开在线IDE”按钮,进入云开发环境中,云开发环境给大家提供了在线Vscode页面,方便我们直接在鲲鹏上进行开发。

进入在线IDE页面后,点击侧边栏第一个图标后依次点击“终端”、“新建终端”。

进入到终端页面后,点击最大化面板大小,可放大面板。
最后面板如图所示,实验环境准备完毕。
步骤二:安装和启动A-Tune
为了顺利地进行实验,需要开发者手动完成一些依赖包的安装。
(1)首先输入命令安装依赖系统软件包:
yum install -y golang-bin python3 perf sysstat hwloc-gui
(2)然后输入命令安装python依赖包:
yum install -y python3-dict2xml python3-flask-restful python3-pandas python3-scikit-optimize python3-xgboost python3-pyyaml
(3)接下来下载A-Tune的源代码:
git clone https://gitee.com/openeuler/A-Tune.git -b v1.0.0
该命令会在当前目录创建一个A-Tune的目录,并将A-Tune源代码的v1.0.0版本下载到该目录。

下面进行编译及安装:
首先执行命令切换到A-Tune目录下:
cd A-Tune
然后使用make命令进行编译:
make
(4)安装A-Tune-Collector:
首先使用命令下载源代码:
git clone https://gitee.com/openeuler/A-Tune-Collector.git -b v1.1.0 collector
然后执行命令切换到collector目录下:
cd collector
首先安装setup.py:
python3 setup.py install
然后返回上一次工作目录:
cd ..
然后安装:
make install
(5)启动
首先执行命令查看网卡名称,从下图可以看到系统的网卡名称是enp3s0(注:请以实际情况为准):
ip addr
然后执行命令查看系统磁盘,从下图可以看到系统磁盘为vda(注:请以实际情况为准):
fdisk -l | grep dev
下面修改/etc/atuned/atuned.cnf中的network配置和disk配置,使用下面命令修改配置 ,敲击键盘A字母键进入编辑模式,修改后,按Esc键退出编辑模式然后按住shift键后连续敲击两次Z键保存修改并退出:
vim /etc/atuned/atuned.cnf
红框部分根据实际情况修改,此处是将disk置为vda,将network置为enp3s0。
修改完成后可以使用下面命令查看是否修改成功:
cat /etc/atuned/atuned.cnf
然后启动服务:
首先加载并启动atuned和atune-engine服务:
systemctl daemon-reload
systemctl start atuned
systemctl start atune-engine
然后查看atuned和atune-engine服务状态,有时需要按“q”或“Q”键从查看信息的状态中退出:
systemctl status atuned
systemctl status atune-engine
2.运行atune-adm命令
(1)查询负载类型
查询profile:
atune-adm list
查询系统当前支持的profile,以及profile所处的状态。
(2)分析负载类型并自优化
步骤 1 负载类型识别。
atune-adm analysis --characterization

采集系统的实时统计数据并进行负载类型识别。
步骤 2 负载类型识别及自动优化
atune-adm analysis
以上命令使用默认的模型进行应用识别,并进行自动优化。
(3)系统信息查询
步骤 1 检查系统当前信息
atune-adm check
检查系统当前的CPU、BIOS、OS、网卡等信息。

步骤2 查看A-Tune的其他命令
A-Tune的其他命令使用详见atune-adm help信息:
atune-adm help

恭喜
到这里整个实验流程就已经结束了,通过上面的实验我们可以了解A-Tune的安装部署,以及简单功能的使用。除了上述学习内容,我们还提供了很多辅助学习资源(课程/实验/文档/文章),希望能帮助到您更好的使用A-Tune性能优化工具:
基于A-Tune优化引擎的智能调优(课程):
https://www.hikunpeng.com/learn/courses-list/detail/1554060123432247298
A-Tune官方代码仓库:
https://gitee.com/openeuler/A-Tune/
A-Tune详细命令使用(文档):
https://docs.openeuler.org/zh/docs/22.03_LTS_SP1/docs/A-Tune/A-Tune.html