diff --git a/docs/zh/server/performance/system_optimzation/atune/_toc.yaml b/docs/zh/server/performance/system_optimzation/atune/_toc.yaml deleted file mode 100644 index c37b865d4a516d4482c0edf73829c907949d6fb7..0000000000000000000000000000000000000000 --- a/docs/zh/server/performance/system_optimzation/atune/_toc.yaml +++ /dev/null @@ -1,19 +0,0 @@ -label: A-Tune用户指南 -isManual: true -description: 利用人工智能技术,实现对 openEuler 系统性能的智能化、自动化调优 -sections: - - label: A-Tune用户指南 - href: ./a_tune.md - sections: - - label: 认识A-Tune - href: ./getting_to_know_a_tune.md - - label: 安装与部署 - href: ./installation_and_deployment.md - - label: 使用方法 - href: ./usage_instructions.md - - label: native-turbo特性 - href: ./native_turbo.md - - label: 附录 - href: ./appendix.md - - label: 常见问题与解决方法 - href: ./faqs_and_solutions.md diff --git a/docs/zh/server/performance/system_optimzation/atune/a_tune.md b/docs/zh/server/performance/system_optimzation/atune/a_tune.md deleted file mode 100644 index f437a25bcd5ac9c2df2537b870506570d70b7fc7..0000000000000000000000000000000000000000 --- a/docs/zh/server/performance/system_optimzation/atune/a_tune.md +++ /dev/null @@ -1,5 +0,0 @@ -# A-Tune 用户指南 - -本文档介绍openEuler系统性能自优化软件A-Tune的安装部署和使用方法,以指导用户快速了解并使用A-Tune。 - -本文档适用于使用openEuler系统并希望了解和使用A-Tune的社区开发者、开源爱好者以及相关合作伙伴。使用人员需要具备基本的Linux操作系统知识。 diff --git a/docs/zh/server/performance/system_optimzation/atune/appendix.md b/docs/zh/server/performance/system_optimzation/atune/appendix.md deleted file mode 100644 index f727df6cf049b4ac41b4ebb0317a4e2c2be4ed29..0000000000000000000000000000000000000000 --- a/docs/zh/server/performance/system_optimzation/atune/appendix.md +++ /dev/null @@ -1,21 +0,0 @@ -# 附录 - -## 术语和缩略语 - -**表 1** 术语表 - - - - - - - - - - - -

术语

-

含义

-

profile

-

优化项集合,最佳的参数配置

-
diff --git a/docs/zh/server/performance/system_optimzation/atune/faqs_and_solutions.md b/docs/zh/server/performance/system_optimzation/atune/faqs_and_solutions.md deleted file mode 100644 index 52bed705a43e1dc733bf3beb167a9c93d18c35d2..0000000000000000000000000000000000000000 --- a/docs/zh/server/performance/system_optimzation/atune/faqs_and_solutions.md +++ /dev/null @@ -1,52 +0,0 @@ -# 常见问题与解决方法 - -## **问题1:train命令训练模型出错,提示“training data failed”** - -原因:collection命令只采集一种类型的数据。 - -解决方法:至少采集两种数据类型的数据进行训练。 - -## **问题2:atune-adm无法连接atuned服务** - -可能原因: - -1. 检查atuned服务是否启动,并检查atuned侦听地址。 - - ```shell - # systemctl status atuned - # netstat -nap | grep atuned - ``` - -2. 防火墙阻止了atuned的侦听端口。 -3. 系统配置了http代理导致无法连接。 - -解决方法: - -1. 如果atuned没有启动,启动该服务,参考命令如下: - - ```shell - # systemctl start atuned - ``` - -2. 分别在atuned和atune-adm的服务器上执行如下命令,允许侦听端口接收网络包,其中60001为atuned的侦听端口号。 - - ```shell - # iptables -I INPUT -p tcp --dport 60001 -j ACCEPT - # iptables -I INPUT -p tcp --sport 60001 -j ACCEPT - ``` - -3. 不影响业务的前提下删除http代理,或对侦听IP不进行http代理,命令如下: - - ```shell - # no_proxy=$no_proxy,侦听地址 - ``` - -## **问题3:atuned服务无法启动,提示“Job for atuned.service failed because a timeout was exceeded.”** - -原因:hosts文件中缺少localhost配置 - -解决方法:在/etc/hosts文件中127.0.0.1这一行添加上localhost - -```conf -127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 -``` diff --git a/docs/zh/server/performance/system_optimzation/atune/figures/picture1.png b/docs/zh/server/performance/system_optimzation/atune/figures/picture1.png deleted file mode 100644 index 52d496e95f06ef8636730dbbc1aa84d88aea6a34..0000000000000000000000000000000000000000 Binary files a/docs/zh/server/performance/system_optimzation/atune/figures/picture1.png and /dev/null differ diff --git a/docs/zh/server/performance/system_optimzation/atune/figures/picture4.png b/docs/zh/server/performance/system_optimzation/atune/figures/picture4.png deleted file mode 100644 index 85d57aa2024615a6f0fbff5a7d2a207941eb3085..0000000000000000000000000000000000000000 Binary files a/docs/zh/server/performance/system_optimzation/atune/figures/picture4.png and /dev/null differ diff --git a/docs/zh/server/performance/system_optimzation/atune/figures/zh-cn_image_0213178479.png b/docs/zh/server/performance/system_optimzation/atune/figures/zh-cn_image_0213178479.png deleted file mode 100644 index d245d48dc07e2b01734e21ec1952e89fa9269bdb..0000000000000000000000000000000000000000 Binary files a/docs/zh/server/performance/system_optimzation/atune/figures/zh-cn_image_0213178479.png and /dev/null differ diff --git a/docs/zh/server/performance/system_optimzation/atune/figures/zh-cn_image_0213178480.png b/docs/zh/server/performance/system_optimzation/atune/figures/zh-cn_image_0213178480.png deleted file mode 100644 index a32856aa08e459ed0f51f8fcf4c2f51511c12095..0000000000000000000000000000000000000000 Binary files a/docs/zh/server/performance/system_optimzation/atune/figures/zh-cn_image_0213178480.png and /dev/null differ diff --git a/docs/zh/server/performance/system_optimzation/atune/figures/zh-cn_image_0214540398.png b/docs/zh/server/performance/system_optimzation/atune/figures/zh-cn_image_0214540398.png deleted file mode 100644 index cea2292307b57854aa629ec102a5bc1b16d244a0..0000000000000000000000000000000000000000 Binary files a/docs/zh/server/performance/system_optimzation/atune/figures/zh-cn_image_0214540398.png and /dev/null differ diff --git a/docs/zh/server/performance/system_optimzation/atune/figures/zh-cn_image_0227497000.png b/docs/zh/server/performance/system_optimzation/atune/figures/zh-cn_image_0227497000.png deleted file mode 100644 index db9b5ce8b6d211d54ea36930504cca415ddfb8ca..0000000000000000000000000000000000000000 Binary files a/docs/zh/server/performance/system_optimzation/atune/figures/zh-cn_image_0227497000.png and /dev/null differ diff --git a/docs/zh/server/performance/system_optimzation/atune/figures/zh-cn_image_0227497343.png b/docs/zh/server/performance/system_optimzation/atune/figures/zh-cn_image_0227497343.png deleted file mode 100644 index aecf293846ebd12f15b9a3fb5fdc2618d9d527dc..0000000000000000000000000000000000000000 Binary files a/docs/zh/server/performance/system_optimzation/atune/figures/zh-cn_image_0227497343.png and /dev/null differ diff --git a/docs/zh/server/performance/system_optimzation/atune/figures/zh-cn_image_0231122163.png b/docs/zh/server/performance/system_optimzation/atune/figures/zh-cn_image_0231122163.png deleted file mode 100644 index 66bf082a6537ad70c84e4e8f07de745f973482b9..0000000000000000000000000000000000000000 Binary files a/docs/zh/server/performance/system_optimzation/atune/figures/zh-cn_image_0231122163.png and /dev/null differ diff --git a/docs/zh/server/performance/system_optimzation/atune/figures/zh-cn_image_0245342444.png b/docs/zh/server/performance/system_optimzation/atune/figures/zh-cn_image_0245342444.png deleted file mode 100644 index 10f0fceb42c00c80ef49decdc0c480eb04c2ca6d..0000000000000000000000000000000000000000 Binary files a/docs/zh/server/performance/system_optimzation/atune/figures/zh-cn_image_0245342444.png and /dev/null differ diff --git a/docs/zh/server/performance/system_optimzation/atune/getting_to_know_a_tune.md b/docs/zh/server/performance/system_optimzation/atune/getting_to_know_a_tune.md deleted file mode 100644 index 2d68b75b0cfcdc65ceb0f56ce6de1bda6a40076a..0000000000000000000000000000000000000000 --- a/docs/zh/server/performance/system_optimzation/atune/getting_to_know_a_tune.md +++ /dev/null @@ -1,511 +0,0 @@ -# 认识A-Tune - -## 简介 - -操作系统作为衔接应用和硬件的基础软件,如何调整系统和应用配置,充分发挥软硬件能力,从而使业务性能达到最优,对用户至关重要。然而,运行在操作系统上的业务类型成百上千,应用形态千差万别,对资源的要求各不相同。当前硬件和基础软件组成的应用环境涉及高达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** 特性成熟度 - - - - - - - - - - - - - - - - - - - - -

特性

-

成熟度

-

使用建议

-

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

-

已测试

-

试用

-

自定义profile和业务模型

-

已测试

-

试用

-

参数自调优

-

已测试

-

试用

-
- -### 支持业务模型 - -根据应用的负载特征,A-Tune将业务分为11大类,各类型的负载特征和A-Tune支持的应用请参见[表2](#table2819164611311)。 - -**表 2** 支持的业务类型和应用 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

业务大类

-
-

业务类型

-
-

瓶颈点

-
-

支持的应用

-
-

待规划的应用

-
-

default

-
-

默认类型

-
-

算力、内存、网络、IO各维度资源使用率都不高

-
-

N/A

-
-

 N/A

-
-

webserver

-
-

web应用

-
-

算力瓶颈、网络瓶颈

-
-

NginxApache Traffic Server

-
-

 N/A

-
-

database

-
-

数据库

-
-

算力瓶颈、内存瓶颈、IO瓶颈

-
-

MongodbMysqlPostgresqlMariadb

-
-

 N/A

-
-

big-data

-
-

大数据

-
-

算力瓶颈、内存瓶颈

-
-

N/A

-
-

Hadoop-hdfsHadoop-spark

-
-

middleware

-
-

中间件框架

-
-

算力瓶颈、网络瓶颈

-
-

Dubbo

-
-

 N/A

-
-

in-memory-database

-
-

内存数据库

-
-

内存瓶颈、IO瓶颈

-
-

Redis

-
-

 N/A

-
-

basic-test-suite

-
-

基础测试套

-
-

算力瓶颈、内存瓶颈

-
-

SPECCPU2006SPECjbb2015

-
-

 N/A

-
-

hpc

-
-

人类基因组

-
-

算力瓶颈、内存瓶颈、IO瓶颈

-
-

Gatk4

-
-

 N/A

-
-

storage

-
-

存储

-
-

网络瓶颈、IO瓶颈

-
-

N/A

-
-

Ceph

-
-

virtualization

-
-

虚拟化

-
-

算力瓶颈、内存瓶颈、IO瓶颈

-
-

Consumer-cloudMariadb

-
-

 N/A

-
-

docker

-
-

容器

-
-

算力瓶颈、内存瓶颈、IO瓶颈

-
-

Mariadb

-
-

 N/A

-
diff --git a/docs/zh/server/performance/system_optimzation/atune/installation_and_deployment.md b/docs/zh/server/performance/system_optimzation/atune/installation_and_deployment.md deleted file mode 100644 index 4ce722d352bc86df927d1a85dfff91765e540146..0000000000000000000000000000000000000000 --- a/docs/zh/server/performance/system_optimzation/atune/installation_and_deployment.md +++ /dev/null @@ -1,507 +0,0 @@ -# 安装与部署 - -本章介绍如何安装和部署A-Tune。 - -## 软硬件要求 - -### 硬件要求 - -- 鲲鹏920处理器 - -## 环境准备 - -- 安装openEuler系统,安装方法参考 《[安装指南](../../../../server/installation_upgrade/installation/installation_on_servers.md)》。 - -- 安装A-Tune需要使用root权限。 - -## 安装A-Tune - -本节介绍A-Tune的安装模式和安装方法。 - -### 安装模式介绍 - -A-Tune支持单机模式、分布式模式安装和集群模式安装: - -- 单机模式 - - client和server安装到同一台机器上。 - -- 分布式模式 - - client和server分别安装在不同的机器上。 - -- 集群模式 - - 由一台client机器和大于一台server机器组成。 - -三种安装模式的简单图示如下: - -![](./figures/zh-cn_image_0231122163.png) - -### 安装操作 - -安装A-Tune的操作步骤如下: - -1. 挂载openEuler的iso文件。 - - ```shell - # mount openEuler-{version}-everything-x86_64-dvd.iso /mnt - ``` - - 请安装everything的iso。 - -2. 配置本地yum源。 - - ```shell - # vim /etc/yum.repos.d/local.repo - ``` - - 配置内容如下所示: - - ```shell - [local] - name=local - baseurl=file:///mnt - gpgcheck=1 - enabled=1 - ``` - -3. 将RPM数字签名的GPG公钥导入系统。 - - ```shell - # rpm --import /mnt/RPM-GPG-KEY-openEuler - ``` - -4. 安装A-Tune服务端。 - - >![](./public_sys-resources/icon-note.gif) **说明:** - >本步骤会同时安装服务端和客户端软件包,对于单机部署模式,请跳过**步骤5**。 - - ```shell - # yum install atune -y - # yum install atune-engine -y - ``` - -5. 若为分布式部署,请安装A-Tune客户端。 - - ```shell - # yum install atune-client -y - ``` - -6. 验证是否安装成功。命令和回显如下表示安装成功。 - - ```shell - # rpm -qa | grep atune - atune-client-xxx - atune-db-xxx - atune-xxx - atune-engine-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,则不需要配置。 - - connect:若为集群部署时,A-Tune所在节点的ip列表,ip地址以逗号分隔。 - - rest_host:系统rest service的侦听地址,默认为localhost。 - - rest_port:系统rest service的侦听端口,范围为0~65535未使用的端口,默认为8383。 - - engine_host:与系统atune engine service链接的地址。 - - engine_port:与系统atune engine service链接的端口。 - - sample_num:系统执行analysis流程时采集样本的数量,默认为20。 - - interval:系统执行analysis流程时采集样本的间隔时间,默认为5s。 - - grpc_tls:系统gRPC的SSL/TLS证书校验开关,默认不开启。开启grpc_tls后,atune-adm命令在使用前需要设置以下环境变量方可与服务端进行通讯: - - export ATUNE_TLS=yes - - export ATUNED_CACERT=\<客户端CA证书路径> - - export ATUNED_CLIENTCERT=\<客户端证书路径> - - export ATUNED_CLIENTKEY=\<客户端密钥路径> - - export ATUNED_SERVERCN=server - - tlsservercafile:gRPC服务端CA证书路径。 - - tlsservercertfile:gRPC服务端证书路径。 - - tlsserverkeyfile:gRPC服务端密钥路径。 - - rest_tls:系统rest service的SSL/TLS证书校验开关,默认开启。 - - tlsrestcacertfile:系统rest service的服务端CA证书路径。 - - tlsrestservercertfile:系统rest service的服务端证书路径 - - tlsrestserverkeyfile:系统rest service的服务端密钥路径。 - - engine_tls:系统atune engine service的SSL/TLS证书校验开关,默认开启。 - - tlsenginecacertfile:系统atune engine service的客户端CA证书路径。 - - tlsengineclientcertfile:系统atune engine service的客户端证书路径 - - tlsengineclientkeyfile:系统atune engine service的客户端密钥路径 - -- system信息 - - system为系统执行相关的优化需要用到的参数信息,必须根据系统实际情况进行修改。 - - - disk:执行analysis流程时需要采集的对应磁盘的信息或执行磁盘相关优化时需要指定的磁盘。 - - network:执行analysis时需要采集的对应的网卡的信息或执行网卡相关优化时需要指定的网卡。 - - - user:执行ulimit相关优化时用到的用户名。目前只支持root用户。 - -- 日志信息 - - 根据情况修改日志的级别,默认为info级别,日志信息打印在/var/log/messages中。 - -- monitor信息 - - 为系统启动时默认采集的系统硬件信息。 - -- tuning信息 - - tuning为系统进行离线调优时需要用到的参数信息。 - - - noise:高斯噪声的评估值。 - - sel_feature:控制离线调优参数重要性排名输出的开关,默认关闭。 - -### 配置示例 - -```shell -#################################### 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 - address = /var/run/atuned/atuned.sock - - # the atune nodes in cluster mode, separated by commas - # it is valid when protocol is tcp - # connect = ip01,ip02,ip03 - - # the atuned grpc listening port - # 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_host = localhost - rest_port = 8383 - - # the tuning optimizer host and port, start by engine.service - # if engine_host is same as rest_host, two ports cannot be same - # the port can be set between 0 to 65535 which not be used - engine_host = localhost - engine_port = 3838 - - # when run analysis command, the numbers of collected data. - # default is 20 - sample_num = 20 - - # interval for collecting data, default is 5s - interval = 5 - - # enable gRPC authentication SSL/TLS - # default is false - # grpc_tls = false - # tlsservercafile = /etc/atuned/grpc_certs/ca.crt - # tlsservercertfile = /etc/atuned/grpc_certs/server.crt - # tlsserverkeyfile = /etc/atuned/grpc_certs/server.key - - # enable rest server authentication SSL/TLS - # default is true - rest_tls = true - tlsrestcacertfile = /etc/atuned/rest_certs/ca.crt - tlsrestservercertfile = /etc/atuned/rest_certs/server.crt - tlsrestserverkeyfile = /etc/atuned/rest_certs/server.key - - # enable engine server authentication SSL/TLS - # default is true - engine_tls = true - tlsenginecacertfile = /etc/atuned/engine_certs/ca.crt - tlsengineclientcertfile = /etc/atuned/engine_certs/client.crt - tlsengineclientkeyfile = /etc/atuned/engine_certs/client.key - - - #################################### log ############################### - [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 - - #################################### tuning ############################### - # tuning configs - [tuning] - noise = 0.000000001 - sel_feature = false -``` - -A-Tune engine配置文件/etc/atuned/engine.cnf的配置项说明如下: - -- A-Tune engine服务启动配置(可根据需要进行修改)。 - - - engine_host:系统atune engine service的侦听地址,默认为localhost。 - - engine_port:系统atune engine service的侦听端口,范围为0~65535未使用的端口,默认为3838。 - - engine_tls:系统atune engine service的SSL/TLS证书校验开关,默认开启。 - - tlsenginecacertfile:系统atune engine service的服务端CA证书路径。 - - tlsengineservercertfile:系统atune engine service的服务端证书路径 - - tlsengineserverkeyfile:系统atune engine service的服务端密钥路径。 - -- 日志信息 - - 根据情况修改日志的级别,默认为info级别,日志信息打印在/var/log/messages中。 - -### 配置示例 - -```shell - #################################### engine ############################### - [server] - # the tuning optimizer host and port, start by engine.service - # if engine_host is same as rest_host, two ports cannot be same - # the port can be set between 0 to 65535 which not be used - engine_host = localhost - engine_port = 3838 - - # enable engine server authentication SSL/TLS - # default is true - engine_tls = true - tlsenginecacertfile = /etc/atuned/engine_certs/ca.crt - tlsengineservercertfile = /etc/atuned/engine_certs/server.crt - tlsengineserverkeyfile = /etc/atuned/engine_certs/server.key - - #################################### log ############################### - [log] - # either "debug", "info", "warn", "error", "critical", default is "info" - level = info -``` - -## 启动A-Tune - -A-Tune安装完成后,需要配置A-Tune服务,然后启动A-Tune服务。 - -- 配置A-Tune服务: - 修改atuned.cnf配置文件中网卡和磁盘的信息 - > 说明: - > - > 如果通过'make install'安装了atuned服务,网卡和磁盘已经自动更新为当前机器中的默认设备。如果需要从其他设备收集数据,请按照以下步骤配置 atuned 服务。 - - 通过以下命令可以查找当前需要采集或者执行网卡相关优化时需要指定的网卡,并修改/etc/atuned/atuned.cnf中的network配置选项为对应的指定网卡。 - - ```shell - ip addr - ``` - - 通过以下命令可以查找当前需要采集或者执行磁盘相关优化时需要指定的磁盘,并修改/etc/atuned/atuned.cnf中的disk配置选项为对应的指定磁盘。 - - ```shell - fdisk -l | grep dev - ``` - -- 关于证书: - 因为A-Tune的引擎和客户端使用了grpc通信协议,所以为了系统安全,需要配置证书。因为信息安全的原因,A-Tune不会提供证书生成方法,请用户自行配置系统证书。 - 如果不考虑安全问题,可以将/etc/atuned/atuned.cnf中的rest_tls 和 engine_tls配置选项设置为false,并且将/etc/atuned/engine.cnf中的engine_tls配置选项设为false。 - 如果不配置安全证书导致的一切后果与A-Tune无关。 - -- 启动atuned服务: - - ```shell - # systemctl start atuned - ``` - -- 查询atuned服务状态: - - ```shell - # systemctl status atuned - ``` - - 若回显为如下,则服务启动成功。 - - ![](./figures/zh-cn_image_0214540398.png) - -## 启动A-Tune engine - -若需要使用AI相关的功能,需要启动A-Tune engine服务才能使用。 - -- 启动atune-engine服务: - - ```shell - # systemctl start atune-engine - ``` - -- 查询atune-engine服务状态: - - ```shell - # systemctl status atune-engine - ``` - - 若回显为如下,则服务启动成功。 - - ![](./figures/zh-cn_image_0245342444.png) - -## 分部式部署 - -### 分部式部署目的 - -为了实现分布式架构和按需部署的目标,A-Tune支持分部式部署。可以将三个组件分开部署,轻量化组件部署对业务影响小,也避免安装过多依赖软件,减轻系统负担。
- -部署方式:本文档只介绍常用的一种部署方式:在同一节点部署客户端和服务端,在另一个节点上部署引擎模块。其他的部署方式请咨询A-Tune开发人员。 - -**部署关系图:**
-![输入图片说明](figures/picture1.png) - -### 配置文件 - -分部式部署需要修改配置文件,将引擎的ip地址和端口号写入配置文件中,别的组件才能访问该ip地址上的引擎组件。 - -1. 修改服务端节点上的`/etc/atuned/atuned.cnf`文件: - - - 34行的`engine_host`和`engine_port`修改为引擎节点的ip地址和端口号。如上图,应该修改为`engine_host = 192.168.0.1 engine_port = 3838`。 - - 将49行和55行的 rest_tls 和engine_tls 改为false,否则需要申请和配置证书。在测试环境中可以不用配置ssl证书,但是正式的现网环境需要配置证书,否则会有安全隐患。 - -2. 修改引擎节点/etc/atuned/engine.cnf文件: - - - 17行和18行的`engine_host`和`engine_port`修改为引擎节点的ip地址和端口号。如上图,应该修改为`engine_host = 192.168.0.1 engine_port = 3838`。 - - 第22行的engine_tls的值改成false。 - -3. 修改完配置文件后需要重启服务,配置才会生效: - - - 服务端节点输入命令:`systemctl restart atuned`。 - - 引擎端节点输入命令:`systemctl restart atune-engine`。 - -4. (可选步骤)在`A-Tune/examples/tuning/compress`文件夹下运行tuning命令: - - - 请先参考`A-Tune/examples/tuning/compress/README`的指导进行预处理。 - - 执行`atune-adm tuning --project compress --detail compress_client.yaml`。 - - 本步骤的目的是检验分部式部署是否成功。 - -### 注意事项 - -1. 本文档不对认证证书配置方法作详细说明,如有需要也可以将atuned.cnf和engine.cnf中的rest_tls/engine_tls设成false。 -2. 修改完配置文件后需要重启服务,否则修改不会生效。 -3. 注意使用atune服务时不要同时打开代理。 -4. atuned.cnf 文件中的[system]模块的disk和network项需要修改,修改方法见[A-Tune用户指南2.4.1章节](https://gitee.com/gaoruoshu/A-Tune/blob/master/Documentation/UserGuide/A-Tune%E7%94%A8%E6%88%B7%E6%8C%87%E5%8D%97.md),本文不展开描述。 - -### 举例 - -#### atuned.cnf - -```bash -# ...前略... - -# the tuning optimizer host and port, start by engine.service -# if engine_host is same as rest_host, two ports cannot be same -# the port can be set between 0 to 65535 which not be used -engine_host = 192.168.0.1 -engine_port = 3838 - -# ...后略... -``` - -#### engine.cnf - -```bash -[server] -# the tuning optimizer host and port, start by engine.service -# if engine_host is same as rest_host, two ports cannot be same -# the port can be set between 0 to 65535 which not be used -engine_host = 192.168.0.1 -engine_port = 3838 -``` - -## 集群部署 - -### 集群部署的目的 - -为了支持多节点场景快速调优,A-Tune支持对多个节点里的参数配置同时进行动态调优,避免用户单独多次对每个节点进行调优,从而提升调优效率。
-集群部署的方式:分为一个主节点和若干个从节点。在主节点部署客户端和服务端,负责接受命令和引擎交互。其他节点接受主节点的指令,对当前节点的参数进行配置。 - -**部署关系图:**
- ![输入图片说明](figures/picture4.png) - -上图中客户端和服务端部署在ip为192.168.0.0的节点上,项目文件存放在该节点上,其他节点不用放置项目文件。
-主节点和从节点之间通过tcp协议通信,所以需要修改配置文件。 - -### atuned.cnf配置文件修改 - -1. protocol 值设置为tcp。 -2. address设置为当前节点的ip地址。 -3. connect设置为所有节点的ip地址,第一个为主节点,其余为从节点ip,中间用逗号隔开。 -4. 在调试时,可以设置rest_tls 和engine_tls 为false。 -5. 所有的主从节点的atuned.cnf都按照上方描述修改。 - -### 注意事项 - -1. 将engine.cnf中的`engine_host`和`engine_port`设置为服务端atuned.cnf中`engine_host`和`engine_port`一样的ip和端口号。 -2. 本文档不对认证证书配置方法作详细说明,如有需要也可以将atuned.cnf和engine.cnf中的rest_tls和engine_tls设置为false。 -3. 修改完配置文件后需要重启服务,否则修改不会生效。 -4. 注意使用atune服务时不要同时打开代理。 - -### 举例 - -#### atuned.cnf - -```bash -# ...前略... - -[server] -# the protocol grpc server running on -# ranges: unix or tcp -protocol = tcp - -# 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 -address = 192.168.0.0 - -# the atune nodes in cluster mode, separated by commas -# it is valid when protocol is tcp -connect = 192.168.0.0,192.168.0.1,192.168.0.2,192.168.0.3 - -# the atuned grpc listening port -# 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_host = localhost -rest_port = 8383 - -# the tuning optimizer host and port, start by engine.service -# if engine_host is same as rest_host, two ports cannot be same -# the port can be set between 0 to 65535 which not be used -engine_host = 192.168.1.1 -engine_port = 3838 - -# ...后略... -``` - -#### engine.cnf - -```bash -[server] -# the tuning optimizer host and port, start by engine.service -# if engine_host is same as rest_host, two ports cannot be same -# the port can be set between 0 to 65535 which not be used -engine_host = 192.168.1.1 -engine_port = 3838 -``` - -**备注:** engine.cnf参考分部式部署的配置文件。 diff --git a/docs/zh/server/performance/system_optimzation/atune/native_turbo.md b/docs/zh/server/performance/system_optimzation/atune/native_turbo.md deleted file mode 100644 index af52f6d94e2863ae47389ebfd43a3d4f6f6bf4ad..0000000000000000000000000000000000000000 --- a/docs/zh/server/performance/system_optimzation/atune/native_turbo.md +++ /dev/null @@ -1,54 +0,0 @@ -# native-turbo特性 - -## 简介 - -大型程序的代码段、数据段可达数百MB,关键业务流程TLB miss较高。内核页表大小对性能有影响。 - -为了方便用户使用大页,native-turbo特性实现了加载程序时自动使用大页的功能,可以针对代码段、数据段使用大页。 - -## 使用方法 - -1. 打开特性开关 - - 该特性有两级开关,sysctl fs.exec-use-hugetlb用于控制本系统是否打开该特性(由root用户控制,0不打开,1打开,其他值非法)。 - - 如果不打开该开关,即使用户设置了环境变量也不会使用该特性,内核会忽略相关流程。 - - 系统打开该特性后,普通用户可以通过环境变量HUGEPAGE_PROBE自行决定运行的程序是否需要使用大页(1使用,不设置或其他值不使用)。 - - ```shell - sysctl fs.exec-use-hugetlb=1 #主程序使用大页 - export HUGEPAGE_PROBE=1 #动态库使用大页 - ``` - - 动态库大页也可以使用LD_HUGEPAGE_LIB=1环境变量强制所有段使用大页。 - -2. 标记需要使用大页的段,默认标记所有段,-x表示仅代码段,-d清除已有标记。 - - ```shell - hugepageedit [-x] [-d] app - ``` - - 该工具由glibc-devel包提供。 - -3. 启动程序 - - ./app - -## 约束限制 - -1. 程序与动态库必须按照2M对齐编译,可通过添加如下gcc编译参数实现: - - ```shell - -zcommon-page-size=0x200000 -zmax-page-size=0x200000 - ``` - -2. 使用前需要预留足够的大页,否则程序会执行失败。 - - 如果使用cgroup,请注意hugetlb的限制,如果限制小于所需大页数量,可能导致运行时崩溃。 - -3. 由于进程页表改为2M,mprotect等系统调用的参数需要按2M对齐,否则会执行失败。 - -4. 不支持libcareplus热补丁机制。 - -5. 多个进程间无法共享大页,会消耗多倍内存。 diff --git a/docs/zh/server/performance/system_optimzation/atune/public_sys-resources/icon-caution.gif b/docs/zh/server/performance/system_optimzation/atune/public_sys-resources/icon-caution.gif deleted file mode 100644 index 6e90d7cfc2193e39e10bb58c38d01a23f045d571..0000000000000000000000000000000000000000 Binary files a/docs/zh/server/performance/system_optimzation/atune/public_sys-resources/icon-caution.gif and /dev/null differ diff --git a/docs/zh/server/performance/system_optimzation/atune/public_sys-resources/icon-danger.gif b/docs/zh/server/performance/system_optimzation/atune/public_sys-resources/icon-danger.gif deleted file mode 100644 index 6e90d7cfc2193e39e10bb58c38d01a23f045d571..0000000000000000000000000000000000000000 Binary files a/docs/zh/server/performance/system_optimzation/atune/public_sys-resources/icon-danger.gif and /dev/null differ diff --git a/docs/zh/server/performance/system_optimzation/atune/public_sys-resources/icon-note.gif b/docs/zh/server/performance/system_optimzation/atune/public_sys-resources/icon-note.gif deleted file mode 100644 index 6314297e45c1de184204098efd4814d6dc8b1cda..0000000000000000000000000000000000000000 Binary files a/docs/zh/server/performance/system_optimzation/atune/public_sys-resources/icon-note.gif and /dev/null differ diff --git a/docs/zh/server/performance/system_optimzation/atune/public_sys-resources/icon-notice.gif b/docs/zh/server/performance/system_optimzation/atune/public_sys-resources/icon-notice.gif deleted file mode 100644 index 86024f61b691400bea99e5b1f506d9d9aef36e27..0000000000000000000000000000000000000000 Binary files a/docs/zh/server/performance/system_optimzation/atune/public_sys-resources/icon-notice.gif and /dev/null differ diff --git a/docs/zh/server/performance/system_optimzation/atune/public_sys-resources/icon-tip.gif b/docs/zh/server/performance/system_optimzation/atune/public_sys-resources/icon-tip.gif deleted file mode 100644 index 93aa72053b510e456b149f36a0972703ea9999b7..0000000000000000000000000000000000000000 Binary files a/docs/zh/server/performance/system_optimzation/atune/public_sys-resources/icon-tip.gif and /dev/null differ diff --git a/docs/zh/server/performance/system_optimzation/atune/public_sys-resources/icon-warning.gif b/docs/zh/server/performance/system_optimzation/atune/public_sys-resources/icon-warning.gif deleted file mode 100644 index 6e90d7cfc2193e39e10bb58c38d01a23f045d571..0000000000000000000000000000000000000000 Binary files a/docs/zh/server/performance/system_optimzation/atune/public_sys-resources/icon-warning.gif and /dev/null differ diff --git a/docs/zh/server/performance/system_optimzation/atune/usage_instructions.md b/docs/zh/server/performance/system_optimzation/atune/usage_instructions.md deleted file mode 100644 index 060d3515bc5bb161d9286426bd7260455e2431d0..0000000000000000000000000000000000000000 --- a/docs/zh/server/performance/system_optimzation/atune/usage_instructions.md +++ /dev/null @@ -1,1127 +0,0 @@ -# 使用方法 - -用户可以通过命令行客户端atune-adm使用A-Tune提供的功能。本章介绍A-Tune客户端包含的功能和使用方法。 - -## 总体说明 - -- 使用A-Tune需要使用root权限。 -- atune-adm支持的命令可以通过 **atune-adm help/--help/-h** 查询。 -- define、update、undefine、collection、train、upgrade不支持远程执行。 -- 命令格式中,\[ \] 表示参数可选,<\> 表示参数必选,具体参数由实际情况确定。 - -## 查询负载类型 - -### list - -### 功能描述 - -查询系统当前支持的profile,以及当前处于active状态的profile。 - -### 命令格式 - -**atune-adm list** - -### 使用示例 - -```sh -# atune-adm list - -Support profiles: -+------------------------------------------------+-----------+ -| ProfileName | Active | -+================================================+===========+ -| arm-native-android-container-robox | false | -+------------------------------------------------+-----------+ -| basic-test-suite-euleros-baseline-fio | false | -+------------------------------------------------+-----------+ -| basic-test-suite-euleros-baseline-lmbench | false | -+------------------------------------------------+-----------+ -| basic-test-suite-euleros-baseline-netperf | false | -+------------------------------------------------+-----------+ -| basic-test-suite-euleros-baseline-stream | false | -+------------------------------------------------+-----------+ -| basic-test-suite-euleros-baseline-unixbench | false | -+------------------------------------------------+-----------+ -| basic-test-suite-speccpu-speccpu2006 | false | -+------------------------------------------------+-----------+ -| basic-test-suite-specjbb-specjbb2015 | false | -+------------------------------------------------+-----------+ -| big-data-hadoop-hdfs-dfsio-hdd | false | -+------------------------------------------------+-----------+ -| big-data-hadoop-hdfs-dfsio-ssd | false | -+------------------------------------------------+-----------+ -| big-data-hadoop-spark-bayesian | false | -+------------------------------------------------+-----------+ -| big-data-hadoop-spark-kmeans | false | -+------------------------------------------------+-----------+ -| big-data-hadoop-spark-sql1 | false | -+------------------------------------------------+-----------+ -| big-data-hadoop-spark-sql10 | false | -+------------------------------------------------+-----------+ -| big-data-hadoop-spark-sql2 | false | -+------------------------------------------------+-----------+ -| big-data-hadoop-spark-sql3 | false | -+------------------------------------------------+-----------+ -| big-data-hadoop-spark-sql4 | false | -+------------------------------------------------+-----------+ -| big-data-hadoop-spark-sql5 | false | -+------------------------------------------------+-----------+ -| big-data-hadoop-spark-sql6 | false | -+------------------------------------------------+-----------+ -| big-data-hadoop-spark-sql7 | false | -+------------------------------------------------+-----------+ -| big-data-hadoop-spark-sql8 | false | -+------------------------------------------------+-----------+ -| big-data-hadoop-spark-sql9 | false | -+------------------------------------------------+-----------+ -| big-data-hadoop-spark-tersort | false | -+------------------------------------------------+-----------+ -| big-data-hadoop-spark-wordcount | false | -+------------------------------------------------+-----------+ -| cloud-compute-kvm-host | false | -+------------------------------------------------+-----------+ -| database-mariadb-2p-tpcc-c3 | false | -+------------------------------------------------+-----------+ -| database-mariadb-4p-tpcc-c3 | false | -+------------------------------------------------+-----------+ -| database-mongodb-2p-sysbench | false | -+------------------------------------------------+-----------+ -| database-mysql-2p-sysbench-hdd | false | -+------------------------------------------------+-----------+ -| database-mysql-2p-sysbench-ssd | false | -+------------------------------------------------+-----------+ -| database-postgresql-2p-sysbench-hdd | false | -+------------------------------------------------+-----------+ -| database-postgresql-2p-sysbench-ssd | false | -+------------------------------------------------+-----------+ -| default-default | false | -+------------------------------------------------+-----------+ -| docker-mariadb-2p-tpcc-c3 | false | -+------------------------------------------------+-----------+ -| docker-mariadb-4p-tpcc-c3 | false | -+------------------------------------------------+-----------+ -| hpc-gatk4-human-genome | false | -+------------------------------------------------+-----------+ -| in-memory-database-redis-redis-benchmark | false | -+------------------------------------------------+-----------+ -| middleware-dubbo-dubbo-benchmark | false | -+------------------------------------------------+-----------+ -| storage-ceph-vdbench-hdd | false | -+------------------------------------------------+-----------+ -| storage-ceph-vdbench-ssd | false | -+------------------------------------------------+-----------+ -| virtualization-consumer-cloud-olc | false | -+------------------------------------------------+-----------+ -| virtualization-mariadb-2p-tpcc-c3 | false | -+------------------------------------------------+-----------+ -| virtualization-mariadb-4p-tpcc-c3 | false | -+------------------------------------------------+-----------+ -| web-apache-traffic-server-spirent-pingpo | false | -+------------------------------------------------+-----------+ -| web-nginx-http-long-connection | true | -+------------------------------------------------+-----------+ -| web-nginx-https-short-connection | false | -+------------------------------------------------+-----------+ - -``` - ->![](./public_sys-resources/icon-note.gif) **说明:** ->Active为true表示当前激活的profile,示例表示当前激活的profile是web-nginx-http-long-connection。 - -## 分析负载类型并自优化 - -### analysis - -### 功能描述 - -采集系统的实时统计数据进行负载类型识别,并进行自动优化。 - -### 命令格式 - -**atune-adm analysis** \[OPTIONS\] - -### 参数说明 - -- OPTIONS - - - - - - - - - - - - - - - - - - - - -

参数

-

描述

-

--model, -m

-

用户自训练产生的新模型

-

--characterization, -c

-

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

-

--times value, -t value

-

指定收集数据的时长

-

--script value, -s value

-

指定需要运行的文件

-
- -### 使用示例 - -- 使用默认的模型进行应用识别 - - ```sh - # atune-adm analysis --characterization - ``` - -- 使用默认的模型进行应用识别,并进行自动优化 - - ```sh - # atune-adm analysis - ``` - -- 使用自训练的模型进行应用识别 - - ```sh - # atune-adm analysis --model /usr/libexec/atuned/analysis/models/new-model.m - ``` - -## 自定义模型 - -A-Tune支持用户定义并学习新模型。定义新模型的操作流程如下: - -1. 用define命令定义一个新应用的profile -2. 用collection命令收集应用对应的系统数据 -3. 用train命令训练得到模型 - -### define - -### 功能描述 - -添加用户自定义的应用场景,及对应的profile优化项。 - -### 命令格式 - -**atune-adm define** \ \ \ \ - -### 使用示例 - -新增一个profile,service_type的名称为test_service,application_name的名称为test_app,scenario_name的名称为test_scenario,优化项的配置文件为example.conf。 - -```sh -# atune-adm define test_service test_app test_scenario ./example.conf -``` - -example.conf 可以参考如下方式书写(以下各优化项非必填,仅供参考),也可通过**atune-adm info**查看已有的profile是如何书写的。 - -```Conf - [main] - # list its parent profile - [kernel_config] - # to change the kernel config - [bios] - # to change the bios config - [bootloader.grub2] - # to change the grub2 config - [sysfs] - # to change the /sys/* config - [systemctl] - # to change the system service status - [sysctl] - # to change the /proc/sys/* config - [script] - # the script extension of cpi - [ulimit] - # to change the resources limit of user - [schedule_policy] - # to change the schedule policy - [check] - # check the environment - [tip] - # the recommended optimization, which should be performed manunaly -``` - -### collection - -### 功能描述 - -采集业务运行时系统的全局资源使用情况以及OS的各项状态信息,并将收集的结果保存到csv格式的输出文件中,作为模型训练的输入数据集。 - ->![](./public_sys-resources/icon-note.gif) **说明:** -> ->- 本命令依赖采样工具perf,mpstat,vmstat,iostat,sar。 ->- CPU型号目前仅支持鲲鹏920,可通过dmidecode -t processor检查CPU型号。 - -### 命令格式 - -**atune-adm collection** - -### 参数说明 - -- OPTIONS - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

参数

-

描述

-

--filename, -f

-

生成的用于训练的csv文件名:名称-时间戳.csv

-

--output_path, -o

-

生成的csv文件的存放路径,需提供绝对路径

-

--disk, -b

-

业务运行时实际使用的磁盘,如/dev/sda

-

--network, -n

-

业务运行时使用的网络接口,如eth0

-

--app_type, -t

-

标记业务的应用类型,作为训练时使用的标签

-

--duration, -d

-

业务运行时采集数据的时间,单位秒,默认采集时间1200秒

-

--interval,-i

-

采集数据的时间间隔,单位秒,默认采集间隔5秒

-
- -### 使用示例 - -```sh -# atune-adm collection --filename name --interval 5 --duration 1200 --output_path /home/data --disk sda --network eth0 --app_type test_service-test_app-test_scenario -``` - -> 说明: -> -> 实例中定义了每隔5秒收集一次数据,一共收集1200秒;采集后的数据存放在/home/data目录下名称为name的文件中,业务的应用类型是通过atune-adm define指定的业务类型,这里为test_service-test_app-test_scenario -> 采集间隔和采集时间都可以通过上述选项指定时长。 -> -### train - -### 功能描述 - -使用采集的数据进行模型的训练。训练时至少采集两种应用类型的数据,否则训练会出错。 - -### 命令格式 - -**atune-adm train** - -### 参数说明 - -- OPTIONS - - - - - - - - - - - - - -

参数

-

描述

-

--data_path, -d

-

存放模型训练所需的csv文件的目录

-

--output_file, -o

-

训练生成的新模型

-
- -### 使用示例 - -使用data目录下的csv文件作为训练输入,生成的新模型new-model.m存放在model目录下。 - -``` -# atune-adm train --data_path /home/data --output_file /usr/libexec/atuned/analysis/models/new-model.m -``` - -### undefine - -### 功能描述 - -删除用户自定义的profile。 - -### 命令格式 - -**atune-adm undefine** - -### 使用示例 - -删除自定义的profile。 - -``` -# atune-adm undefine test_service-test_app-test_scenario -``` - -## 查询profile - -### info - -### 功能描述 - -查看对应的profile内容。 - -### 命令格式 - -**atune-adm info** - -### 使用示例 - -查看web-nginx-http-long-connection的profile内容: - -``` -# atune-adm info web-nginx-http-long-connection - -*** web-nginx-http-long-connection: - -# -# nginx http long connection A-Tune configuration -# -[main] -include = default-default - -[kernel_config] -#TODO CONFIG - -[bios] -#TODO CONFIG - -[bootloader.grub2] -iommu.passthrough = 1 - -[sysfs] -#TODO CONFIG - -[systemctl] -sysmonitor = stop -irqbalance = stop - -[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 - -[script] -prefetch = off -ethtool = -X {network} hfunc toeplitz - -[ulimit] -{user}.hard.nofile = 102400 -{user}.soft.nofile = 102400 - -[schedule_policy] -#TODO CONFIG - -[check] -#TODO CONFIG - -[tip] -SELinux provides extra control and security features to linux kernel. Disabling SELinux will improve the performance but may cause security risks. = kernel -disable the nginx log = application -``` - -## 更新profile - -用户根据需要更新已有profile。 - -### update - -### 功能描述 - -将已有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 - -### profile - -### 功能描述 - -手动激活profile,使其处于active状态。 - -### 命令格式 - -**atune-adm profile** - -### 参数说明 - -profile名参考list命令查询结果。 - -### 使用示例 - -激活web-nginx-http-long-connection对应的profile配置。 - -```sh -# atune-adm profile web-nginx-http-long-connection -``` - -## 回滚profile - -### rollback - -### 功能描述 - -回退当前的配置到系统的初始配置。 - -### 命令格式 - -**atune-adm rollback** - -### 使用示例 - -```sh -# atune-adm rollback -``` - -## 更新数据库 - -### upgrade - -### 功能描述 - -更新系统的数据库。 - -### 命令格式 - -**atune-adm upgrade** - -### 参数说明 - -- DB\_FILE - - 新的数据库文件路径 - -### 使用示例 - -数据库更新为new\_sqlite.db。 - -```sh -# atune-adm upgrade ./new_sqlite.db -``` - -## 系统信息查询 - -### check - -### 功能描述 - -检查系统当前的cpu、bios、os、网卡等信息。 - -### 命令格式 - -**atune-adm check** - -### 使用示例 - -```sh -# 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: -``` - -## 参数自调优 - -A-Tune提供了最佳配置的自动搜索能力,免去人工反复做参数调整、性能评价的调优过程,极大地提升最优配置的搜寻效率。 - -### tuning - -### 功能描述 - -使用指定的项目文件对参数进行动态空间的搜索,找到当前环境配置下的最优解。 - -### 命令格式 - ->![](./public_sys-resources/icon-note.gif) **说明:** ->在运行命令前,需要满足如下条件: -> ->1. 服务端的yaml配置文件已经编辑完成并放置于 atuned服务下的**/etc/atuned/tuning/**目录中。 ->2. 客户端的yaml配置文件已经编辑完成并放置于atuned客户端任意目录下。 - -**atune-adm tuning** \[OPTIONS\] - -### 参数说明 - -- OPTIONS - - - - - - - - - - - - - - - - - - - - -

参数

-

描述

-

--restore, -r

-

恢复tuning优化前的初始配置

-

--project, -p

-

指定需要恢复的yaml文件中的项目名称

-

--restart, -c

-

基于历史调优结果进行调优

-

--detail, -d

-

打印tuning过程的详细信息

-
- - >![](./public_sys-resources/icon-note.gif) **说明:** - >当使用参数时,-p参数后需要跟具体的项目名称且必须指定该项目yaml文件。 - -- PROJECT\_YAML:客户端yaml配置文件。 - -### 配置说明 - -**表 1** 服务端yaml文件 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

配置名称

-

配置说明

-

参数类型

-

取值范围

-

project

-

项目名称。

-

字符串

-

-

-

startworkload

-

待调优服务的启动脚本。

-

字符串

-

-

-

stopworkload

-

待调优服务的停止脚本。

-

字符串

-

-

-

maxiterations

-

最大调优迭代次数,用于限制客户端的迭代次数。一般来说,调优迭代次数越多,优化效果越好,但所需时间越长。用户必须根据实际的业务场景进行配置。

-

整型

-

>10

-

object

-

需要调节的参数项及信息。

-

object 配置项请参见表2

-

-

-

-

-
- -**表 2** object项配置说明 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

配置名称

-

配置说明

-

参数类型

-

取值范围

-

name

-

待调参数名称

-

字符串

-

-

-

desc

-

待调参数描述

-

字符串

-

-

-

get

-

查询参数值的脚本

-

-

-

-

-

set

-

设置参数值的脚本

-

-

-

-

-

needrestart

-

参数生效是否需要重启业务

-

枚举

-

"true", "false"

-

type

-

参数的类型,目前支持discrete, continuous两种类型,对应离散型、连续型参数

-

枚举

-

"discrete", "continuous"

-

dtype

-

该参数仅在type为discrete类型时配置,目前支持int, float, string类型

-

枚举

-

int, float, string

-

scope

-

参数设置范围,仅在type为discrete且dtype为int或float时或者type为continuous时生效

-

整型/浮点型

-

用户自定义,取值在该参数的合法范围

-

step

-

参数值步长,dtype为int或float时使用

-

整型/浮点型

-

用户自定义

-

items

-

参数值在scope定义范围之外的枚举值,dtype为int或float时使用

-

整型/浮点型

-

用户自定义,取值在该参数的合法范围

-

options

-

参数值的枚举范围,dtype为string时使用

-

字符串

-

用户自定义,取值在该参数的合法范围

-
- -**表 3** 客户端yaml文件配置说明 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

配置名称

-

配置说明

-

参数类型

-

取值范围

-

project

-

项目名称,需要与服务端对应配置文件中的project匹配

-

字符串

-

-

-

engine

-

调优算法

-

字符串

-

"random", "forest", "gbrt", "bayes", "extraTrees"

-

iterations

-

调优迭代次数

-

整型

-

>=10

-

random_starts

-

随机迭代次数

-

整型

-

<iterations

-

feature_filter_engine

-

参数搜索算法,用于重要参数选择,该参数可选

-

字符串

-

"lhs"

-

feature_filter_cycle

-

参数搜索轮数,用于重要参数选择,该参数配合feature_filter_engine使用

-

整型

-

-

-

feature_filter_iters

-

每轮参数搜索的迭代次数,用于重要参数选择,该参数配合feature_filter_engine使用

-

整型

-

-

-

split_count

-

调优参数取值范围中均匀选取的参数个数,用于重要参数选择,该参数配合feature_filter_engine使用

-

整型

-

-

-

benchmark

-

性能测试脚本

-

-

-

-

-

evaluations

-

性能测试评估指标

-

evaluations 配置项请参见表4

-

-

-

-

-
- -**表 4** evaluations项配置说明 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

配置名称

-

配置说明

-

参数类型

-

取值范围

-

name

-

评价指标名称

-

字符串

-

-

-

get

-

获取性能评估结果的脚本

-

-

-

-

-

type

-

评估结果的正负类型,positive代表最小化性能值,negative代表最大化对应性能值

-

枚举

-

"positive","negative"

-

weight

-

该指标的权重百分比,0-100

-

整型

-

0-100

-

threshold

-

该指标的最低性能要求

-

整型

-

用户指定

-
- -### 配置示例 - -服务端yaml文件配置示例: - -```Conf -project: "compress" -maxiterations: 500 -startworkload: "" -stopworkload: "" -object : - - - name : "compressLevel" - info : - desc : "The compresslevel parameter is an integer from 1 to 9 controlling the level of compression" - get : "cat /root/A-Tune/examples/tuning/compress/compress.py | grep 'compressLevel=' | awk -F '=' '{print $2}'" - set : "sed -i 's/compressLevel=\\s*[0-9]*/compressLevel=$value/g' /root/A-Tune/examples/tuning/compress/compress.py" - needrestart : "false" - type : "continuous" - scope : - - 1 - - 9 - dtype : "int" - - - name : "compressMethod" - info : - desc : "The compressMethod parameter is a string controlling the compression method" - get : "cat /root/A-Tune/examples/tuning/compress/compress.py | grep 'compressMethod=' | awk -F '=' '{print $2}' | sed 's/\"//g'" - set : "sed -i 's/compressMethod=\\s*[0-9,a-z,\"]*/compressMethod=\"$value\"/g' /root/A-Tune/examples/tuning/compress/compress.py" - needrestart : "false" - type : "discrete" - options : - - "bz2" - - "zlib" - - "gzip" - dtype : "string" -``` - -客户端yaml文件配置示例: - -```yaml -project: "compress" -engine : "gbrt" -iterations : 20 -random_starts : 10 - -benchmark : "python3 /root/A-Tune/examples/tuning/compress/compress.py" -evaluations : - - - name: "time" - info: - get: "echo '$out' | grep 'time' | awk '{print $3}'" - type: "positive" - weight: 20 - - - name: "compress_ratio" - info: - get: "echo '$out' | grep 'compress_ratio' | awk '{print $3}'" - type: "negative" - weight: 80 -``` - -### 使用示例 - -- 下载测试数据 - - ```sh - wget http://cs.fit.edu/~mmahoney/compression/enwik8.zip - ``` - -- 准备调优环境 - prepare.sh文件示例: - - ```sh - #!/usr/bin/bash - if [ "$#" -ne 1 ]; then - echo "USAGE: $0 the path of enwik8.zip" - exit 1 - fi - - path=$( - cd "$(dirname "$0")" - pwd - ) - - echo "unzip enwik8.zip" - unzip "$path"/enwik8.zip - - echo "set FILE_PATH to the path of enwik8 in compress.py" - sed -i "s#compress/enwik8#$path/enwik8#g" "$path"/compress.py - - echo "update the client and server yaml files" - sed -i "s#python3 .*compress.py#python3 $path/compress.py#g" "$path"/compress_client.yaml - sed -i "s# compress/compress.py# $path/compress.py#g" "$path"/compress_server.yaml - - echo "copy the server yaml file to /etc/atuned/tuning/" - cp "$path"/compress_server.yaml /etc/atuned/tuning/ - ``` - - 运行脚本: - - ```sh - sh prepare.sh enwik8.zip - ``` - -- 进行tuning调优 - - ```sh - atune-adm tuning --project compress --detail compress_client.yaml - ``` - -- 恢复tuning调优前的初始配置,compress为yaml文件中的项目名称 - - ```sh - atune-adm tuning --restore --project compress - ```