当前位置: 首页 > 工具软件 > A-Tune > 使用案例 >

[A-Tune智能调优引擎]-学习总结①-部署指南

吉玉宸
2023-12-01

以下内容参考: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网页不显示内容

如果打开网页没有信息显示,可以查看:

  1. 打开网页使用的ip是否为localhost,如果A-Tune-UI并未部署在本地却使用localhost打开页面,则无法显示任何信息,解决方法参考2.4。

4.2无法访问此网址

如果打开网页时长时间加载,并在加载结束后显示“无法访问此网页”字样,可以查看:

  1. 如果A-Tune-UI并非本地部署,请查看部署A-Tune-UI的环境是否已关闭防火墙,openEuler系统可使用 systemctl status firewalld 查看防火墙状态,并通过systemctl stop firewalld 关闭防火墙。
  2. 如果已部署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界面后,没有显示信息,可以:

  • 如未使用数据库:
  1. 针对analysis界面,查看(部署A-Tune项目的环境的)/var/atune_data/analysis路径下是否存有.csv文件,如果没有可先尝试执行analysis命令,或将collector命令获取的数据文件移植此目录下。
  2. 针对tuning界面,查看(部署A-Tune项目的环境的)/var/atune_data/tuning/finished路径下是否存有.txt文件,如果没有可先尝试执行tuning命令。
  • 如使用数据库:
  1. 针对analysis界面,请确认数据库collection_table表格已存在且不为空,如没有或为空请尝试执行analysis命令。
  2. 针对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重定向失败,目前暂未解决。

 

 类似资料: