openEuler实验之A-Tune智能调优

2023-10-27

1 A-Tune介绍

A-Tune是一款基于AI开发的系统性能优化引擎,它利用人工智能技术,对业务场景建立精准的系统画像,感知并推理出业务特征,进而做出智能决策,匹配并推荐最佳的系统参数配置组合,使业务处于最佳运行状态。

img

1.1 A-Tune核心技术架构:

img

1.2 支持特性与业务模型

支持特性

  • 七大类11款应用负载类型自动优化

  • 自定义负载类型和业务模型

  • 参数自调优

A-Tune支持的业务模型包括https应用、大数据、计算密集型应用、网络密集型应用、内存密集型应用,以及系统IDLE等。安装与部署

1.3 软硬件要求

硬件要求:鲲鹏920处理器

软件要求:openEuler 20.03 LTS 操作系统

1.4 环境准备

  • 安装openEuler系统。

  • 安装A-Tune需要使用root权限。

2 安装A-Tune

2.1 安装模式

A-Tune支持单机模式和分布式模式安装:

  • 单机模式

    client和server安装到同一台机器上。

  • 分布式模式

    client和server分别安装在不同的机器上。

img

2.2 安装过程

由于曾经在本地尝试安装过,但下载速度极慢,且由于虚拟机硬盘空间不足、较容易崩溃等原因,产生了很多不便,因此我在此使用了源码编译安装的方式,以及ssh远程登录云服务器来做这部分实验。

华为云服务器:

配合弹性公网IP一起使用:

windows命令行进行ssh登录:

ssh root@121.36.233.210

登陆成功。

接下来在云服务器上安装A-Tune。

# 安装依赖软件包
yum install -y golang-bin python3 perf sysstat hwloc-gui
​
# 安装A-Tune服务的依赖包
yum install -y python3-dict2xml python3-flask-restful python3-pandas python3-scikit-optimize python3-xgboost python3-pyyaml
​
# 安装数据库依赖包
yum install -y python3-sqlalchemy python3-cryptography
yum install -y python3-psycopg2
​
# 下载源码并编译安装
git clone https://gitee.com/openeuler/A-Tune.git    # 使用git命令克隆远程gitee仓库到openEuler服务器
cd A-Tune
make models
make
make collector-install
make install

安装依赖:

克隆源码:

编译安装:

这里出现一个错误(文件未找到),再编译一遍:(-i暂时忽略错误)

开始编译(make):

……………………

编译完成的最后几行:

安装:

……………………

安装完成。云服务器设置最大带宽为 50Mbps,下载过程速度很快,不到十分钟,A-Tune就已经安装完毕,而之前在虚拟机上本地安装仅是安装依赖和clone源码就花了一个多小时,编译过程中也出现过一些小插曲。而这些问题对于更稳定、更高性能的云服务器是不存在的。

3 部署A-Tune服务

本章介绍A-Tune的配置部署。

3.1 配置介绍

A-Tune配置文件位于 /etc/atuned/atuned.cnf,配置项说明:

  • A-Tune服务启动配置

    可根据需要进行修改。

    • protocol:系统grpc服务使用的协议,unix或tcp,unix为本地socket通信方式,tcp为socket监听端口方式。默认为unix。

    • address:系统grpc服务的侦听地址,默认为unix socket,若为分布式部署,需修改为侦听的ip地址。

    • port:系统grpc服务的侦听端口,范围为0~65535未使用的端口。如果protocol配置是unix,则不需要配置。

    • rest_port:系统restservice的侦听端口, 范围为0~65535未使用的端口。

    • sample_num:系统执行analysis流程时采集样本的数量。

  • system信息

    system为系统执行相关的优化需要用到的参数信息,必须根据系统实际情况进行修改。

    • disk:执行analysis流程时需要采集的对应磁盘的信息或执行磁盘相关优化时需要指定的磁盘。

    • network:执行analysis时需要采集的对应的网卡的信息或执行网卡相关优化时需要指定的网卡。

    • user:执行ulimit相关优化时用到的用户名。目前只支持root用户。

    • tls:开启A-Tune的gRPC和http服务SSL/TLS证书校验,默认不开启。开启TLS后atune-adm命令在使用前需要设置以下环境变量方可与服务端进行通讯:

      • export ATUNE_TLS=yes

      • export ATUNE_CLICERT=<客户端证书路径>

    • tlsservercertfile:gPRC服务端证书路径。

    • tlsserverkeyfile:gPRC服务端秘钥路径。

    • tlshttpcertfile:http服务端证书路径。

    • tlshttpkeyfile:http服务端秘钥路径。

    • tlshttpcacertfile:http服务端CA证书路径。

  • 日志信息

    根据情况修改日志的路径和级别,默认的日志信息在/var/log/messages中。

  • monitor信息

    为系统启动时默认采集的系统硬件信息。

3.2 查看配置信息

cat /etc/atuned/atuned.cnf  # 查看配置文件

部分配置信息:

从图中可看出system板块中磁盘选项为 sda;网络选项为 enp189s0f0;用户名为 root。

4 启动、管理A-Tune

4.1 启动A-Tune服务

systemctl daemon-reload # 加载服务
systemctl start atuned  # 启动服务
systemctl start atune-engine
systemctl status atuned # 查看服务状态

查看状态,atuned 和 atune-engine 显示 active(running),服务启动成功,然后输入” Ctrl+c “ 退出。

4.2 管理A-Tune

  • 使用A-Tune需要使用root权限。

  • atune-adm支持的命令可以通过 atune-adm help/–help/-h 查询。

  • 使用方法中所有命令的使用举例都是在单机部署模式下,如果是在分布式部署模式下,需要指定服务器IP和端口号。

  • define、update、undefine、collection、train、upgrade不支持远程执行。

  • 命令格式中,[ ] 表示参数可选,<> 表示参数必选,具体参数由实际情况确定。

  • 命令格式中,各命令含义如下:

    • WORKLOAD_TYPE:用户自定义负载类型的名称,负载支持的类型参考list命令查询结果。

    • PROFILE_NAME:用户自定义profile的名称

    • PROFILE_PATH:用户自定义profile的路径

查询负载类型:

查询系统当前支持的workload_type和对应的profile,以及当前处于active状态的profile:

atune-adm list

……………………

查询profile信息:

查看workload_type对应的profile内容。

atune-adm info <WORKLOAD_TYPE_>_

例如查看 basic-test-suite-baseline-lmbench 的profile内容:

激活profile:

手动激活workload_type对应的profile,使得workload_type处于active状态:

atune-adm profile [ProfileName]

例如想要激活 basic-test-suite-baseline-lmbench

会显示如上一系列提示信息以及安全警告信息。

验证是否激活成功:

basic-test-suite-baseline-lmbench 一行活动状态为 ”true“,表明该 profile 已被成功激活。

此外,还有对profile的更新、回滚,以及系统信息查询,用法都比较简单在此不再一一举例。

5 调优实际操作(优化nginx)

这部分参考了openeuler说明文档,同时受到OpenEuler上A-Tune的部署与使用albert-rabbit的博客-CSDN博客a-tune的离线调优过程的启发。

首先进入示例目录:

实例目录位于 /root/A-Tune/examples/tuning,该目录下有若干实例,我们进入 ./nginx 目录,并准备环境

# 打开nginx目录
cd nginx
# 查看当前路径
pwd
/root/A-Tune/examples/tuning/nginx
# 查看目录内所有文件
ls
nginx_benchmark.sh  nginx_client.yaml  nginx_http_long_client.yaml  prepare.sh  README
# 准备调优环境
sh prepare.sh

执行sh命令后,系统会自动安装nginx、启动nginx、更新nginx客户端:

查看一下 nginx_client.yaml 的内容:

可以看到相关优化设置:

  1. nginx的调优算法为 gbrt;

  2. 调优的迭代次数为 30;

  3. 随即迭代次数为 10;

  4. benchmark执行命令为 "sh /root/A-Tune/examples/tuning/nginx/nginx_benchmark.sh";

  5. 性能评价指标为 ”rps“。

再看 ./nginx_benchmark.sh 的内容:

该文件用来在执行调优时获取评价指标的具体数值,由上面的 nginx_client.yaml 文件中第 6 行执行该文件。

接下来正式执行调优:

一般命令:

atune-adm tuning --project <PROJECT_NAME> --detail <client.yaml>    # <PROJECT_NAME>为调优实例名;client.yaml保存了客户端调优的评价指标等信息

本实验中执行如下命令:

atune-adm tuning --project nginx --detail nginx_client.yaml

……………………

10~15分钟后调优结束,注意到最后几行:

The final optimization result is: nginx.access_log=off,nginx.error_log=/dev/null
The final evaluation value is: rps=53493.00
​
Baseline Performance is: (rps=46279.00)
​
Tuning Finished
[root@openeuler-huaweicloud nginx]#_

告诉我们错误日志信息保存在 /dev/null,rps 由最初的 46297.00 增长到 53493.00

RPS:全名为 Requests per second,表示 nginx 每秒处理的请求数,以此作为 nginx 的性能指标,其他的一些性能指标参考Nginx 压测和性能分析的一些经验 - K码农 (kmanong.top)

所以不难得出,通过A-Tune调优,nginx 的性能提升了约 15.5%。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

openEuler实验之A-Tune智能调优 的相关文章

随机推荐

  • vue项目中使用神策进行数据埋点

    前言 在vue种使用神策进行数据埋点 一 数据埋点的意义 所谓埋点就是在应用中特定的流程收集一些信息 用来跟踪应用使用的状况 后续用来进一步优化产品或是提供运营的数据支撑 包括访问数 Visits 访客数 Visitor 停留时长 Time
  • 什么是轴向注意力(Axial Attention)机制

    Axial Attention 轴向注意力 有行注意力 row attention 和列注意力 column attention 之分 一般是组合使用 原文阅读 https arxiv org pdf 1912 12180v1 pdf se
  • Android自动化测试,5个必备的测试框架

    Appium Appium是一个开源的移动测试工具 支持iOS和Android 它可以用来测试任何类型的移动应用 原生 网络和混合 作为一个跨平台的工具 你可以在不同的平台上运行相同的测试 为了实现跨平台的功能 Appium使用了供应商提供
  • 【AD21】keepout层和机械1层怎么相互转换

    1 从keepout转换为Mechanical 1层 见下图 图1 图2 图3 图4 2 从keepout转换为Mechanical 1层 见下图 如果想要将keepout层转换成机械1层 可以先全选中想要转换的keepoutz层 然后在c
  • Docker之旅:在Docker容器中创建第一个程序

    Docker的概念 Docker是开发人员和系统管理员 使用容器开发 部署和运行应用程序的平台 使用Linux容器来部署应用程序称为集装箱化 容器不是新的事物 但它们用于轻松部署应用程序 一 测试一下Docker的版本 1 查看Docker
  • 实用工具推荐,浏览器必备宝藏插件:Wetab新标签页

    打开浏览器 你的起始页是否充满了广告和各种乱七八糟的信息呢 或者过于单调 而失去了某些你想要的功能 这里给大家推荐一个在Chrome浏览器和edge浏览器上都能愉快使用的浏览器插件 Wetab新标签页 没有广告 页面干净美观且具备各种实用功
  • android live 电视 源码,GitHub - mxiaoguang/LivePlayback: Android TV直播电视节目 ,包含各央视频道及卫视频道...

    Android TV直播电视节目 更多技术博客 项目 欢迎关注公众号 Android TV开发交流群 135622564 传统电视直播节目 在Android TV上起着越来越重要的作用 央视 各地卫视 满足观众日益增长的多元化需求 看下效果
  • IV转换电路原理图

    毫安级IV转换电路如下 如果要uA级转换 可把运放改为 D795 SG 8210 L C6482等输入偏置电流在pA级的运
  • tomcat配置443端口

  • true_type与false_type

    std true type和std false type 实际上是类型别名 是两个类型 类模板 注意区分true type与false type与true和false区别 true type false type代表类型 true fals
  • 【项目实战】Python基于局部离群因子LOF算法(LocalOutlierFactor)实现信用卡数据异常值检测项目实战

    说明 这是一个机器学习实战项目 附带数据 代码 文档 代码讲解 如需数据 代码 文档 代码讲解可以直接到文章最后获取 1 项目背景 异常检测是数据挖掘领域研究的基本问题之一 已被广泛应用于网络入侵检测 信用卡欺诈侦查等领域 局部离群因子 简
  • 以太坊客户端Geth命令用法-参数详解

    Geth是在以太坊智能合约开发中最常用的工具 必备开发工具 一个多用途的命令行工具 熟悉Geth可以让我们有更好的效率 大家可收藏起来作为Geth命令用法手册 本文主要是对geth help的翻译 基于最新的geth 1 7 3 stabl
  • sqlite3查看数据库中有哪些表(代码)

    说实话 用代码实现sqlite3查看数据库中有哪些表我还真的没找到现成资源 网上提供的语句还真用不了 而且大多都是命令行语句 由于的做的MFC项目要用到这个功能 特意学习了下 下面分享我的成果 希望可以帮到你 环境 VS2005 inclu
  • FPGA中值滤波实现并Modelsim仿真,与MATLAB中值滤波进行对比

    文章目录 一 中值滤波算法 二 FPGA实现中值滤波 2 1 3 3窗口的生成 2 2 排序模块 2 3中值滤波模块 2 4 整体RTL图 三 modeslim仿真 四 matlab中值滤波 五 效果对比 一 中值滤波算法 1 中值滤波算法
  • 解决wangEditor表格边框显示不出来、没有的问题

    仔细阅读文档 不过我一直找表格或者边框搜索 发现没有特定的栏目 所以忽略了 当然也有我不够仔细的原因 有点着急莽荒了 链接 在官网的这个页面 从官网贴下来的 把这段复制到想要的地方就可以了
  • 自定义表单控件 [(ngModel)]

    ngModel 拆分 ngModel 将 输入 输出组合起来 进行双向数据绑定 拆分开来 输入属性 ngModel ngModelChange 输出监听元素值的变化 并同步view value与model value
  • 头都给我找烂

    mysql5 6下载 https dev mysql com downloads file id 487425 win10添加本地用户和组 https blog csdn net qq 40151857 article details 89
  • 【Linux命令集】top命令的用法详解

    在使用linux系统中 我们最长用的查看系统性能的方式就是使用命令top 通知我们只关心总体的cpu和内存的使用情况 对其他的参数基本无视 也看不懂 下面来介绍一下top的详细参数的意义 top视图 进入top的基本视图 我们来结合这个视图
  • 电容选型及计算

    一 电容容值计算 1 电容整流波形分析 经过整流后三相电压整流为六脉波电压 电压波形如下图 上图中各时期充电过程如下 在t0 t3阶段是一个T 6周期 一个完整波头阶段 在t0 t1阶段 电容放电 给负载提供能量 此时输入电压小于电容电压
  • openEuler实验之A-Tune智能调优

    1 A Tune介绍 A Tune是一款基于AI开发的系统性能优化引擎 它利用人工智能技术 对业务场景建立精准的系统画像 感知并推理出业务特征 进而做出智能决策 匹配并推荐最佳的系统参数配置组合 使业务处于最佳运行状态 1 1 A Tune