A-Tune是一款基于openEuler开发的,自动化、智能化性能调优引擎。它利用人工智能技术,对运行在操作系统上的业务建立精准模型,动态感知业务特征并推理出具体应用,根据业务负载情况动态调节并给出最佳的参数配置组合,从而使业务处于最佳运行状态。
使用openEuler默认自带的A-Tune,支持单机模式和分布式模式安装:
client和server安装到同一台机器上
# yum install atune -y
# yum install atune-engine -y
client和server分别安装在不同的机器上。需在相关服务器安装客户端
# yum install atune-client -y
验证安装是否成功
# rpm -qa | grep atune
若显示以下信息则成功
atune-client-xxx
atune-db-xxx
atune-xxx
atune-engine-xxx
从Gitee仓库源码安装
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 python3-pyyaml
如用户已安装数据库应用,并需要将A-Tune的采集和调优数据存储到数据库中,可以安装以下依赖包:
yum install -y python3-sqlalchemy python3-cryptography
git clone https://gitee.com/openeuler/A-Tune.git
cd A-Tune
make models
make
make collector-install
make install
启动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是基于A-Tune软件开发的网页UI,可以用于A-Tune调优效果展示、A-Tune历史调优数据查看、展示A-Tune-Collector采集的数据等功能,便于用户直观查看A-Tune对性能的提高或根据A-Tune-Collector采集到的数据分析当前环境的性能瓶颈。
建议用户安装openEuler系统,并确保环境已安装A-Tune并成功运行。
# git clone https://gitee.com/openeuler/A-Tune-UI.git
cd A-Tune-UI
sh -x install.sh
如果当前环境的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。
②云主机的部署:注意需要开放对应的端口才可以访问。
将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
进入A-Tune-UI目录,执行
npm run start
回显中会附有UI界面打开使用的网址,通过此网址打开网页。
云主机请使用映射地址加端口。
如果打开网页没有信息显示,可以查看:
如果打开网页时长时间加载,并在加载结束后显示“无法访问此网页”字样,可以查看:
# 打开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
如果能成功打开网页,但在跳转至analysis或tuning界面后,没有显示信息,可以:
删除 install.sh 文件中61~65行的内容,即cp...到rm -rf 这五行。
目前A-Tune的使用以及A-Tune-UI的调试仅支持aarch64架构,实际条件不允许的情况下,可以在云主机上实现环境的搭建,但是在访问UI时,涉及到云主机端口映射的问题,即在点击login后UI重定向失败,目前暂未解决。