atune-adm支持的命令可以通过 atune-adm help/--help/-h 查询。
使用方法中所有命令的使用举例都是在单机部署模式下,如果是在分布式部署模式下,需要指定服务器IP和端口号,例如:
atune-adm -a 192.168.3.196 -p 60001 list
define、update、undefine、collection、train、upgrade不支持远程执行。
list:查询系统当前支持的profile,以及当前处于active状态的profile。
atune-adm list
使用默认的模型进行应用识别,不进行自动优化
atune-adm analysis --characterization
使用默认的模型进行应用识别,并进行自动优化
atune-adm analysis
使用自训练的模型进行应用识别
atune-adm analysis --model /usr/libexec/atuned/analysis/models/new-model.m
A-Tune支持用户定义并学习新模型。定义新模型的操作流程如下:
步骤 1 用define命令定义一个新应用的profile
步骤 2 用collection命令收集应用对应的系统数据
步骤 3 用train命令训练得到模型
功能描述
添加用户自定义的应用场景,及对应的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
功能描述
采集业务运行时系统的全局资源使用情况以及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
功能描述
使用采集的数据进行模型的训练。训练时至少采集两种应用类型的数据,否则训练会出错。
命令格式
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
功能描述
删除用户自定义的profile。
命令格式
atune-adm undefine *
使用示例
删除自定义的profile。
atune-adm undefine test_service-test_app-test_scenario
功能描述
查看对应的profile内容。
命令格式
atune-adm info *
使用示例
查看web-nginx-http-long-connection的profile内容:
atune-adm info web-nginx-http-long-connection
功能描述
将已有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
功能描述
手动激活profile,使其处于active状态。
命令格式
atune-adm profile
使用示例
激活web-nginx-http-long-connection对应的profile配置。
atune-adm profile web-nginx-http-long-connection
功能描述
回退当前的配置到系统的初始配置。
命令格式
atune-adm rollback
使用示例
atune-adm rollback
功能描述
更新系统的数据库。
命令格式
atune-adm upgrade
使用示例
数据库更新为new_sqlite.db。
atune-adm upgrade ./new_sqlite.db
功能描述
检查系统当前的cpu、bios、os、网卡等信息。
命令格式
atune-adm check
使用示例
atune-adm check
功能描述
使用指定的项目文件对参数进行动态空间的搜索,找到当前环境配置下的最优解。
命令格式
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
执行以下命令进入压缩文件样本目录:
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
说明:使用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
继续执行以下命令,查看压缩算法的基线性能:
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
以上调优结果反映在了参数compressLevel和compressMethod的设置上,执行以下命令对比调优前后的compress.py文件:
注意:对比结果可能会因为具体的运行环境而有所不同。
diff compress.py compress.py.bak
对比结果如下图所示,图中可看到调优前后compressLevel的值有所区别,调优前compressLevel的值为1,调优后则为6,说明本次性能调优通过改变compressLevel的值提高了压缩算法的性能:
说明:执行调优时的各项参数解释如下:
① 评价指标,存于compress_client.yaml文件中,通过评价指标可以直观的看出性能优劣。
1)time:enwik8文件夹压缩时间,时间越短则性能越好;
2)compress_ratio:enwik8文件夹压缩前后的size大小,比例越大则压缩后文件占内存空间越小,说明压缩效果越好。
② 可调节项,存于compress_server.yaml文件中,单看可调节项的变化无法判断性能优劣,而是在每次修改可调节项后查看评价指标,基于评价指标的变化判断性能有无增长。
1)compressLevel:压缩等级,是调优的可调节项之一,本次调优共设九个等级,对应数值1~9;
2)compressMethod——压缩方式,是调优的可调节项之一,本次调优共设三种压缩方式,分别为bz2、zlib、gzip。