[A-Tune智能调优引擎]-学习总结②-应用实战

以下内容参考:https://gitee.com/openeuler/A-Tune

四.A-Tune使用

1.总体说明

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

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

 atune-adm -a 192.168.3.196 -p 60001 list

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

2.查询负载类型

list:查询系统当前支持的profile,以及当前处于active状态的profile。

atune-adm list 

3.分析负载类型并自优化

使用默认的模型进行应用识别,不进行自动优化

atune-adm analysis --characterization

使用默认的模型进行应用识别,并进行自动优化

atune-adm analysis

使用自训练的模型进行应用识别

atune-adm analysis --model /usr/libexec/atuned/analysis/models/new-model.m

4.自定义模型

A-Tune支持用户定义并学习新模型。定义新模型的操作流程如下:

​步骤 1 用define命令定义一个新应用的profile

​步骤 2 用collection命令收集应用对应的系统数据

​步骤 3 用train命令训练得到模型

4.1define

功能描述

添加用户自定义的应用场景,及对应的profile优化项。

命令格式

atune-adm define   

使用示例

新增一个profile,service_type的名称为test_service,application_name的名称为test_app,scenario_name的名称为test_scenario,优化项的配置文件为example.conf。

atune-adm define test_service test_app test_scenario ./example.conf

4.2collection

功能描述

采集业务运行时系统的全局资源使用情况以及OS的各项状态信息,并将收集的结果保存到csv格式的输出文件中,作为模型训练的输入数据集。

命令格式

atune-adm collection *

使用示例

atune-adm collection --filename name --interval 5 --duration 1200 --output_path /home/data --disk sda --network eth0 --app_type test_type 

4.3train

功能描述

使用采集的数据进行模型的训练。训练时至少采集两种应用类型的数据,否则训练会出错。

命令格式

atune-adm train *

使用示例

使用data目录下csv文件作为训练输入,生成的新模型new-model.m存在model目录下。

atune-adm train --data_path /home/data --output_file /usr/libexec/atuned/analysis/models/new-model.m 

4.4undefine

功能描述

删除用户自定义的profile。

命令格式

atune-adm undefine *

使用示例

删除自定义的profile。

atune-adm undefine test_service-test_app-test_scenario

5.Profile相关操作

5.1查询profile

功能描述

查看对应的profile内容。

命令格式

atune-adm info *

使用示例

查看web-nginx-http-long-connection的profile内容:

atune-adm info web-nginx-http-long-connection

5.2更新profile

功能描述

将已有profile中原来的优化项更新为new.conf中的内容。

命令格式

atune-adm update * *

使用示例

更新名为test_service-test_app-test_scenario的profile优化项为new.conf。

atune-adm update test_service-test_app-test_scenario ./new.conf

5.3激活profile

功能描述

手动激活profile,使其处于active状态。

命令格式

atune-adm profile 

使用示例

激活web-nginx-http-long-connection对应的profile配置。

atune-adm profile web-nginx-http-long-connection

5.4回滚profile

功能描述

回退当前的配置到系统的初始配置。

命令格式

atune-adm rollback

使用示例

atune-adm rollback

6.更新数据库

功能描述

更新系统的数据库。

命令格式

atune-adm upgrade 

使用示例

数据库更新为new_sqlite.db。

atune-adm upgrade ./new_sqlite.db

7.系统信息查询

功能描述

检查系统当前的cpu、bios、os、网卡等信息。

命令格式

atune-adm check

使用示例

atune-adm check 

8.参数自调优

功能描述

使用指定的项目文件对参数进行动态空间的搜索,找到当前环境配置下的最优解。

命令格式

atune-adm tuning [OPTIONS] 

在运行命令前,确保以下条件已经满足:

服务端的yaml配置文件已经编辑完成并放置于 atuned服务下的**/etc/atuned/tuning/**目录中

客户端的yaml配置文件已经编辑完成并放置于atuned客户端任意目录下

使用示例

进行tuning调优

atune-adm tuning --project compress --detail compress_client.yaml

恢复tuning调优前的初始配置,compress为yaml文件中的项目名称

atune-adm tuning --restore --project compress

五.A-Tune实战

1.通过A-Tune优化压缩算法配置

执行以下命令进入压缩文件样本目录:

cd ~/A-Tune/examples/tuning/compress/

获取测试用例:

wget http://cs.fit.edu/~mmahoney/compression/enwik8.zip

执行如下命令,使用prepare.sh脚本解压缩enwik8.zip文件并进行一些参数设置,例如compress_client.yaml文件中time的权重为20,compress_ratio的权重为80,表明本次优化目标偏重压缩率:

sh prepare.sh enwik8.zip

运行结果如下图所示:[A-Tune智能调优引擎]-学习总结②-应用实战_第1张图片

说明:使用prepare.sh脚本对enwik8.zip文件进行解压缩完毕,当前目录应存在6个文件及一个文件夹,各文件的功能注解如下:

① enwik8.zip为压缩文件样本,

② enwik8为enwik8.zip文件解压后的文件夹,

③ prepare.sh为执行调优前的必要准备工作,具体信息可以通过vim命令进入查看,

④ compress.py为本次调优的基准。compress.py文件通过bz2、zlib、gzip中的一种方式对enwik8文件进行压缩。compress.py文件的执行时间将作为调优的评价指标之一,即compress.py文件执行时间越短,调优效果越好,

⑤ compress_client.yaml文件记录本次调优的评价指标,有time和compress_ratio两个评价指标,

⑥ compress_server.yaml文件记录本次调优的可调节项,有compressLevel和compressMethod两个可调节项。

执行以下命令进行查看:

ls -la

文件列表如下图所示:[A-Tune智能调优引擎]-学习总结②-应用实战_第2张图片

继续执行以下命令,查看压缩算法的基线性能:

python3 compress.py

查看压缩算法的基线性能输出结果,如下图所示:

说明:通过压缩时间和压缩比例两个维度来衡量,图中时间花费4.6s左右,压缩后文件体积缩小2.7倍左右。后续步骤会对压缩算法进行调优,目标是降低时间花费,并增大压缩前后文件大小的比例。

注意:压缩算法的基线性能可能会因为具体的运行环境而有所不同。

执行以下命令对compress.py文件进行备份:

说明:在进行调优时,compress.py文件中的COMPRESS_LEVEL和COMPRESS_METHOD两个值(12、13行)将会作为可调节项发生变更,因此在调节前备份此文件,有利于进行调优后与调优前的参数对比。

cp compress.py{,.bak}

执行以下命令(约【2分钟】),进行调优以找到最优配置:

atune-adm tuning --project compress --detail compress_client.yaml

最终结果如下图所示,其中1为调优性能及参数,2为基线性能:[A-Tune智能调优引擎]-学习总结②-应用实战_第3张图片

 以上调优结果反映在了参数compressLevel和compressMethod的设置上,执行以下命令对比调优前后的compress.py文件:

注意:对比结果可能会因为具体的运行环境而有所不同。

diff compress.py compress.py.bak

对比结果如下图所示,图中可看到调优前后compressLevel的值有所区别,调优前compressLevel的值为1,调优后则为6,说明本次性能调优通过改变compressLevel的值提高了压缩算法的性能:

[A-Tune智能调优引擎]-学习总结②-应用实战_第4张图片

 说明:执行调优时的各项参数解释如下:

① 评价指标,存于compress_client.yaml文件中,通过评价指标可以直观的看出性能优劣。

1)time:enwik8文件夹压缩时间,时间越短则性能越好;

2)compress_ratio:enwik8文件夹压缩前后的size大小,比例越大则压缩后文件占内存空间越小,说明压缩效果越好。

② 可调节项,存于compress_server.yaml文件中,单看可调节项的变化无法判断性能优劣,而是在每次修改可调节项后查看评价指标,基于评价指标的变化判断性能有无增长。

1)compressLevel:压缩等级,是调优的可调节项之一,本次调优共设九个等级,对应数值1~9;

2)compressMethod——压缩方式,是调优的可调节项之一,本次调优共设三种压缩方式,分别为bz2、zlib、gzip。

你可能感兴趣的:(人工智能,linux)