以下内容参考:https://gitee.com/openeuler/A-Tune
一.简介
A-Tune是一款基于openEuler开发的,自动化、智能化性能调优引擎。它利用人工智能技术,对运行在操作系统上的业务建立精准模型,动态感知业务特征并推理出具体应用,根据业务负载情况动态调节并给出最佳的参数配置组合,从而使业务处于最佳运行状态。
二.A-Tune安装与启动
1.A-Tune安装(普通)
使用openEuler默认自带的A-Tune,支持单机模式和分布式模式安装:
1.1单机模式
client和server安装到同一台机器上
# yum install atune -y
# yum install atune-engine -y
1.2分布式模式
client和server分别安装在不同的机器上。需在相关服务器安装客户端
# yum install atune-client -y
1.3验证
验证安装是否成功
# rpm -qa | grep atune
若显示以下信息则成功
atune-client-xxx
atune-db-xxx
atune-xxx
atune-engine-xxx
2.A-Tune安装(开发者)
从Gitee仓库源码安装
2.1安装依赖系统软件包
yum install -y golang-bin python3 perf sysstat hwloc-gui
2.2安装A-Tune服务依赖包
yum install -y python3-dict2xml python3-flask-restful python3-pandas python3-scikit-optimize python3-xgboost python3-pyyaml
2.3安装数据库依赖包(可选)
如用户已安装数据库应用,并需要将A-Tune的采集和调优数据存储到数据库中,可以安装以下依赖包:
yum install -y python3-sqlalchemy python3-cryptography
2.4下载源码
git clone https://gitee.com/openeuler/A-Tune.git
2.5编译
cd A-Tune
make models
make
2.6安装
make collector-install
make install
3.启动
启动atuned服务:
# systemctl start atuned
查询atuned服务状态:
# systemctl status atuned
若需要使用AI相关的功能,需要启动A-Tune engine服务才能使用:
# systemctl start atune-engine
查询atune-engine服务状态:
# systemctl status atune-engine
三.A-Tune-UI部署
1.简介
A-Tune-UI是基于A-Tune软件开发的网页UI,可以用于A-Tune调优效果展示、A-Tune历史调优数据查看、展示A-Tune-Collector采集的数据等功能,便于用户直观查看A-Tune对性能的提高或根据A-Tune-Collector采集到的数据分析当前环境的性能瓶颈。
2.安装
2.1环境准备
建议用户安装openEuler系统,并确保环境已安装A-Tune并成功运行。
2.2下载源码
# git clone https://gitee.com/openeuler/A-Tune-UI.git
2.3通过自动化脚本安装
cd A-Tune-UI
sh -x install.sh
2.4配置IP地址
如果当前环境的ip与步骤 2.3中最终返回的ip相同,直接跳至步骤 2.5。 如果当前环境的ip与步骤 3中最终返回的ip不同,需通过以下命令替换A-Tune-UI/package.json文件中的ip地址(请将[YOUR_IP]替换为对应ip):
sed -i "10s/-H .*/-H [YOUR_IP]\"/" package.json
注:网页要在ip为B的物理机上通过firefox或其他浏览器打开。
①在这种情况下,首先确认物理机可以ping通虚拟机:ping A。确认无误后,在A-Tune-UI部署时,将package.json文件中第10行的IP替换为虚拟机的ip A。
②云主机的部署:注意需要开放对应的端口才可以访问。
2.5替换engine后端ip
将utils.js中的engineHost和enginePort替换为A-Tune部署时设置的engine的ip及端口号,如果已经成功部署A-Tune,可在/etc/atuned/engine.cnf文件中查看。
# 将[YOUR_ENGINE_HOST]和[YOUR_ENGINE_PORT]替换为具体ip和端口号
sed -i "s/ENGINE_HOST/[YOUR_ENGINE_HOST]/g" src/static/js/utils.js
sed -i "s/ENGINE_PORT/[YOUR_ENGINE_PORT]/g" src/static/js/utils.js
3.运行
进入A-Tune-UI目录,执行
npm run start
回显中会附有UI界面打开使用的网址,通过此网址打开网页。
云主机请使用映射地址加端口。
4.常见问题及处理
4.1网页不显示内容
如果打开网页没有信息显示,可以查看:
- 打开网页使用的ip是否为localhost,如果A-Tune-UI并未部署在本地却使用localhost打开页面,则无法显示任何信息,解决方法参考2.4。
4.2无法访问此网址
如果打开网页时长时间加载,并在加载结束后显示“无法访问此网页”字样,可以查看:
- 如果A-Tune-UI并非本地部署,请查看部署A-Tune-UI的环境是否已关闭防火墙,openEuler系统可使用 systemctl status firewalld 查看防火墙状态,并通过systemctl stop firewalld 关闭防火墙。
- 如果已部署A-Tune项目,请查看A-Tune是否开启了CA认证,具体操作如下:
# 打开atuned.cnf文件
vim /etc/atuned/atuned.cnf
# 查看第59行rest_tls及66行engine_tls的值是否均为false
# 如果不是,请设置成false后保存文件并退出
rest_tls = false
engine_tls = false
# 打开engine.cnf文件
vim /etc/atuned/engine.cnf
# 查看第22行engine_tls的值是否为false
# 如果不是,请设置成false后保存文件并退出
engine_tls = false
# 如果修改了以上文件,退出后需重启服务
systemctl restart atuned
systemctl restart atune-engine
4.3analysis或tuning界面没有显示信息
如果能成功打开网页,但在跳转至analysis或tuning界面后,没有显示信息,可以:
- 如未使用数据库:
- 针对analysis界面,查看(部署A-Tune项目的环境的)/var/atune_data/analysis路径下是否存有.csv文件,如果没有可先尝试执行analysis命令,或将collector命令获取的数据文件移植此目录下。
- 针对tuning界面,查看(部署A-Tune项目的环境的)/var/atune_data/tuning/finished路径下是否存有.txt文件,如果没有可先尝试执行tuning命令。
- 如使用数据库:
- 针对analysis界面,请确认数据库collection_table表格已存在且不为空,如没有或为空请尝试执行analysis命令。
- 针对tuning界面,请确认数据库tuning_table表格已存在且不为空,如没有或为空请尝试执行tuning命令。
- 如文件路径下已存在对应文件,请确认utils.js文件中的engineHost及enginePort已修改,具体修改方法可参考2.5。
4.4在x86架构下部署点击login不跳转
删除 install.sh 文件中61~65行的内容,即cp...到rm -rf 这五行。
4.5云主机环境下点击login不跳转
目前A-Tune的使用以及A-Tune-UI的调试仅支持aarch64架构,实际条件不允许的情况下,可以在云主机上实现环境的搭建,但是在访问UI时,涉及到云主机端口映射的问题,即在点击login后UI重定向失败,目前暂未解决。