Установка и развёртывание

В этой главе описано, как установить и развернуть A-Tune.

Требования к программному и аппаратному обеспечению

  • Процессор Huawei Kunpeng 920.

  • ОС: openEuler 22.09.

Подготовка среды

Дополнительные сведения об установке ОС openEuler см. в руководстве по установке openEuler 22.09.

Установка A-Tune

В этом разделе описаны режимы и способы установки A-Tune.

Режимы установки

A-Tune можно установить в режиме одного узла или распределенном режиме.

  • Режим одного узла — клиент и сервер устанавливаются в одной системе.

  • Распределенный режим — клиент и сервер устанавливаются в разных системах.

Режимы установки:

installation modes

Процедура установки

Чтобы установить A-Tune, сделайте следующее.

  1. Подключите ISO-файл openEuler:

    mount openEuler-22.09-aarch64-dvd.iso /mnt
  2. Настройте локальный источник YUM.

    vim /etc/yum.repos.d/local.repo

    Настроенное содержимое выглядит следующим образом:

    [local]
    name=local
    baseurl=file:///mnt
    gpgcheck=1
    enabled=1
  3. Импортируйте в систему открытый ключ GPG цифровой подписи RPM.

    rpm --import /mnt/RPM-GPG-KEY-openEuler
    1. Установите сервер A-Tune.

      На этом шаге устанавливаются пакеты серверного и клиентского программного обеспечения. Для развёртывания с одним узлом пропустите этот шаг.

      yum install atune -y
      yum install atune-engine -y
    2. Для распределенного режима установите клиент A-Tune на соответствующем сервере:

      yum install atune-client -y
  4. Убедитесь, что установка выполнена успешно.

    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 указывает режим локального взаимодействия с использованием сокета, а значение tcp — режим порта прослушивания сокета.

    Значение по умолчанию — unix.

  • address — IP-адрес прослушивания для сервиса gRPC.

    Значение по умолчанию — unix socket.

    Если сервис gRPC развернут в распределенном режиме, измените это значение на IP-адрес прослушивания.

  • port: порт прослушивания сервиса gRPC.

    Диапазон значений — от 0 до 65 535.

    Если для protocol установлено значение unix, задавать этот параметр не нужно.

  • connect: список IP-адресов узлов, на которых размещается A-Tune, когда A-Tune развертывается в кластере.

    IP-адреса разделяются запятыми.

  • rest_host: адрес прослушивания сервиса REST.

    Значение по умолчанию: localhost.

  • rest_port: порт прослушивания сервиса REST.

    Диапазон значений — от 0 до 65 535.

    Значение по умолчанию: 8383.

  • engine_host: IP-адрес для подключения к сервису обработчика A-Tune в системе.

  • engine_port: порт для подключения к сервису обработчика A-Tune в системе.

  • sample_num: количество выборок, сделанных во время выполнения системой процедуры анализа.

    Значение по умолчанию: 20.

  • interval: интервал осуществления выборок во время выполнения системой процедуры анализа.

    Значение по умолчанию: 5 с.

  • grpc_tls: указывает, следует ли включить проверку сертификата SSL/TLS для сервиса gRPC.

    По умолчанию эта функция отключена. После включения grpc_tls нужно установить следующие переменные среды, прежде чем выполнять команду atune-adm для связи с сервером:

    export ATUNE_TLS=yes
    export ATUNED_CACERT=<Path of the client CA certificate>
    export ATUNED_CLIENTCERT=<Client certificate path>
    export ATUNED_CLIENTKEY=<Client key path>
    export ATUNED_SERVERCN=server
  • tlsservercafile: путь к сертификату ЦС сервера gPRC.

  • tlsservercertfile: путь к сертификату для сервера gPRC.

  • tlsserverkeyfile: путь к ключу для сервера gPRC.

  • rest_tls: указывает, следует ли включить проверку сертификата SSL/TLS для сервиса REST.

    Эта функция включена по умолчанию.
  • tlsrestcacertfile: путь к сертификату ЦС сервера для сервиса REST.

  • tlsrestservercertfile: путь к сертификату сервера для сервиса REST.

  • tlsrestserverkeyfile: путь к ключу для сервиса REST.

  • engine_tls: указывает, следует ли включить проверку сертификата SSL/TLS для сервиса обработчика A-Tune.

    Эта функция включена по умолчанию.
  • tlsenginecacertfile: путь к сертификату ЦС клиента для сервиса обработчика A-Tune.

  • tlsengineclientcertfile: путь к сертификата клиента для сервиса обработчика A-Tune.

  • tlsengineclientkeyfile: путь к ключу клиента для сервиса обработчика A-Tune.

Информация о системе

Это информация о параметрах, необходимая для оптимизации системы. Эту информацию необходимо изменять в соответствии с фактической ситуацией.

  • disk: информация о дисках, собираемая в процессе анализа, или об указанном диске, собираемая во время его оптимизации.

  • network: информация о сетевых картах, собираемая в процессе анализа, или об указанной сетевой карте, собираемая во время ее оптимизации.

  • user: имя пользователя, используемое для оптимизации с помощью ulimit. Поддерживается только пользователь root.

Информация о журнале

При необходимости можно изменить уровень ведения журнала. По умолчанию используется уровень ведения журнала info. Информация о журнале записывается в файл /var/log/messages.

  • Информация о мониторинге — информация об оборудовании, которая по умолчанию собирается при запуске системы.

  • Информация о настройке — это информация о параметрах, необходимая для автономной настройки.

  • noise: оценочное значение гауссовского шума.

  • sel_feature: указывает, следует ли включить функцию ранжирования по степени важности для параметров автономной настройки.

    По умолчанию эта функция отключена.

Пример

#################################### 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

Ниже указаны элементы конфигурации в файле конфигурации /etc/atuned/engine.cnf обработчика A-Tune.

  • Конфигурация запуска сервиса обработчика A-Tune

    Вы можете изменять значение параметра с учетом актуальных потребностей.

    • engine_host: адрес прослушивания для сервиса обработчика A-Tune.

      Значение по умолчанию: localhost.

    • engine_port: порт прослушивания для сервиса обработчика A-Tune.

      Диапазон значений — от 0 до 65 535.

      Значение по умолчанию: 3838.

    • engine_tls: указывает, следует ли включить проверку сертификата SSL/TLS для сервиса обработчика A-Tune.

      Эта функция включена по умолчанию.
    • tlsenginecacertfile: путь к сертификату ЦС сервера для сервиса обработчика A-Tune.

    • tlsengineservercertfile: путь к сертификату сервера для сервиса обработчика A-Tune.

    • tlsengineserverkeyfile: путь к ключу сервера для сервиса обработчика A-Tune.

  • Информация о журнале

    При необходимости можно изменить уровень ведения журнала. По умолчанию используется уровень ведения журнала info. Информация о журнале записывается в файл /var/log/messages.

Пример

#################################### 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.

  1. Запустите сервис atuned:

    systemctl start atuned
  2. Запросите состояние сервиса atuned:

    systemctl status atuned

    Если отображаются следующие выходные данные команды, сервис запущен успешно.

    ● atuned.service - A-Tune Daemon
         Loaded: loaded (/usr/lib/systemd/system/atuned.service; disabled; vendor preset: disabled)
         Active: active (running) since Sat 2019-12-21 19:28:47 CST; 7s ago
       Main PID: 94790 (atuned)
          Tasks: 19 (limit: 104856)
         Memory: 132.2M
         CGroup: /system.slice/atuned.service
                 ├─94790 /usr/bin/atuned
                 ├─94797 python3 /usr/libexec/atuned/analysis/app.py /etc/atuned/atuned.cnf
                 └─94801 /usr/bin/python3 -c from multiprocessing.semaphore_tracker import main;main(3)

Запуск обработчика A-Tune

Для использования функций ИИ нужно запустить сервис обработчика A-Tune.

  1. Запустите сервис atune-engine:

    systemctl start atune-engine
  2. Запросите состояние сервиса atune-engine:

    systemctl status atune-engine

    Если отображаются следующие выходные данные команды, сервис запущен успешно:

    ● atune-engine.service - A-Tune AI service
         Loaded: loaded (/usr/lib/systemd/system/atune-engine.service; disabled; vendor preset: disabled)
         Active: active (running) since Sat 2020-09-05 04:24:12 EDT; 33m ago
       Main PID: 476292 (python3)
          Tasks: 3
         Memory: 102.5M
         CGroup: /system.slice/atune-engine.service
                 ├─476292 /usr/bin/python3 /usr/libexec/atuned/analysis/app_engine.py /etc/atuned/atuned.cnf
                 └─476312 /usr/bin/python3 -c from multiprocessing.semaphore_tracker import main;main(3)