提交 c8ae0846 编写于 作者: A amyMayun

merge md files of A-Tune user guide

上级 7d2bac3e
本文档介绍openEuler系统性能自优化软件A-Tune的安装部署和使用方法,以指导用户快速了解并使用A-Tune。
\ No newline at end of file
# A-Tune 用户指南
本文档介绍openEuler系统性能自优化软件A-Tune的安装部署和使用方法,以指导用户快速了解并使用A-Tune。
本文档适用于使用openEuler系统并希望了解和使用A-Tune的社区开发者、开源爱好者以及相关合作伙伴。使用人员需要具备基本的Linux操作系统知识。
\ No newline at end of file
# analysis<a name="ZH-CN_TOPIC_0213225932"></a>
## 功能描述<a name="section124121426195015"></a>
采集系统的实时统计数据进行负载类型识别,并进行自动优化。
## 命令格式<a name="section1019897115110"></a>
**atune-adm analysis** \[OPTIONS\]
## 参数说明<a name="section16755152320311"></a>
- OPTIONS
<a name="table17341193974513"></a>
<table><thead align="left"><tr id="row11341739154514"><th class="cellrowborder" valign="top" width="23.87%" id="mcps1.1.3.1.1"><p id="p3341183964511"><a name="p3341183964511"></a><a name="p3341183964511"></a>参数</p>
</th>
<th class="cellrowborder" valign="top" width="76.13%" id="mcps1.1.3.1.2"><p id="p73410399457"><a name="p73410399457"></a><a name="p73410399457"></a>描述</p>
</th>
</tr>
</thead>
<tbody><tr id="row334110395452"><td class="cellrowborder" valign="top" width="23.87%" headers="mcps1.1.3.1.1 "><p id="p9341639104517"><a name="p9341639104517"></a><a name="p9341639104517"></a>--model, -m</p>
</td>
<td class="cellrowborder" valign="top" width="76.13%" headers="mcps1.1.3.1.2 "><p id="p23414394459"><a name="p23414394459"></a><a name="p23414394459"></a>用户自训练产生的新模型</p>
</td>
</tr>
</tbody>
</table>
## 使用示例<a name="section5961238145111"></a>
- 使用默认的模型进行分类识别
```
# atune-adm analysis
```
- 使用自训练的模型进行识别
```
# atune-adm analysis --model /usr/libexec/atuned/analysis/models/new-model.m
```
# check<a name="ZH-CN_TOPIC_0213225934"></a>
## 功能描述<a name="section124121426195015"></a>
检查系统当前的cpu、bios、os、网卡等信息。
## 命令格式<a name="section1019897115110"></a>
**atune-adm check**
## 使用示例<a name="section5961238145111"></a>
```
# atune-adm check
cpu information:
cpu:0 version: Kunpeng 920-6426 speed: 2600000000 HZ cores: 64
cpu:1 version: Kunpeng 920-6426 speed: 2600000000 HZ cores: 64
system information:
DMIBIOSVersion: 0.59
OSRelease: 4.19.36-vhulk1906.3.0.h356.eulerosv2r8.aarch64
network information:
name: eth0 product: HNS GE/10GE/25GE RDMA Network Controller
name: eth1 product: HNS GE/10GE/25GE Network Controller
name: eth2 product: HNS GE/10GE/25GE RDMA Network Controller
name: eth3 product: HNS GE/10GE/25GE Network Controller
name: eth4 product: HNS GE/10GE/25GE RDMA Network Controller
name: eth5 product: HNS GE/10GE/25GE Network Controller
name: eth6 product: HNS GE/10GE/25GE RDMA Network Controller
name: eth7 product: HNS GE/10GE/25GE Network Controller
name: docker0 product:
```
# collection<a name="ZH-CN_TOPIC_0213225908"></a>
## 功能描述<a name="section124121426195015"></a>
采集业务运行时系统的全局资源使用情况以及OS的各项状态信息,并将收集的结果保存到csv格式的输出文件中,作为模型训练的输入数据集。
>![](public_sys-resources/icon-note.gif) **说明:**
>- 本命令依赖采样工具perf,mpstat,vmstat,iostat,sar。
>- CPU型号目前仅支持鲲鹏920,可通过dmidecode -t processor检查CPU型号。
## 命令格式<a name="section1019897115110"></a>
**atune-adm collection** <OPTIONS\>
## 参数说明<a name="section143803239510"></a>
- OPTIONS
<a name="zh-cn_topic_0210923698_table960915119119"></a>
<table><thead align="left"><tr id="zh-cn_topic_0210923698_row13645013114"><th class="cellrowborder" valign="top" width="23.87%" id="mcps1.1.3.1.1"><p id="zh-cn_topic_0210923698_p176451311914"><a name="zh-cn_topic_0210923698_p176451311914"></a><a name="zh-cn_topic_0210923698_p176451311914"></a>参数</p>
</th>
<th class="cellrowborder" valign="top" width="76.13%" id="mcps1.1.3.1.2"><p id="zh-cn_topic_0210923698_p1364511211"><a name="zh-cn_topic_0210923698_p1364511211"></a><a name="zh-cn_topic_0210923698_p1364511211"></a>描述</p>
</th>
</tr>
</thead>
<tbody><tr id="zh-cn_topic_0210923698_row19645141112"><td class="cellrowborder" valign="top" width="23.87%" headers="mcps1.1.3.1.1 "><p id="zh-cn_topic_0210923698_p2645611710"><a name="zh-cn_topic_0210923698_p2645611710"></a><a name="zh-cn_topic_0210923698_p2645611710"></a>--filename, -f</p>
</td>
<td class="cellrowborder" valign="top" width="76.13%" headers="mcps1.1.3.1.2 "><p id="zh-cn_topic_0210923698_p10645512017"><a name="zh-cn_topic_0210923698_p10645512017"></a><a name="zh-cn_topic_0210923698_p10645512017"></a>生成的用于训练的csv文件名:<em id="i14756164914010"><a name="i14756164914010"></a><a name="i14756164914010"></a>名称-时间戳</em>.csv</p>
</td>
</tr>
<tr id="zh-cn_topic_0210923698_row564581117"><td class="cellrowborder" valign="top" width="23.87%" headers="mcps1.1.3.1.1 "><p id="zh-cn_topic_0210923698_p15645911616"><a name="zh-cn_topic_0210923698_p15645911616"></a><a name="zh-cn_topic_0210923698_p15645911616"></a>--output_path, -o</p>
</td>
<td class="cellrowborder" valign="top" width="76.13%" headers="mcps1.1.3.1.2 "><p id="zh-cn_topic_0210923698_p106451918120"><a name="zh-cn_topic_0210923698_p106451918120"></a><a name="zh-cn_topic_0210923698_p106451918120"></a>生成的csv文件的存放路径,需提供绝对路径</p>
</td>
</tr>
<tr id="zh-cn_topic_0210923698_row8645711115"><td class="cellrowborder" valign="top" width="23.87%" headers="mcps1.1.3.1.1 "><p id="zh-cn_topic_0210923698_p14645713117"><a name="zh-cn_topic_0210923698_p14645713117"></a><a name="zh-cn_topic_0210923698_p14645713117"></a>--disk, -b</p>
</td>
<td class="cellrowborder" valign="top" width="76.13%" headers="mcps1.1.3.1.2 "><p id="zh-cn_topic_0210923698_p464519116110"><a name="zh-cn_topic_0210923698_p464519116110"></a><a name="zh-cn_topic_0210923698_p464519116110"></a>业务运行时实际使用的磁盘,如/dev/sda</p>
</td>
</tr>
<tr id="zh-cn_topic_0210923698_row6645111714"><td class="cellrowborder" valign="top" width="23.87%" headers="mcps1.1.3.1.1 "><p id="zh-cn_topic_0210923698_p106451817111"><a name="zh-cn_topic_0210923698_p106451817111"></a><a name="zh-cn_topic_0210923698_p106451817111"></a>--network, -n</p>
</td>
<td class="cellrowborder" valign="top" width="76.13%" headers="mcps1.1.3.1.2 "><p id="zh-cn_topic_0210923698_p206451911611"><a name="zh-cn_topic_0210923698_p206451911611"></a><a name="zh-cn_topic_0210923698_p206451911611"></a>业务运行时使用的网络接口,如eth0</p>
</td>
</tr>
<tr id="zh-cn_topic_0210923698_row14645219112"><td class="cellrowborder" valign="top" width="23.87%" headers="mcps1.1.3.1.1 "><p id="zh-cn_topic_0210923698_p9645191811"><a name="zh-cn_topic_0210923698_p9645191811"></a><a name="zh-cn_topic_0210923698_p9645191811"></a>--workload_type, -t</p>
</td>
<td class="cellrowborder" valign="top" width="76.13%" headers="mcps1.1.3.1.2 "><p id="zh-cn_topic_0210923698_p16450117114"><a name="zh-cn_topic_0210923698_p16450117114"></a><a name="zh-cn_topic_0210923698_p16450117114"></a>标记业务的负载类型,作为训练时使用的标签</p>
</td>
</tr>
<tr id="zh-cn_topic_0210923698_row76452118115"><td class="cellrowborder" valign="top" width="23.87%" headers="mcps1.1.3.1.1 "><p id="zh-cn_topic_0210923698_p96451114116"><a name="zh-cn_topic_0210923698_p96451114116"></a><a name="zh-cn_topic_0210923698_p96451114116"></a>--duration, -d</p>
</td>
<td class="cellrowborder" valign="top" width="76.13%" headers="mcps1.1.3.1.2 "><p id="p3205204519273"><a name="p3205204519273"></a><a name="p3205204519273"></a>业务运行时采集数据的时间,单位秒,默认采集时间1200秒</p>
</td>
</tr>
<tr id="row17981103311169"><td class="cellrowborder" valign="top" width="23.87%" headers="mcps1.1.3.1.1 "><p id="p698223313169"><a name="p698223313169"></a><a name="p698223313169"></a>--interval,-i</p>
</td>
<td class="cellrowborder" valign="top" width="76.13%" headers="mcps1.1.3.1.2 "><p id="p12982633141617"><a name="p12982633141617"></a><a name="p12982633141617"></a><span>采集数据的时间间隔,单位秒,默认采集间隔5秒</span></p>
</td>
</tr>
</tbody>
</table>
## 使用示例<a name="section5961238145111"></a>
```
# atune-adm collection --filename name --interval 5 --duration 1200 --output_path /home/data --disk sda --network eth0 --workload_type test_type
```
# define<a name="ZH-CN_TOPIC_0213225905"></a>
## 功能描述<a name="section124121426195015"></a>
添加用户自定义的workload\_type,及对应的profile优化项。
## 命令格式<a name="section1019897115110"></a>
**atune-adm define** <WORKLOAD\_TYPE\> <PROFILE\_NAME\> <PROFILE\_PATH\>
## 使用示例<a name="section5961238145111"></a>
新增一个workload type,workload type的名称为test\_type,profile name的名称为test\_name,优化项的配置文件为example.conf。
```
# atune-adm define test_type test_name ./example.conf
```
example.conf 可以参考如下方式书写(以下各优化项非必填,仅供参考),也可通过**atune-adm info**查看已有的profile是如何书写的。
```
[main]
# list its parent profile
[tip]
# the recommended optimization, which should be performed manunaly
[check]
# check the environment
[affinity.irq]
# to change the affinity of irqs
[affinity.task]
# to change the affinity of tasks
[bios]
# to change the bios config
[bootloader.grub2]
# to change the grub2 config
[kernel_config]
# to change the kernel config
[script]
# the script extention of cpi
[sysctl]
# to change the /proc/sys/* config
[sysfs]
# to change the /sys/* config
[systemctl]
# to change the system service config
[ulimit]
# to change the resources limit of user
```
# info<a name="ZH-CN_TOPIC_0213225904"></a>
## 功能描述<a name="section124121426195015"></a>
查看workload\_type对应的profile内容。
## 命令格式<a name="section1019897115110"></a>
**atune-adm info** <WORKLOAD\_TYPE_\>_
## 使用示例<a name="section5961238145111"></a>
查看webserver的profile内容:
```
# atune-adm info webserver
*** ssl_webserver:
#
# webserver tuned configuration
#
[main]
#TODO CONFIG
[kernel_config]
#TODO CONFIG
[bios]
#TODO CONFIG
[sysfs]
#TODO CONFIG
[sysctl]
fs.file-max=6553600
fs.suid_dumpable = 1
fs.aio-max-nr = 1048576
kernel.shmmax = 68719476736
kernel.shmall = 4294967296
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_syncookies = 1
net.ipv4.ip_local_port_range = 1024 65500
net.ipv4.tcp_max_tw_buckets = 5000
net.core.somaxconn = 65535
net.core.netdev_max_backlog = 262144
net.ipv4.tcp_max_orphans = 262144
net.ipv4.tcp_max_syn_backlog = 262144
net.ipv4.tcp_timestamps = 0
net.ipv4.tcp_synack_retries = 1
net.ipv4.tcp_syn_retries = 1
net.ipv4.tcp_fin_timeout = 1
net.ipv4.tcp_keepalive_time = 60
net.ipv4.tcp_mem = 362619 483495 725238
net.ipv4.tcp_rmem = 4096 87380 6291456
net.ipv4.tcp_wmem = 4096 16384 4194304
net.core.wmem_default = 8388608
net.core.rmem_default = 8388608
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
[systemctl]
sysmonitor=stop
irqbalance=stop
[bootloader.grub2]
selinux=0
iommu.passthrough=1
[tip]
bind your master process to the CPU near the network = affinity
bind your network interrupt to the CPU that has this network = affinity
relogin into the system to enable limits setting = OS
[script]
openssl_hpre = 0
prefetch = off
[ulimit]
{user}.hard.nofile = 102400
{user}.soft.nofile = 102400
[affinity.task]
#TODO CONFIG
[affinity.irq]
#TODO CONFIG
[check]
#TODO CONFIG
```
# list<a name="ZH-CN_TOPIC_0213225902"></a>
## 功能描述<a name="section124121426195015"></a>
查询系统当前支持的workload\_type和对应的profile,以及当前处于active状态的profile。
## 命令格式<a name="section1019897115110"></a>
**atune-adm list**
## 使用示例<a name="section5961238145111"></a>
```
# atune-adm list
Support WorkloadTypes:
+-----------------------------------+------------------------+-----------+
| WorkloadType | ProfileName | Active |
+===================================+========================+===========+
| default | default | true |
+-----------------------------------+------------------------+-----------+
| webserver | ssl_webserver | false |
+-----------------------------------+------------------------+-----------+
| big_database | database | false |
+-----------------------------------+------------------------+-----------+
| big_data | big_data | false |
+-----------------------------------+------------------------+-----------+
| in-memory_computing | in-memory_computing | false |
+-----------------------------------+------------------------+-----------+
| in-memory_database | in-memory_database | false |
+-----------------------------------+------------------------+-----------+
| single_computer_intensive_jobs | compute-intensive | false |
+-----------------------------------+------------------------+-----------+
| communication | rpc_communication | false |
+-----------------------------------+------------------------+-----------+
| idle | default | false |
+-----------------------------------+------------------------+-----------+
```
>![](public_sys-resources/icon-note.gif) **说明:**
>Active为true表示当前激活的profile,示例表示当前激活的是default类型对应的profile。
# profile<a name="ZH-CN_TOPIC_0213225903"></a>
## 功能描述<a name="section124121426195015"></a>
手动激活workload\_type对应的profile,使得workload\_type处于active状态。
## 命令格式<a name="section1019897115110"></a>
**atune-adm profile **_<_WORKLOAD\_TYPE_\>_
## 参数说明<a name="section13406211624"></a>
WORKLOAD\_TYPE支持的类型参考list命令查询结果。
## 使用示例<a name="section5961238145111"></a>
激活webserver对应的profile配置。
```
# atune-adm profile webserver
```
# rollback<a name="ZH-CN_TOPIC_0213225930"></a>
## 功能描述<a name="section124121426195015"></a>
回退当前的配置到系统的初始配置。
## 命令格式<a name="section1019897115110"></a>
**atune-adm rollback**
## 使用示例<a name="section5961238145111"></a>
```
# atune-adm rollback
```
# train<a name="ZH-CN_TOPIC_0213225909"></a>
## 功能描述<a name="section124121426195015"></a>
使用采集的数据进行模型的训练。训练时至少采集两种workload\_type的数据,否则训练会出错。
## 命令格式<a name="section1019897115110"></a>
**atune-adm train** <OPTIONS\>
## 参数说明<a name="section4591487175"></a>
- OPTIONS
<a name="zh-cn_topic_0210923699_table847613161310"></a>
<table><thead align="left"><tr id="zh-cn_topic_0210923699_row349814169120"><th class="cellrowborder" valign="top" width="23.87%" id="mcps1.1.3.1.1"><p id="zh-cn_topic_0210923699_p1549841614116"><a name="zh-cn_topic_0210923699_p1549841614116"></a><a name="zh-cn_topic_0210923699_p1549841614116"></a>参数</p>
</th>
<th class="cellrowborder" valign="top" width="76.13%" id="mcps1.1.3.1.2"><p id="zh-cn_topic_0210923699_p84988168119"><a name="zh-cn_topic_0210923699_p84988168119"></a><a name="zh-cn_topic_0210923699_p84988168119"></a>描述</p>
</th>
</tr>
</thead>
<tbody><tr id="zh-cn_topic_0210923699_row13499181612118"><td class="cellrowborder" valign="top" width="23.87%" headers="mcps1.1.3.1.1 "><p id="zh-cn_topic_0210923699_p24993163119"><a name="zh-cn_topic_0210923699_p24993163119"></a><a name="zh-cn_topic_0210923699_p24993163119"></a>--data_path, -d</p>
</td>
<td class="cellrowborder" valign="top" width="76.13%" headers="mcps1.1.3.1.2 "><p id="zh-cn_topic_0210923699_p134991316818"><a name="zh-cn_topic_0210923699_p134991316818"></a><a name="zh-cn_topic_0210923699_p134991316818"></a>存放模型训练所需的csv文件的目录</p>
</td>
</tr>
<tr id="zh-cn_topic_0210923699_row149914161115"><td class="cellrowborder" valign="top" width="23.87%" headers="mcps1.1.3.1.1 "><p id="zh-cn_topic_0210923699_p14991516914"><a name="zh-cn_topic_0210923699_p14991516914"></a><a name="zh-cn_topic_0210923699_p14991516914"></a>--output_file, -o</p>
</td>
<td class="cellrowborder" valign="top" width="76.13%" headers="mcps1.1.3.1.2 "><p id="zh-cn_topic_0210923699_p049916166114"><a name="zh-cn_topic_0210923699_p049916166114"></a><a name="zh-cn_topic_0210923699_p049916166114"></a>训练生成的新模型</p>
</td>
</tr>
</tbody>
</table>
## 使用示例<a name="section5961238145111"></a>
使用data目录下的csv文件作为训练输入,生成的新模型new-model.m存放在model目录下。
```
# atune-adm train --data_path /home/data --output_file /usr/libexec/atuned/analysis/models/new-model.m
```
此差异已折叠。
# undefine<a name="ZH-CN_TOPIC_0213225907"></a>
## 功能描述<a name="section124121426195015"></a>
删除用户自定义的workload\_type。
## 命令格式<a name="section1019897115110"></a>
**atune-adm undefine** <WORKLOAD\_TYPE\>
## 使用示例<a name="section5961238145111"></a>
删除自定义的负载类型test\_type。
```
# atune-adm undefine test_type
```
# update<a name="ZH-CN_TOPIC_0213225906"></a>
## 功能描述<a name="section124121426195015"></a>
将workload\_type原来的优化项更新为new.conf中的内容。
## 命令格式<a name="section1019897115110"></a>
**atune-adm update** <WORKLOAD\_TYPE\> <PROFILE\_NAME\> <PROFILE\_FILE\>
## 使用示例<a name="section5961238145111"></a>
更新负载类型为test\_type,优化项名称为test\_name的优化项为new.conf。
```
# atune-adm update test_type test_name ./new.conf
```
# upgrade<a name="ZH-CN_TOPIC_0213225931"></a>
## 功能描述<a name="section124121426195015"></a>
更新系统的数据库。
## 命令格式<a name="section1019897115110"></a>
**atune-adm upgrade** <DB\_FILE\>
## 参数说明<a name="section19419181017266"></a>
- DB\_FILE
新的数据库文件路径
## 使用示例<a name="section5961238145111"></a>
数据库更新为new\_sqlite.db。
```
# atune-adm upgrade ./new_sqlite.db
```
# 分析负载类型并自优化<a name="ZH-CN_TOPIC_0214607039"></a>
\ No newline at end of file
# 前言<a name="ZH-CN_TOPIC_0213178446"></a>
## 概述<a name="section4537382116410"></a>
本文档介绍openEuler系统性能自优化软件A-Tune的安装部署和使用方法,以指导用户快速了解并使用A-Tune。
## 读者对象<a name="section4378592816410"></a>
本文档适用于使用openEuler系统并希望了解和使用A-Tune的社区开发者、开源爱好者以及相关合作伙伴。使用人员需要具备基本的Linux操作系统知识。
## 符号约定<a name="section133020216410"></a>
在本文中可能出现下列标志,它们所代表的含义如下。
<a name="table2622507016410"></a>
<table><thead align="left"><tr id="row1530720816410"><th class="cellrowborder" valign="top" width="20.580000000000002%" id="mcps1.1.3.1.1"><p id="p6450074116410"><a name="p6450074116410"></a><a name="p6450074116410"></a><strong id="b2136615816410"><a name="b2136615816410"></a><a name="b2136615816410"></a>符号</strong></p>
</th>
<th class="cellrowborder" valign="top" width="79.42%" id="mcps1.1.3.1.2"><p id="p5435366816410"><a name="p5435366816410"></a><a name="p5435366816410"></a><strong id="b5941558116410"><a name="b5941558116410"></a><a name="b5941558116410"></a>说明</strong></p>
</th>
</tr>
</thead>
<tbody><tr id="row5786682116410"><td class="cellrowborder" valign="top" width="20.580000000000002%" headers="mcps1.1.3.1.1 "><p id="p2204984716410"><a name="p2204984716410"></a><a name="p2204984716410"></a><a name="image4504446716410"></a><a name="image4504446716410"></a><span><img class="" id="image4504446716410" height="25.270000000000003" width="55.9265" src="figures/zh-cn_image_0213178479.png"></span></p>
</td>
<td class="cellrowborder" valign="top" width="79.42%" headers="mcps1.1.3.1.2 "><p id="p4388861916410"><a name="p4388861916410"></a><a name="p4388861916410"></a>用于传递设备或环境安全警示信息。如不避免则可能会导致设备损坏、数据丢失、设备性能降低或其它不可预知的结果。</p>
<p id="p1238861916410"><a name="p1238861916410"></a><a name="p1238861916410"></a>“须知”不涉及人身伤害。</p>
</td>
</tr>
<tr id="row2856923116410"><td class="cellrowborder" valign="top" width="20.580000000000002%" headers="mcps1.1.3.1.1 "><p id="p5555360116410"><a name="p5555360116410"></a><a name="p5555360116410"></a><a name="image799324016410"></a><a name="image799324016410"></a><span><img class="" id="image799324016410" height="15.96" width="47.88" src="figures/zh-cn_image_0213178480.png"></span></p>
</td>
<td class="cellrowborder" valign="top" width="79.42%" headers="mcps1.1.3.1.2 "><p id="p4612588116410"><a name="p4612588116410"></a><a name="p4612588116410"></a>对正文中重点信息的补充说明。</p>
<p id="p1232588116410"><a name="p1232588116410"></a><a name="p1232588116410"></a>“说明”不是安全警示信息,不涉及人身、设备及环境伤害信息。</p>
</td>
</tr>
</tbody>
</table>
# 参数自调优<a name="ZH-CN_TOPIC_0214607047"></a>
A-Tune提供了最佳配置的自动搜索能力,免去人工反复做参数调整、性能评价的调优过程,极大地提升最优配置的搜寻效率。
\ No newline at end of file
# 启动A-Tune<a name="ZH-CN_TOPIC_0213178457"></a>
A-Tune安装完成后,需要启动A-Tune服务才能使用。
- 启动atuned服务:
```
# systemctl start atuned
```
- 查询atuned服务状态:
```
# systemctl status atuned
```
若回显为如下,则服务启动成功。
![](figures/zh-cn_image_0214540398.png)
# 回滚profile<a name="ZH-CN_TOPIC_0214607042"></a>
\ No newline at end of file
# 安装A-Tune<a name="ZH-CN_TOPIC_0213178452"></a>
本章介绍A-Tune的安装模式和安装方法。
\ No newline at end of file
# 安装与部署<a name="ZH-CN_TOPIC_0213178449"></a>
# 安装与部署
本章介绍如何安装和部署A-Tune。
<!-- TOC -->
- [安装与部署](#安装与部署)
- [软硬件要求](#软硬件要求)
- [环境准备](#环境准备)
- [安装A-Tune](#安装A-Tune)
- [安装模式介绍](#安装模式介绍)
- [安装操作](#安装操作)
- [部署A-Tune](#部署A-Tune)
- [配置介绍](#配置介绍)
- [启动A-Tune](#启动A-Tune)
<!-- /TOC -->
## 软硬件要求
### 硬件要求<a name="section175931749114410"></a>
- 鲲鹏920处理器
### 软件要求<a name="section19201810164619"></a>
- 操作系统:openEuler 20.03 LTS
## 环境准备
安装openEuler系统,安装方法参考《openEuler 20.03 LTS 安装指南》。
## 安装A-Tune
本章介绍A-Tune的安装模式和安装方法。
### 安装模式介绍
A-Tune支持单机模式和分布式模式安装:
- 单机模式
client和server安装到同一台机器上。
- 分布式模式
client和server分别安装在不同的机器上。
两种安装模式的简单图示如下:
![](figures/zh-cn_image_0231122163.png)
### 安装操作
安装A-Tune的操作步骤如下:
1. 挂载openEuler的iso文件。
```
# mount openEuler-20.03-LTS-aarch64-dvd.iso /mnt
```
2. 配置本地yum源。
```
# vim /etc/yum.repos.d/local.repo
```
配置内容如下所示:
```
[local]
name=local
baseurl=file:///mnt
gpgcheck=1
enabled=1
```
3. 将RPM数字签名的GPG公钥导入系统。
```
# rpm --import /mnt/RPM-GPG-KEY-openEuler
```
4. 安装A-Tune服务端。
>![](public_sys-resources/icon-note.gif) **说明:**
>本步骤会同时安装服务端和客户端软件包,对于单机部署模式,请跳过**步骤5**。
```
# yum install atune -y
```
将RPM数字签名的GPG公钥导入系统。rpm --import /mnt/RPM-GPG-KEY-openEuler
5. 若为分布式部署,请安装A-Tune客户端。
```
# yum install atune-client -y
```
6. 验证是否安装成功。
```
# rpm -qa | grep atune
atune-client-xxx
atune-db-xxx
atune-xxx
```
有如上回显信息表示安装成功。
## 部署A-Tune
本章介绍A-Tune的配置部署。
### 配置介绍
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信息
为系统启动时默认采集的系统硬件信息。
### 配置示例<a name="section616213774714"></a>
```
##################################### server ###############################
# atuned config
[server]
# the protocol grpc server running on
# ranges: unix or tcp
protocol = unix
# the address that the grpc server to bind to
# default is unix socket /var/run/atuned/atuned.sock
# ranges: /var/run/atuned/atuned.sock or ip
address = /var/run/atuned/atuned.sock
# the atuned grpc listening port, default is 60001
# the port can be set between 0 to 65535 which not be used
port = 60001
# the rest service listening port, default is 8383
# the port can be set between 0 to 65535 which not be used
rest_port = 8383
# when run analysis command, the numbers of collected data.
# default is 20
sample_num = 20
# Enable gRPC and http server authentication SSL/TLS
# default is false
# tls = true
# tlsservercertfile = /etc/atuned/server.pem
# tlsserverkeyfile = /etc/atuned/server.key
# tlshttpcertfile = /etc/atuned/http/server.pem
# tlshttpkeyfile = /etc/atuned/http/server.key
# tlshttpcacertfile = /etc/atuned/http/cacert.pem
##################################### log ###############################
# Either "debug", "info", "warn", "error", "critical", default is "info"
level = info
##################################### monitor ###############################
[monitor]
# With the module and format of the MPI, the format is {module}_{purpose}
# The module is Either "mem", "net", "cpu", "storage"
# The purpose is "topo"
module = mem_topo, cpu_topo
##################################### system ###############################
# you can add arbitrary key-value here, just like key = value
# you can use the key in the profile
[system]
# the disk to be analysis
disk = sda
# the network to be analysis
network = enp189s0f0
user = root
```
## 启动A-Tune
A-Tune安装完成后,需要启动A-Tune服务才能使用。
- 启动atuned服务:
```
# systemctl start atuned
```
- 查询atuned服务状态:
```
# systemctl status atuned
```
若回显为如下,则服务启动成功。
![](figures/zh-cn_image_0214540398.png)
# 安装操作<a name="ZH-CN_TOPIC_0213178454"></a>
安装A-Tune的操作步骤如下:
1. 挂载openEuler的iso文件。
```
# mount openEuler-20.03-LTS-aarch64-dvd.iso /mnt
```
2. 配置本地yum源。
```
# vim /etc/yum.repos.d/local.repo
```
配置内容如下所示:
```
[local]
name=local
baseurl=file:///mnt
gpgcheck=0
enabled=1
```
3. 安装A-Tune服务端。
>![](public_sys-resources/icon-note.gif) **说明:**
>本步骤会同时安装服务端和客户端软件包,对于单机部署模式,请跳过**步骤4**。
```
# yum install atune -y
```
4. 若为分布式部署,请安装A-Tune客户端。
```
# yum install atune-client -y
```
5. 验证是否安装成功。
```
# rpm -qa | grep atune
atune-client-xxx
atune-db-xxx
atune-xxx
```
有如上回显信息表示安装成功。
# 安装模式介绍<a name="ZH-CN_TOPIC_0213178453"></a>
A-Tune支持单机模式和分布式模式安装:
- 单机模式
client和server安装到同一台机器上。
- 分布式模式
client和server分别安装在不同的机器上。
两种安装模式的简单图示如下:
![](figures/zh-cn_image_0231122163.png)
# 常见问题与解决方法<a name="ZH-CN_TOPIC_0230017281"></a>
# 常见问题与解决方法
**问题1:train命令训练模型出错,提示“training data faild”**
## **问题1:train命令训练模型出错,提示“training data faild”**
原因:collection命令只采集一种类型的数据。
解决方法:至少采集两种数据类型的数据进行训练。
**问题2:atune-adm无法连接atuned服务。**
## **问题2:atune-adm无法连接atuned服务**
可能原因:
......@@ -43,7 +43,7 @@
```
**问题3:atuned服务无法启动,提示“Job for atuned.service failed because a timeout was exceeded.”**
## **问题3:atuned服务无法启动,提示“Job for atuned.service failed because a timeout was exceeded.”**
原因:hosts文件中缺少localhost配置
......
# 总体说明<a name="ZH-CN_TOPIC_0231482093"></a>
- atune-adm支持的命令可以通过 **atune-adm help/--help/-h** 查询。
- 使用方法中所有命令的使用举例都是在单机部署模式下,如果是在分布式部署模式下,需要指定服务器IP和端口号,例如:
```
# atune-adm -a 192.168.3.196 -p 60001 list
```
- define、update、undefine、collection、train、upgrade不支持远程执行。
- 命令格式中,\[ \] 表示参数可选,<\> 表示参数必选,具体参数由实际情况确定。
- 命令格式中,各命令含义如下:
- WORKLOAD\_TYPE:用户自定义负载类型的名称,负载支持的类型参考list命令查询结果。
- PROFILE\_NAME:用户自定义profile的名称
- PROFILE\_PATH:用户自定义profile的路径
# 支持特性与业务模型<a name="ZH-CN_TOPIC_0213178448"></a>
## 支持特性<a name="section1743310211743"></a>
A-Tune支持的主要特性、特性成熟度以及使用建议请参见[表1](#table1919220557576)
**表 1** 特性成熟度
<a name="table1919220557576"></a>
<table><thead align="left"><tr id="row81921355135715"><th class="cellrowborder" valign="top" width="33.33333333333333%" id="mcps1.2.4.1.1"><p id="p1419275514576"><a name="p1419275514576"></a><a name="p1419275514576"></a><strong id="b175661223205512"><a name="b175661223205512"></a><a name="b175661223205512"></a>特性</strong></p>
</th>
<th class="cellrowborder" valign="top" width="33.33333333333333%" id="mcps1.2.4.1.2"><p id="p7192195520572"><a name="p7192195520572"></a><a name="p7192195520572"></a><strong id="b185678233555"><a name="b185678233555"></a><a name="b185678233555"></a>成熟度</strong></p>
</th>
<th class="cellrowborder" valign="top" width="33.33333333333333%" id="mcps1.2.4.1.3"><p id="p519205518573"><a name="p519205518573"></a><a name="p519205518573"></a><strong id="b1156872320553"><a name="b1156872320553"></a><a name="b1156872320553"></a>使用建议</strong></p>
</th>
</tr>
</thead>
<tbody><tr id="row519275518572"><td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.1 "><p id="p1349454518111"><a name="p1349454518111"></a><a name="p1349454518111"></a>七大类11款应用负载类型自动优化</p>
</td>
<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.2 "><p id="p48001027191117"><a name="p48001027191117"></a><a name="p48001027191117"></a>已测试</p>
</td>
<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.3 "><p id="p15192195515715"><a name="p15192195515715"></a><a name="p15192195515715"></a>试用</p>
</td>
</tr>
<tr id="row919217552579"><td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.1 "><p id="p519218559571"><a name="p519218559571"></a><a name="p519218559571"></a>自定义负载类型和业务模型</p>
</td>
<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.2 "><p id="p18192655115710"><a name="p18192655115710"></a><a name="p18192655115710"></a>已测试</p>
</td>
<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.3 "><p id="p71921655145717"><a name="p71921655145717"></a><a name="p71921655145717"></a>试用</p>
</td>
</tr>
<tr id="row71921155165711"><td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.1 "><p id="p619217556575"><a name="p619217556575"></a><a name="p619217556575"></a>参数自调优</p>
</td>
<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.2 "><p id="p11192135595712"><a name="p11192135595712"></a><a name="p11192135595712"></a>已测试</p>
</td>
<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.3 "><p id="p2019235511575"><a name="p2019235511575"></a><a name="p2019235511575"></a>试用</p>
</td>
</tr>
</tbody>
</table>
## 支持业务模型<a name="section1899518171052"></a>
根据应用的负载特征,A-Tune将业务分为七大类,各类型的负载特征和A-Tune支持的应用请参见[表2](#table2819164611311)
**表 2** 支持的业务类型和应用
<a name="table2819164611311"></a>
<table><thead align="left"><tr id="row49114466133"><th class="cellrowborder" valign="top" width="22.12%" id="mcps1.2.5.1.1"><p id="p09116467130"><a name="p09116467130"></a><a name="p09116467130"></a><strong id="b20879355579"><a name="b20879355579"></a><a name="b20879355579"></a>负载模型</strong></p>
</th>
<th class="cellrowborder" valign="top" width="12.959999999999999%" id="mcps1.2.5.1.2"><p id="p953251510111"><a name="p953251510111"></a><a name="p953251510111"></a><strong id="b11881145155715"><a name="b11881145155715"></a><a name="b11881145155715"></a>业务类型</strong></p>
</th>
<th class="cellrowborder" valign="top" width="37.269999999999996%" id="mcps1.2.5.1.3"><p id="p169111846181310"><a name="p169111846181310"></a><a name="p169111846181310"></a><strong id="b1213516721612"><a name="b1213516721612"></a><a name="b1213516721612"></a>负载特征</strong></p>
</th>
<th class="cellrowborder" valign="top" width="27.650000000000002%" id="mcps1.2.5.1.4"><p id="p1591144617135"><a name="p1591144617135"></a><a name="p1591144617135"></a><strong id="b31363721611"><a name="b31363721611"></a><a name="b31363721611"></a>支持的应用</strong></p>
</th>
</tr>
</thead>
<tbody><tr id="row17911114651318"><td class="cellrowborder" valign="top" width="22.12%" headers="mcps1.2.5.1.1 "><p id="p1791124631317"><a name="p1791124631317"></a><a name="p1791124631317"></a>default</p>
</td>
<td class="cellrowborder" valign="top" width="12.959999999999999%" headers="mcps1.2.5.1.2 "><p id="p45321515191120"><a name="p45321515191120"></a><a name="p45321515191120"></a>默认类型</p>
</td>
<td class="cellrowborder" valign="top" width="37.269999999999996%" headers="mcps1.2.5.1.3 "><p id="p691184671312"><a name="p691184671312"></a><a name="p691184671312"></a>CPU、内存带宽、网络、IO各维度资源使用率都不高</p>
</td>
<td class="cellrowborder" valign="top" width="27.650000000000002%" headers="mcps1.2.5.1.4 "><p id="p69111946131318"><a name="p69111946131318"></a><a name="p69111946131318"></a>N/A</p>
</td>
</tr>
<tr id="row791164631318"><td class="cellrowborder" valign="top" width="22.12%" headers="mcps1.2.5.1.1 "><p id="p179110461137"><a name="p179110461137"></a><a name="p179110461137"></a>webserver</p>
</td>
<td class="cellrowborder" valign="top" width="12.959999999999999%" headers="mcps1.2.5.1.2 "><p id="p20532111512117"><a name="p20532111512117"></a><a name="p20532111512117"></a>https应用</p>
</td>
<td class="cellrowborder" valign="top" width="37.269999999999996%" headers="mcps1.2.5.1.3 "><p id="p1191117469133"><a name="p1191117469133"></a><a name="p1191117469133"></a>CPU使用率高</p>
</td>
<td class="cellrowborder" valign="top" width="27.650000000000002%" headers="mcps1.2.5.1.4 "><p id="p159111546161317"><a name="p159111546161317"></a><a name="p159111546161317"></a>Nginx</p>
</td>
</tr>
<tr id="row13911946141311"><td class="cellrowborder" valign="top" width="22.12%" headers="mcps1.2.5.1.1 "><p id="p2911164610134"><a name="p2911164610134"></a><a name="p2911164610134"></a>big_database</p>
</td>
<td class="cellrowborder" valign="top" width="12.959999999999999%" headers="mcps1.2.5.1.2 "><p id="p4532111561119"><a name="p4532111561119"></a><a name="p4532111561119"></a>数据库</p>
</td>
<td class="cellrowborder" valign="top" width="37.269999999999996%" headers="mcps1.2.5.1.3 "><a name="ul3724104521013"></a><a name="ul3724104521013"></a><ul id="ul3724104521013"><li>关系型数据库<p id="p14911124612131"><a name="p14911124612131"></a><a name="p14911124612131"></a>读: CPU、内存带宽、网络使用率高</p>
<p id="p1491144619136"><a name="p1491144619136"></a><a name="p1491144619136"></a>写:IO使用率高</p>
</li></ul>
<a name="ul26021547101013"></a><a name="ul26021547101013"></a><ul id="ul26021547101013"><li>非关系型数据库<p id="p169111462130"><a name="p169111462130"></a><a name="p169111462130"></a>CPU、IO使用率高</p>
</li></ul>
</td>
<td class="cellrowborder" valign="top" width="27.650000000000002%" headers="mcps1.2.5.1.4 "><p id="p1091134671313"><a name="p1091134671313"></a><a name="p1091134671313"></a>MongoDB、MySQL、PostgreSQL、MariaDB</p>
</td>
</tr>
<tr id="row3911174641312"><td class="cellrowborder" valign="top" width="22.12%" headers="mcps1.2.5.1.1 "><p id="p491144611319"><a name="p491144611319"></a><a name="p491144611319"></a>big_data</p>
</td>
<td class="cellrowborder" valign="top" width="12.959999999999999%" headers="mcps1.2.5.1.2 "><p id="p953261521112"><a name="p953261521112"></a><a name="p953261521112"></a>大数据</p>
</td>
<td class="cellrowborder" valign="top" width="37.269999999999996%" headers="mcps1.2.5.1.3 "><p id="p129111046151315"><a name="p129111046151315"></a><a name="p129111046151315"></a>CPU、IO使用率较高</p>
</td>
<td class="cellrowborder" valign="top" width="27.650000000000002%" headers="mcps1.2.5.1.4 "><p id="p119111946161317"><a name="p119111946161317"></a><a name="p119111946161317"></a>Hadoop、Spark</p>
</td>
</tr>
<tr id="row591112462132"><td class="cellrowborder" valign="top" width="22.12%" headers="mcps1.2.5.1.1 "><p id="p1791104661313"><a name="p1791104661313"></a><a name="p1791104661313"></a>in-memory_computing</p>
</td>
<td class="cellrowborder" valign="top" width="12.959999999999999%" headers="mcps1.2.5.1.2 "><p id="p453291517111"><a name="p453291517111"></a><a name="p453291517111"></a>内存密集型应用</p>
</td>
<td class="cellrowborder" valign="top" width="37.269999999999996%" headers="mcps1.2.5.1.3 "><p id="p591184671318"><a name="p591184671318"></a><a name="p591184671318"></a>CPU、内存带宽使用率高</p>
</td>
<td class="cellrowborder" valign="top" width="27.650000000000002%" headers="mcps1.2.5.1.4 "><p id="p2912846121315"><a name="p2912846121315"></a><a name="p2912846121315"></a>SPECjbb2015</p>
</td>
</tr>
<tr id="row59121246181320"><td class="cellrowborder" valign="top" width="22.12%" headers="mcps1.2.5.1.1 "><p id="p1391204619130"><a name="p1391204619130"></a><a name="p1391204619130"></a>in-memory_database</p>
</td>
<td class="cellrowborder" valign="top" width="12.959999999999999%" headers="mcps1.2.5.1.2 "><p id="p65328153111"><a name="p65328153111"></a><a name="p65328153111"></a>计算+网络密集型应用</p>
</td>
<td class="cellrowborder" valign="top" width="37.269999999999996%" headers="mcps1.2.5.1.3 "><p id="p3912164617133"><a name="p3912164617133"></a><a name="p3912164617133"></a>CPU单核使用率高,多实例下网络使用率高</p>
</td>
<td class="cellrowborder" valign="top" width="27.650000000000002%" headers="mcps1.2.5.1.4 "><p id="p1691254621313"><a name="p1691254621313"></a><a name="p1691254621313"></a>Redis</p>
</td>
</tr>
<tr id="row1891264641315"><td class="cellrowborder" valign="top" width="22.12%" headers="mcps1.2.5.1.1 "><p id="p391214621312"><a name="p391214621312"></a><a name="p391214621312"></a>single_computer_intensive_jobs</p>
</td>
<td class="cellrowborder" valign="top" width="12.959999999999999%" headers="mcps1.2.5.1.2 "><p id="p55324155117"><a name="p55324155117"></a><a name="p55324155117"></a>计算密集型应用</p>
</td>
<td class="cellrowborder" valign="top" width="37.269999999999996%" headers="mcps1.2.5.1.3 "><p id="p1912164651319"><a name="p1912164651319"></a><a name="p1912164651319"></a>CPU单核使用率高,部分子项内存带宽使用率高</p>
</td>
<td class="cellrowborder" valign="top" width="27.650000000000002%" headers="mcps1.2.5.1.4 "><p id="p9912746121311"><a name="p9912746121311"></a><a name="p9912746121311"></a>SPECCPU2006</p>
</td>
</tr>
<tr id="row2912184671312"><td class="cellrowborder" valign="top" width="22.12%" headers="mcps1.2.5.1.1 "><p id="p1391213464130"><a name="p1391213464130"></a><a name="p1391213464130"></a>communication</p>
</td>
<td class="cellrowborder" valign="top" width="12.959999999999999%" headers="mcps1.2.5.1.2 "><p id="p153210159118"><a name="p153210159118"></a><a name="p153210159118"></a>网络密集型应用</p>
</td>
<td class="cellrowborder" valign="top" width="37.269999999999996%" headers="mcps1.2.5.1.3 "><p id="p591214460137"><a name="p591214460137"></a><a name="p591214460137"></a>CPU、网络使用率高</p>
</td>
<td class="cellrowborder" valign="top" width="27.650000000000002%" headers="mcps1.2.5.1.4 "><p id="p391214619139"><a name="p391214619139"></a><a name="p391214619139"></a>Dubbo</p>
</td>
</tr>
<tr id="row1991224641317"><td class="cellrowborder" valign="top" width="22.12%" headers="mcps1.2.5.1.1 "><p id="p5912154613139"><a name="p5912154613139"></a><a name="p5912154613139"></a>idle</p>
</td>
<td class="cellrowborder" valign="top" width="12.959999999999999%" headers="mcps1.2.5.1.2 "><p id="p12532161561115"><a name="p12532161561115"></a><a name="p12532161561115"></a>系统idle</p>
</td>
<td class="cellrowborder" valign="top" width="37.269999999999996%" headers="mcps1.2.5.1.3 "><p id="p10912154631311"><a name="p10912154631311"></a><a name="p10912154631311"></a>系统处于空闲状态,无任何应用运行</p>
</td>
<td class="cellrowborder" valign="top" width="27.650000000000002%" headers="mcps1.2.5.1.4 "><p id="p11912164617133"><a name="p11912164617133"></a><a name="p11912164617133"></a>N/A</p>
</td>
</tr>
</tbody>
</table>
# 更新profile<a name="ZH-CN_TOPIC_0231339363"></a>
用户根据需要更新已有profile。
\ No newline at end of file
# 更新数据库<a name="ZH-CN_TOPIC_0214607043"></a>
\ No newline at end of file
# 术语和缩略语<a name="ZH-CN_TOPIC_0215191202"></a>
**表 1** 术语表
<a name="table1851716468384"></a>
<table><thead align="left"><tr id="row4517946163817"><th class="cellrowborder" valign="top" width="50%" id="mcps1.2.3.1.1"><p id="p951884613382"><a name="p951884613382"></a><a name="p951884613382"></a>术语</p>
</th>
<th class="cellrowborder" valign="top" width="50%" id="mcps1.2.3.1.2"><p id="p14518114693817"><a name="p14518114693817"></a><a name="p14518114693817"></a>含义</p>
</th>
</tr>
</thead>
<tbody><tr id="row1151816466383"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.1 "><p id="p14597739134615"><a name="p14597739134615"></a><a name="p14597739134615"></a>workload_type</p>
</td>
<td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.2 "><p id="p17726174816227"><a name="p17726174816227"></a><a name="p17726174816227"></a>负载类型,用于标记具有相同特征的一类业务</p>
</td>
</tr>
<tr id="row20518154612386"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.1 "><p id="p4518144612386"><a name="p4518144612386"></a><a name="p4518144612386"></a>profile</p>
</td>
<td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.2 "><p id="p17597758162211"><a name="p17597758162211"></a><a name="p17597758162211"></a>优化项集合,最佳的参数配置</p>
</td>
</tr>
</tbody>
</table>
# 架构<a name="ZH-CN_TOPIC_0213867992"></a>
A-Tune核心技术架构如下图,主要包括智能决策、系统画像和交互系统三层。
- 智能决策层:包含感知和决策两个子系统,分别完成对应用的智能感知和对系统的调优决策。
- 系统画像层:主要包括标注和学习系统,标注系统用于业务模型的聚类,学习系统用于业务模型的学习和分类。
- 交互系统层:用于各类系统资源的监控和配置,调优策略执行在本层进行。
![](figures/zh-cn_image_0227497343.png)
# 查询profile<a name="ZH-CN_TOPIC_0214607040"></a>
# 查询负载类型<a name="ZH-CN_TOPIC_0214607038"></a>
\ No newline at end of file
# 法律申明<a name="ZH-CN_TOPIC_0214633563"></a>
**版权所有 © 2020 华为技术有限公司。**
您对“本文档”的复制,使用,修改及分发受知识共享\(Creative Commons\)署名—相同方式共享4.0国际公共许可协议\(以下简称“CC BY-SA 4.0”\)的约束。为了方便用户理解,您可以通过访问[https://creativecommons.org/licenses/by-sa/4.0/](https://creativecommons.org/licenses/by-sa/4.0/) 了解CC BY-SA 4.0的概要 \(但不是替代\)。CC BY-SA 4.0的完整协议内容您可以访问如下网址获取:[https://creativecommons.org/licenses/by-sa/4.0/legalcode](https://creativecommons.org/licenses/by-sa/4.0/legalcode)
**商标声明**
A-Tune、openEuler为华为技术有限公司的商标。本文档提及的其他所有商标或注册商标,由各自的所有人拥有。
**免责声明**
本文档仅作为使用指导,除非适用法强制规定或者双方有明确书面约定, 华为技术有限公司对本文档中的所有陈述、信息和建议不做任何明示或默示的声明或保证,包括但不限于不侵权,时效性或满足特定目的的担保。
# 激活profile<a name="ZH-CN_TOPIC_0214607041"></a>
\ No newline at end of file
# 环境准备<a name="ZH-CN_TOPIC_0213178451"></a>
安装openEuler系统,安装方法参考《openEuler 20.03 LTS 安装指南》。
# 简介<a name="ZH-CN_TOPIC_0213174666"></a>
操作系统作为衔接应用和硬件的基础软件,如何调整系统和应用配置,充分发挥软硬件能力,从而使业务性能达到最优,对用户至关重要。然而,运行在操作系统上的业务类型成百上千,应用形态千差万别,对资源的要求各不相同。当前硬件和基础软件组成的应用环境涉及高达7000多个配置对象,随着业务复杂度和调优对象的增加,调优所需的时间成本呈指数级增长,导致调优效率急剧下降,调优成为了一项极其复杂的工程,给用户带来巨大挑战。
其次,操作系统作为基础设施软件,提供了大量的软硬件管理能力,每种能力适用场景不尽相同,并非对所有的应用场景都通用有益,因此,不同的场景需要开启或关闭不同的能力,组合使用系统提供的各种能力,才能发挥应用程序的最佳性能。
另外,实际业务场景成千上万,计算、网络、存储等硬件配置也层出不穷,实验室无法遍历穷举所有的应用和业务场景,以及不同的硬件组合。
为了应对上述挑战,openEuler推出了A-Tune。
A-Tune是一款基于AI开发的系统性能优化引擎,它利用人工智能技术,对业务场景建立精准的系统画像,感知并推理出业务特征,进而做出智能决策,匹配并推荐最佳的系统参数配置组合,使业务处于最佳运行状态。
![](figures/zh-cn_image_0227497000.png)
# 系统信息查询<a name="ZH-CN_TOPIC_0214607044"></a>
# 自定义模型<a name="ZH-CN_TOPIC_0214607046"></a>
A-Tune支持用户定义并学习新模型。定义新模型的操作流程如下:
1. 用define命令定义workload\_type和profile
2. 用collection命令收集workload\_type对应的画像数据
3. 用train命令训练得到模型
# 认识A-Tune<a name="ZH-CN_TOPIC_0213178447"></a>
\ No newline at end of file
# 认识A-Tune
<!-- TOC -->
- [认识A-Tune](#认识A-Tune)
- [简介](#简介)
- [架构](#架构)
- [支持特性与业务模型](#支持特性与业务模型)
<!-- /TOC -->
## 简介
操作系统作为衔接应用和硬件的基础软件,如何调整系统和应用配置,充分发挥软硬件能力,从而使业务性能达到最优,对用户至关重要。然而,运行在操作系统上的业务类型成百上千,应用形态千差万别,对资源的要求各不相同。当前硬件和基础软件组成的应用环境涉及高达7000多个配置对象,随着业务复杂度和调优对象的增加,调优所需的时间成本呈指数级增长,导致调优效率急剧下降,调优成为了一项极其复杂的工程,给用户带来巨大挑战。
其次,操作系统作为基础设施软件,提供了大量的软硬件管理能力,每种能力适用场景不尽相同,并非对所有的应用场景都通用有益,因此,不同的场景需要开启或关闭不同的能力,组合使用系统提供的各种能力,才能发挥应用程序的最佳性能。
另外,实际业务场景成千上万,计算、网络、存储等硬件配置也层出不穷,实验室无法遍历穷举所有的应用和业务场景,以及不同的硬件组合。
为了应对上述挑战,openEuler推出了A-Tune。
A-Tune是一款基于AI开发的系统性能优化引擎,它利用人工智能技术,对业务场景建立精准的系统画像,感知并推理出业务特征,进而做出智能决策,匹配并推荐最佳的系统参数配置组合,使业务处于最佳运行状态。
![](figures/zh-cn_image_0227497000.png)
## 架构
A-Tune核心技术架构如下图,主要包括智能决策、系统画像和交互系统三层。
- 智能决策层:包含感知和决策两个子系统,分别完成对应用的智能感知和对系统的调优决策。
- 系统画像层:主要包括标注和学习系统,标注系统用于业务模型的聚类,学习系统用于业务模型的学习和分类。
- 交互系统层:用于各类系统资源的监控和配置,调优策略执行在本层进行。
![](figures/zh-cn_image_0227497343.png)
## 支持特性与业务模型
### 支持特性
A-Tune支持的主要特性、特性成熟度以及使用建议请参见[表1](#table1919220557576)
**表 1** 特性成熟度
<a name="table1919220557576"></a>
<table><thead align="left"><tr id="row81921355135715"><th class="cellrowborder" valign="top" width="33.33333333333333%" id="mcps1.2.4.1.1"><p id="p1419275514576"><a name="p1419275514576"></a><a name="p1419275514576"></a><strong id="b175661223205512"><a name="b175661223205512"></a><a name="b175661223205512"></a>特性</strong></p>
</th>
<th class="cellrowborder" valign="top" width="33.33333333333333%" id="mcps1.2.4.1.2"><p id="p7192195520572"><a name="p7192195520572"></a><a name="p7192195520572"></a><strong id="b185678233555"><a name="b185678233555"></a><a name="b185678233555"></a>成熟度</strong></p>
</th>
<th class="cellrowborder" valign="top" width="33.33333333333333%" id="mcps1.2.4.1.3"><p id="p519205518573"><a name="p519205518573"></a><a name="p519205518573"></a><strong id="b1156872320553"><a name="b1156872320553"></a><a name="b1156872320553"></a>使用建议</strong></p>
</th>
</tr>
</thead>
<tbody><tr id="row519275518572"><td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.1 "><p id="p1349454518111"><a name="p1349454518111"></a><a name="p1349454518111"></a>七大类11款应用负载类型自动优化</p>
</td>
<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.2 "><p id="p48001027191117"><a name="p48001027191117"></a><a name="p48001027191117"></a>已测试</p>
</td>
<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.3 "><p id="p15192195515715"><a name="p15192195515715"></a><a name="p15192195515715"></a>试用</p>
</td>
</tr>
<tr id="row919217552579"><td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.1 "><p id="p519218559571"><a name="p519218559571"></a><a name="p519218559571"></a>自定义负载类型和业务模型</p>
</td>
<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.2 "><p id="p18192655115710"><a name="p18192655115710"></a><a name="p18192655115710"></a>已测试</p>
</td>
<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.3 "><p id="p71921655145717"><a name="p71921655145717"></a><a name="p71921655145717"></a>试用</p>
</td>
</tr>
<tr id="row71921155165711"><td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.1 "><p id="p619217556575"><a name="p619217556575"></a><a name="p619217556575"></a>参数自调优</p>
</td>
<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.2 "><p id="p11192135595712"><a name="p11192135595712"></a><a name="p11192135595712"></a>已测试</p>
</td>
<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.3 "><p id="p2019235511575"><a name="p2019235511575"></a><a name="p2019235511575"></a>试用</p>
</td>
</tr>
</tbody>
</table>
### 支持业务模型
根据应用的负载特征,A-Tune将业务分为七大类,各类型的负载特征和A-Tune支持的应用请参见[表2](#table2819164611311)
**表 2** 支持的业务类型和应用
<a name="table2819164611311"></a>
<table><thead align="left"><tr id="row49114466133"><th class="cellrowborder" valign="top" width="22.12%" id="mcps1.2.5.1.1"><p id="p09116467130"><a name="p09116467130"></a><a name="p09116467130"></a><strong id="b20879355579"><a name="b20879355579"></a><a name="b20879355579"></a>负载模型</strong></p>
</th>
<th class="cellrowborder" valign="top" width="12.959999999999999%" id="mcps1.2.5.1.2"><p id="p953251510111"><a name="p953251510111"></a><a name="p953251510111"></a><strong id="b11881145155715"><a name="b11881145155715"></a><a name="b11881145155715"></a>业务类型</strong></p>
</th>
<th class="cellrowborder" valign="top" width="37.269999999999996%" id="mcps1.2.5.1.3"><p id="p169111846181310"><a name="p169111846181310"></a><a name="p169111846181310"></a><strong id="b1213516721612"><a name="b1213516721612"></a><a name="b1213516721612"></a>负载特征</strong></p>
</th>
<th class="cellrowborder" valign="top" width="27.650000000000002%" id="mcps1.2.5.1.4"><p id="p1591144617135"><a name="p1591144617135"></a><a name="p1591144617135"></a><strong id="b31363721611"><a name="b31363721611"></a><a name="b31363721611"></a>支持的应用</strong></p>
</th>
</tr>
</thead>
<tbody><tr id="row17911114651318"><td class="cellrowborder" valign="top" width="22.12%" headers="mcps1.2.5.1.1 "><p id="p1791124631317"><a name="p1791124631317"></a><a name="p1791124631317"></a>default</p>
</td>
<td class="cellrowborder" valign="top" width="12.959999999999999%" headers="mcps1.2.5.1.2 "><p id="p45321515191120"><a name="p45321515191120"></a><a name="p45321515191120"></a>默认类型</p>
</td>
<td class="cellrowborder" valign="top" width="37.269999999999996%" headers="mcps1.2.5.1.3 "><p id="p691184671312"><a name="p691184671312"></a><a name="p691184671312"></a>CPU、内存带宽、网络、IO各维度资源使用率都不高</p>
</td>
<td class="cellrowborder" valign="top" width="27.650000000000002%" headers="mcps1.2.5.1.4 "><p id="p69111946131318"><a name="p69111946131318"></a><a name="p69111946131318"></a>N/A</p>
</td>
</tr>
<tr id="row791164631318"><td class="cellrowborder" valign="top" width="22.12%" headers="mcps1.2.5.1.1 "><p id="p179110461137"><a name="p179110461137"></a><a name="p179110461137"></a>webserver</p>
</td>
<td class="cellrowborder" valign="top" width="12.959999999999999%" headers="mcps1.2.5.1.2 "><p id="p20532111512117"><a name="p20532111512117"></a><a name="p20532111512117"></a>https应用</p>
</td>
<td class="cellrowborder" valign="top" width="37.269999999999996%" headers="mcps1.2.5.1.3 "><p id="p1191117469133"><a name="p1191117469133"></a><a name="p1191117469133"></a>CPU使用率高</p>
</td>
<td class="cellrowborder" valign="top" width="27.650000000000002%" headers="mcps1.2.5.1.4 "><p id="p159111546161317"><a name="p159111546161317"></a><a name="p159111546161317"></a>Nginx</p>
</td>
</tr>
<tr id="row13911946141311"><td class="cellrowborder" valign="top" width="22.12%" headers="mcps1.2.5.1.1 "><p id="p2911164610134"><a name="p2911164610134"></a><a name="p2911164610134"></a>big_database</p>
</td>
<td class="cellrowborder" valign="top" width="12.959999999999999%" headers="mcps1.2.5.1.2 "><p id="p4532111561119"><a name="p4532111561119"></a><a name="p4532111561119"></a>数据库</p>
</td>
<td class="cellrowborder" valign="top" width="37.269999999999996%" headers="mcps1.2.5.1.3 "><a name="ul3724104521013"></a><a name="ul3724104521013"></a><ul id="ul3724104521013"><li>关系型数据库<p id="p14911124612131"><a name="p14911124612131"></a><a name="p14911124612131"></a>读: CPU、内存带宽、网络使用率高</p>
<p id="p1491144619136"><a name="p1491144619136"></a><a name="p1491144619136"></a>写:IO使用率高</p>
</li></ul>
<a name="ul26021547101013"></a><a name="ul26021547101013"></a><ul id="ul26021547101013"><li>非关系型数据库<p id="p169111462130"><a name="p169111462130"></a><a name="p169111462130"></a>CPU、IO使用率高</p>
</li></ul>
</td>
<td class="cellrowborder" valign="top" width="27.650000000000002%" headers="mcps1.2.5.1.4 "><p id="p1091134671313"><a name="p1091134671313"></a><a name="p1091134671313"></a>MongoDB、MySQL、PostgreSQL、MariaDB</p>
</td>
</tr>
<tr id="row3911174641312"><td class="cellrowborder" valign="top" width="22.12%" headers="mcps1.2.5.1.1 "><p id="p491144611319"><a name="p491144611319"></a><a name="p491144611319"></a>big_data</p>
</td>
<td class="cellrowborder" valign="top" width="12.959999999999999%" headers="mcps1.2.5.1.2 "><p id="p953261521112"><a name="p953261521112"></a><a name="p953261521112"></a>大数据</p>
</td>
<td class="cellrowborder" valign="top" width="37.269999999999996%" headers="mcps1.2.5.1.3 "><p id="p129111046151315"><a name="p129111046151315"></a><a name="p129111046151315"></a>CPU、IO使用率较高</p>
</td>
<td class="cellrowborder" valign="top" width="27.650000000000002%" headers="mcps1.2.5.1.4 "><p id="p119111946161317"><a name="p119111946161317"></a><a name="p119111946161317"></a>Hadoop、Spark</p>
</td>
</tr>
<tr id="row591112462132"><td class="cellrowborder" valign="top" width="22.12%" headers="mcps1.2.5.1.1 "><p id="p1791104661313"><a name="p1791104661313"></a><a name="p1791104661313"></a>in-memory_computing</p>
</td>
<td class="cellrowborder" valign="top" width="12.959999999999999%" headers="mcps1.2.5.1.2 "><p id="p453291517111"><a name="p453291517111"></a><a name="p453291517111"></a>内存密集型应用</p>
</td>
<td class="cellrowborder" valign="top" width="37.269999999999996%" headers="mcps1.2.5.1.3 "><p id="p591184671318"><a name="p591184671318"></a><a name="p591184671318"></a>CPU、内存带宽使用率高</p>
</td>
<td class="cellrowborder" valign="top" width="27.650000000000002%" headers="mcps1.2.5.1.4 "><p id="p2912846121315"><a name="p2912846121315"></a><a name="p2912846121315"></a>SPECjbb2015</p>
</td>
</tr>
<tr id="row59121246181320"><td class="cellrowborder" valign="top" width="22.12%" headers="mcps1.2.5.1.1 "><p id="p1391204619130"><a name="p1391204619130"></a><a name="p1391204619130"></a>in-memory_database</p>
</td>
<td class="cellrowborder" valign="top" width="12.959999999999999%" headers="mcps1.2.5.1.2 "><p id="p65328153111"><a name="p65328153111"></a><a name="p65328153111"></a>计算+网络密集型应用</p>
</td>
<td class="cellrowborder" valign="top" width="37.269999999999996%" headers="mcps1.2.5.1.3 "><p id="p3912164617133"><a name="p3912164617133"></a><a name="p3912164617133"></a>CPU单核使用率高,多实例下网络使用率高</p>
</td>
<td class="cellrowborder" valign="top" width="27.650000000000002%" headers="mcps1.2.5.1.4 "><p id="p1691254621313"><a name="p1691254621313"></a><a name="p1691254621313"></a>Redis</p>
</td>
</tr>
<tr id="row1891264641315"><td class="cellrowborder" valign="top" width="22.12%" headers="mcps1.2.5.1.1 "><p id="p391214621312"><a name="p391214621312"></a><a name="p391214621312"></a>single_computer_intensive_jobs</p>
</td>
<td class="cellrowborder" valign="top" width="12.959999999999999%" headers="mcps1.2.5.1.2 "><p id="p55324155117"><a name="p55324155117"></a><a name="p55324155117"></a>计算密集型应用</p>
</td>
<td class="cellrowborder" valign="top" width="37.269999999999996%" headers="mcps1.2.5.1.3 "><p id="p1912164651319"><a name="p1912164651319"></a><a name="p1912164651319"></a>CPU单核使用率高,部分子项内存带宽使用率高</p>
</td>
<td class="cellrowborder" valign="top" width="27.650000000000002%" headers="mcps1.2.5.1.4 "><p id="p9912746121311"><a name="p9912746121311"></a><a name="p9912746121311"></a>SPECCPU2006</p>
</td>
</tr>
<tr id="row2912184671312"><td class="cellrowborder" valign="top" width="22.12%" headers="mcps1.2.5.1.1 "><p id="p1391213464130"><a name="p1391213464130"></a><a name="p1391213464130"></a>communication</p>
</td>
<td class="cellrowborder" valign="top" width="12.959999999999999%" headers="mcps1.2.5.1.2 "><p id="p153210159118"><a name="p153210159118"></a><a name="p153210159118"></a>网络密集型应用</p>
</td>
<td class="cellrowborder" valign="top" width="37.269999999999996%" headers="mcps1.2.5.1.3 "><p id="p591214460137"><a name="p591214460137"></a><a name="p591214460137"></a>CPU、网络使用率高</p>
</td>
<td class="cellrowborder" valign="top" width="27.650000000000002%" headers="mcps1.2.5.1.4 "><p id="p391214619139"><a name="p391214619139"></a><a name="p391214619139"></a>Dubbo</p>
</td>
</tr>
<tr id="row1991224641317"><td class="cellrowborder" valign="top" width="22.12%" headers="mcps1.2.5.1.1 "><p id="p5912154613139"><a name="p5912154613139"></a><a name="p5912154613139"></a>idle</p>
</td>
<td class="cellrowborder" valign="top" width="12.959999999999999%" headers="mcps1.2.5.1.2 "><p id="p12532161561115"><a name="p12532161561115"></a><a name="p12532161561115"></a>系统idle</p>
</td>
<td class="cellrowborder" valign="top" width="37.269999999999996%" headers="mcps1.2.5.1.3 "><p id="p10912154631311"><a name="p10912154631311"></a><a name="p10912154631311"></a>系统处于空闲状态,无任何应用运行</p>
</td>
<td class="cellrowborder" valign="top" width="27.650000000000002%" headers="mcps1.2.5.1.4 "><p id="p11912164617133"><a name="p11912164617133"></a><a name="p11912164617133"></a>N/A</p>
</td>
</tr>
</tbody>
</table>
# 软硬件要求<a name="ZH-CN_TOPIC_0213178450"></a>
## 硬件要求<a name="section175931749114410"></a>
- 鲲鹏920处理器
## 软件要求<a name="section19201810164619"></a>
- 操作系统:openEuler 20.03 LTS
# 部署A-Tune<a name="ZH-CN_TOPIC_0213178455"></a>
本章介绍A-Tune的配置部署。
# 配置介绍<a name="ZH-CN_TOPIC_0213178456"></a>
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信息
为系统启动时默认采集的系统硬件信息。
## 配置示例<a name="section616213774714"></a>
```
#################################### server ###############################
# atuned config
[server]
# the protocol grpc server running on
# ranges: unix or tcp
protocol = unix
# the address that the grpc server to bind to
# default is unix socket /var/run/atuned/atuned.sock
# ranges: /var/run/atuned/atuned.sock or ip
address = /var/run/atuned/atuned.sock
# the atuned grpc listening port, default is 60001
# the port can be set between 0 to 65535 which not be used
port = 60001
# the rest service listening port, default is 8383
# the port can be set between 0 to 65535 which not be used
rest_port = 8383
# when run analysis command, the numbers of collected data.
# default is 20
sample_num = 20
# Enable gRPC and http server authentication SSL/TLS
# default is false
# tls = true
# tlsservercertfile = /etc/atuned/server.pem
# tlsserverkeyfile = /etc/atuned/server.key
# tlshttpcertfile = /etc/atuned/http/server.pem
# tlshttpkeyfile = /etc/atuned/http/server.key
# tlshttpcacertfile = /etc/atuned/http/cacert.pem
#################################### log ###############################
# Either "debug", "info", "warn", "error", "critical", default is "info"
level = info
#################################### monitor ###############################
[monitor]
# With the module and format of the MPI, the format is {module}_{purpose}
# The module is Either "mem", "net", "cpu", "storage"
# The purpose is "topo"
module = mem_topo, cpu_topo
#################################### system ###############################
# you can add arbitrary key-value here, just like key = value
# you can use the key in the profile
[system]
# the disk to be analysis
disk = sda
# the network to be analysis
network = enp189s0f0
user = root
```
# 附录<a name="ZH-CN_TOPIC_0215191201"></a>
# 附录
<!-- TOC -->
- [附录](#附录)
- [术语和缩略语](#术语和缩略语)
<!-- /TOC -->
## 术语和缩略语
**表 1** 术语表
<a name="table1851716468384"></a>
<table><thead align="left"><tr id="row4517946163817"><th class="cellrowborder" valign="top" width="50%" id="mcps1.2.3.1.1"><p id="p951884613382"><a name="p951884613382"></a><a name="p951884613382"></a>术语</p>
</th>
<th class="cellrowborder" valign="top" width="50%" id="mcps1.2.3.1.2"><p id="p14518114693817"><a name="p14518114693817"></a><a name="p14518114693817"></a>含义</p>
</th>
</tr>
</thead>
<tbody><tr id="row1151816466383"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.1 "><p id="p14597739134615"><a name="p14597739134615"></a><a name="p14597739134615"></a>workload_type</p>
</td>
<td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.2 "><p id="p17726174816227"><a name="p17726174816227"></a><a name="p17726174816227"></a>负载类型,用于标记具有相同特征的一类业务</p>
</td>
</tr>
<tr id="row20518154612386"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.1 "><p id="p4518144612386"><a name="p4518144612386"></a><a name="p4518144612386"></a>profile</p>
</td>
<td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.2 "><p id="p17597758162211"><a name="p17597758162211"></a><a name="p17597758162211"></a>优化项集合,最佳的参数配置</p>
</td>
</tr>
</tbody>
</table>
......@@ -454,64 +454,13 @@ headless: true
- [info]({{< relref "./docs/Container/info.md" >}})
- [version]({{< relref "./docs/Container/version.md" >}})
- [A-Tune用户指南]({{< relref "./docs/A-Tune/A-Tune.md" >}})
- [前言]({{< relref "./docs/A-Tune/前言.md" >}})
- [认识A-Tune]({{< relref "./docs/A-Tune/认识A-Tune.md" >}})
- [简介]({{< relref "./docs/A-Tune/简介.md" >}})
- [架构]({{< relref "./docs/A-Tune/架构.md" >}})
- [支持特性与业务模型]({{< relref "./docs/A-Tune/支持特性与业务模型.md" >}})
- [安装与部署]({{< relref "./docs/A-Tune/安装与部署.md" >}})
- [软硬件要求]({{< relref "./docs/A-Tune/软硬件要求.md" >}})
- [环境准备]({{< relref "./docs/A-Tune/环境准备.md" >}})
- [安装A-Tune]({{< relref "./docs/A-Tune/安装A-Tune.md" >}})
- [安装模式介绍]({{< relref "./docs/A-Tune/安装模式介绍.md" >}})
- [安装操作]({{< relref "./docs/A-Tune/安装操作.md" >}})
- [部署A-Tune]({{< relref "./docs/A-Tune/部署A-Tune.md" >}})
- [配置介绍]({{< relref "./docs/A-Tune/配置介绍.md" >}})
- [启动A-Tune]({{< relref "./docs/A-Tune/启动A-Tune.md" >}})
- [使用方法]({{< relref "./docs/A-Tune/使用方法.md" >}})
- [总体说明]({{< relref "./docs/A-Tune/总体说明.md" >}})
- [查询负载类型]({{< relref "./docs/A-Tune/查询负载类型.md" >}})
- [list]({{< relref "./docs/A-Tune/list.md" >}})
- [分析负载类型并自优化]({{< relref "./docs/A-Tune/分析负载类型并自优化.md" >}})
- [analysis]({{< relref "./docs/A-Tune/analysis.md" >}})
- [自定义模型]({{< relref "./docs/A-Tune/自定义模型.md" >}})
- [define]({{< relref "./docs/A-Tune/define.md" >}})
- [collection]({{< relref "./docs/A-Tune/collection.md" >}})
- [train]({{< relref "./docs/A-Tune/train.md" >}})
- [undefine]({{< relref "./docs/A-Tune/undefine.md" >}})
- [查询profile]({{< relref "./docs/A-Tune/查询profile.md" >}})
- [info]({{< relref "./docs/A-Tune/info.md" >}})
- [更新profile]({{< relref "./docs/A-Tune/更新profile.md" >}})
- [update]({{< relref "./docs/A-Tune/update.md" >}})
- [激活profile]({{< relref "./docs/A-Tune/激活profile.md" >}})
- [profile]({{< relref "./docs/A-Tune/profile.md" >}})
- [回滚profile]({{< relref "./docs/A-Tune/回滚profile.md" >}})
- [rollback]({{< relref "./docs/A-Tune/rollback.md" >}})
- [更新数据库]({{< relref "./docs/A-Tune/更新数据库.md" >}})
- [upgrade]({{< relref "./docs/A-Tune/upgrade.md" >}})
- [系统信息查询]({{< relref "./docs/A-Tune/系统信息查询.md" >}})
- [check]({{< relref "./docs/A-Tune/check.md" >}})
- [参数自调优]({{< relref "./docs/A-Tune/参数自调优.md" >}})
- [tuning]({{< relref "./docs/A-Tune/tuning.md" >}})
- [常见问题与解决方法]({{< relref "./docs/A-Tune/常见问题与解决方法.md" >}})
- [附录]({{< relref "./docs/A-Tune/附录.md" >}})
- [术语和缩略语]({{< relref "./docs/A-Tune/术语和缩略语.md" >}})
- [应用开发指南]({{< relref "./docs/ApplicationDev/application-development.md" >}})
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册