---
title: 通算一体机性能综合调优参考实践-官方技术文章-鲲鹏社区
description: 鲲鹏自动调优工具(KAOT)简介及使用说明
keywords: 通算一体机性,能综合调优参,考实践,官方技术文章,鲲鹏社区,非商用声明,概述,背景
url: https://www.hikunpeng.com/developer/techArticles/20251222-1?envFlag=1
section: (其他)
---

# 通算一体机性能综合调优参考实践-官方技术文章-鲲鹏社区

URL: https://www.hikunpeng.com/developer/techArticles/20251222-1?envFlag=1
描述: 鲲鹏自动调优工具(KAOT)简介及使用说明
关键词: 通算一体机性,能综合调优参,考实践,官方技术文章,鲲鹏社区,非商用声明,概述,背景

官方技术文章 [了解详情](https://www.hikunpeng.com/zh/developer/techArticles)

通算一体机性能综合调优参考实践

通算一体机性能综合调优参考实践

openEulerDPDK性能调优计算商业SMECE

发表于 2025/12/23

0

# 1 非商用声明

该文档提供的内容为参考实践，仅供用户参考使用，用户可参考实践文档构建自己的软件，按需进行安全、可靠性加固，但不建议直接将相关Demo或镜像文件集成到商用产品中。

# 2 概述

## 2.1 背景

鲲鹏服务器出厂的各项配置为通用配置，能够满足基础业务运行需求，但该配置下的应用性能可能会因应用场景、软件栈等不同而有较大差异。要使鲲鹏服务器达到特定业务下的性能最优状态，用户需结合自身实际业务场景、软件部署架构开展针对性调优。传统人工调优模式下，操作人员需要熟悉系统参数配置，了解各种调优手动的作用、方法和适用场景，耗时成本高，还容易因对配置项理解偏差导致调优效果不达预期。

为解决上述问题，将常规的系统调优手段、特定业务场景的调优手段，结合BoostKit等加速套件的能力，设计开发了KAOT（Kunpeng & Ascend Optimization Tool）工具，将各种调优手段实现自动化使能。该工具旨在通过自动化的调优流程，帮助用户大幅降低性能调优的技术门槛与时间成本，无需深入掌握底层配置原理和配置方法，即可高效、准确地使能各类性能调优项，快速实现系统性能的最佳配置。

## 2.2 工具简介

KAOT（Kunpeng & Ascend Optimization Tool）是一款系统性能调优工具，其核心目标是通过自动化操作提升调优效率与易用性。相较于传统人工调优，KAOT 可根据用户指定的应用场景，自动完成调优配置文件生成、调优配置执行及鲲鹏BoostKit加速库安装等一系列操作，同时用户可以指定特定的调优手段进行快速使能，有效降低手动操作的复杂性和出错风险。

本文档将详细介绍KAOT工具的核心命令、参数配置、使用场景及注意事项，助力用户快速上手工具，大幅提升系统调优效率。

## 2.3 使用说明

本文档适用于需要使用KAOT工具进行系统性能调优的开发、运维人员，用户需对计算机系统架构和常用的调优手段有一定了解且具备基础的命令行操作能力。

### 2.3.1 调优方式说明

使用KAOT工具进行调优主要有以下两种场景：

- 按调优项进行调优

按调优项进行调优指的是用户手动选择指定的调优项进行使能。

该方式面向熟悉各个调优项及其适用范围的开发人员，通过选择调优项自动完成指定调优手段的使能。若明确当前业务场景所需使能的调优项，可通过该方式指定调优项。

表1已支持调优项清单

| 序号 | 调优项名称 | 调优项说明 |
| --- | --- | ---|
| 1 | config_core_isolation | 核心隔离配置 |
| 2 | config_hugepages | 大页内存配置 |
| 3 | disable_memory_overcommit | 禁用内存主动回收策略 |
| 4 | disable_swap | 禁用交换分区 |
| 5 | disable_transparent_hugepages | 禁用透明大页 |
| 6 | enable_cpu_performance_mode | 启用CPU性能模式 |
| 7 | update_irqbalance | 中断负载均衡 |
| 8 | update_sched_rt_runtime | 更新实时调度运行时 |
| 9 | check_boostkit_hyperscan_installed | 检查hyperscan是否带boostkit加速库 |
| 10 | check_bisheng_fusion_jdk_installed | 检查毕昇融合JDK是否安装 |
| 11 | optimize_io_queue_scheduler | 优化IO调度策略 |
| 12 | config_smt2 | 配置超线程 |
| 13 | config_nic_affinity | 配置网卡中断绑核 |
| 14 | optimize_kingbase_database_config | 金仓数据库配置调优 |
| 15 | optimize_opengauss_database_config | opengauss数据库配置调优 |
| 16 | optimize_dameng_database_config | 达梦数据库配置调优 |

详细的调优手段和说明可参考第五章《调优项说明》。

- 按应用场景进行调优

按应用场景调优指的是根据应用场景，自动选择相应的调优项进行使能。

该方式面向有特定使用场景的开发人员，屏蔽了调优项的选择，仅需指定场景，即可自动化完成调优工作，当前版本支持的应用场景有边界网关一体机场景和通用场景。

表2已支持的应用场景清单

| 序号 | 应用场景可选项 | 应用场景说明 |
| --- | --- | ---|
| 1 | boundary_gateway_appliance | 边界网关一体机场景：面向网关场景下的调优，会选择适合该场景的调优项进行配置，以及hyperscan软件包的自动化编译安装 |
| 2 | common | 通用场景：面向通用场景下的调优，集成了一些通用的操作系统调优手段，当前包含禁用交换分区、启用CPU性能模式 |
| 3 | kingbase_database | 金仓数据库场景：面向金仓数据库场景下的调优，会选择适合该场景的调优项进行配置，如启用超线程，网卡中断绑核，数据库配置参数的调优等 |
| 4 | opengauss_database | openGauss数据库场景：面向openGauss数据库场景下的调优，会选择适合该场景的调优项进行配置，如数据库配置参数的调优 |
| 5 | dameng_database | 达梦数据库场景：面向达梦数据库场景下的调优，会选择适合该场景的调优项进行配置，如数据库配置参数的调优。 |

### 2.3.2 使用流程说明

KAOT工具的使用流程如下：

1. 环境准备：确认系统已安装所有必要的依赖项和工具。
2. 选择调优方式：根据业务场景和需求，选择相应的调优方式，可按调优项/场景进行调优。
3. 生成调优配置文件：使用工具自动生成调优配置文件。
4. 使能调优配置：通过工具使能调优配置文件实现自动化调优。

图1KAOT工具的使用流程图

# 3 软件安装及使用条件

## 3.1 环境要求

本工具对使用环境有相关的依赖，建议参考下表的环境要求进行部署：

表1工具使用条件

| 依赖项 | 版本/型号 |
| --- | ---|
| CPU | Kunpeng 920 5250、Kunpeng 920 7260、Kunpeng 920 7270Z |
| OS/内核 | KylinV10 SP3 ARM（4.19）、openEuler20.03 ARM（4.19）、openEuler-22.03-LTS-SP4 aarch64（5.10） |
| Python | 3.9及以上 |

当前工具支持在物理机，虚拟机上使用，对于部分设涉及BIOS修改的特性，需要在物理机上手段修改方可生效。

## 3.2 工具安装

- 源码部署

1. 获取源码通过以下链接下载源码：https://gitcode.com/boostkit/kaot [了解详情](https://gitcode.com/boostkit/kaot)。

具体的源码包名称以实际下载的源码包版本为准，以下用KAOT.zip举例。

源码包下载完成后执行以下命令进行解压：

```bash
unzip KAOT.zip
```

2. 安裝依赖后使用

先进入解压后的源码包路径：

```bash
cd KAOT
```

执行以下命令进行安装软件依赖：

```bash
pip install -r requirement.txt
```

安装完成后，执行以下命令确认是否安装成功：

```
python kaot.py -h
```

若回显相关帮助信息代表安装成功。

- 工具卸载

若需卸载软件包，可执行以下命令直接删除目录即可：

```bash
rm -r kaot
```

说明：生成的配置文件和基线文件均会保存在该目录下，删除前注意保存所需的文件。

# 4 工具使用详解

KAOT工具通过执行kaot.py来实现调用，执行时需进入到工具解压后所在的目录。

基本格式

python kaot.py [subcommand] [options]

使用须知

- 参数大小写：所有参数均区分大小写，请遵循工具help说明中的示例格式。

其中子命令分别有以下六个，其功能如下表所示：

表1调优命令说明

| 子命令 | 功能 |
| --- | ---|
| basecfg | 生成所有调优项的基线文件（用于记录调优前的配置值） |
| generate | 生成指定调优项/场景的调优配置文件（用于使能调优项） |
| execute | 根据配置文件内容使能对应的调优项 |
| install | 安装加速库，简化安装流程 |
| uninstall | 卸载加速库 |
| version | 查看当前KAOT工具的版本信息 |

接下来各章节将详细说明整体的使用流程以及每个命令的功能、参数与使用示例。

## 4.1 概述

用使用KAOT工具进行调优，需结合四个子命令进行配置并使能：

1. 生成基线文件

在执行调优前，需使用python kaot.py basecfg命令来生成当前系统上的基线配置，可以用来执行调优项的撤销。

2. 生成配置文件

根据业务场景，可通过python kaot.py generate命令按场景或调优项来生成配置文件，该配置文件包含了调优项及对应的调优信息。

3. 使能配置文件

生成配置文件后，调优项并不会生效，需执行python kaot.py execute命令来使能调优项，此时调优项才会在环境中生效。

4. 使能软件安装（可选）

若配置项中有和加速库相关的配置，则在使能过程中会校验是否安装对应的加速库，如提示未安装，可通过python kaot.py install命令进行依赖安装，并执行对应软件的自动化脚本实现加速库编译安装。

## 4.2 python kaot.py basecfg：生成基线配置文件

### 4.2.1 命令功能

执行此命令将采集当前系统各个调优项的参数值，作为调优项的基线配置值，并生成一个基线配置文件。该文件包含所有调优项的配置，主要作用如下：

- 建立基准：作为系统调优前的初始状态参考。
- 配置对比：便于对比调优前后的配置差异。
- 快速回退：在需要时，为系统恢复至原始配置提供依据。

### 4.2.2 参数说明

本节将详细列出python kaot.py basecfg命令的所有配置参数。下表对每个参数的缩写、全称、功能、是否必须填写以及使用示例进行了说明，可在使用时参考。

表1python kaot.py basecfg命令配置参数说明

| 参数缩写 | 参数全称 | 参数说明 | 是否必选 | 使用示例 |
| --- | --- | --- | --- | ---|
| -l | --log | 设置日志级别，默认为info | 否 | python kaot.py basecfg -l debug |
| -h | --help | 查看命令帮助信息 | 否 | python kaot.py basecfg -h |
| --configfile | --configfile | 指定应用配置文件路径，格式为应用名称:配置文件路径(可多选，逗号间隔)。若不输入该参数，则按照工具内置的应用默认路径查找对应的配置文件。当前支持的应用名称为kingbase_database, opengauss_database，dameng_database。kingbase_database默认路径为/opt/Kingbase/ES/V8/data/kingbase.conf。opengauss_database默认路径是/opt/software/opengauss/data/opengauss.conf。dameng_database默认路径是opt/dameng/DAMENG/dm.ini。 | 否 | python kaot.py basecfg --configfile kingbase_database:/opt/Kingbase/ES/V8/data/kingbase.conf,opengauss_database:/opt/openGauss/data/postgresql.conf,dameng_database:/opt/dameng/DAMENG/dm.ini |

### 4.2.3使用场景与示例

python kaot.py basecfg命令只有一个使用场景，就是生成当前环境下所有调优项的基线文件，使用方法如下：

```bash
python kaot.py basecfg
```

生成的基线文件示例如下，其中SYSTEM_INFO为服务器上的系统信息，包含操作系统、cpu型号、内存大小、内核等；FEATURES为要调优的调优项列表，其中name字段为调优项名称，deploy字段为是否使能，可选值为Y/N/NA，执行python kaot.py execute只会使能deploy为Y的调优项，基线文件不涉及，所以为NA，其他字段均为和调优项相关的参数字段。

```markdown
SYSTEM_INFO:
  os: openEuler 22.03 (LTS-SP4)
  cpu: ' 920 7270E'
  memory: 374.02 GB
  uname: 5.10.0-216.0.0.115.oe2203sp4.aarch64
  version: kaot 1.0.0
OPTIMIZATION_ITEMS:
- name: check_bisheng_fusion_jdk_installed
  deploy: NA
  jdk_name: BiShengJDK
  jdk_version: Fusion
  compatibility: Current JDK version is BiShengJDK Fusion
- name: check_boostkit_hyperscan_installed
  deploy: NA
  boostkit_hyperscan_install_status: uninstalled
- name: config_smt2
  deploy: NA
  SMT2_status: disable
- name: config_core_isolation
  deploy: NA
  isolcpus: NA
  nohz_full: NA
  rcu_nocbs: NA
- name: config_hugepages
  deploy: NA
  hugepagesz: NA
  hugepages: -1
- name: config_nic_affinity
  deploy: NA
  irqbalance_status: enabled
  nic_policies: output/log/nic_affinities/20260304_115209.json
- name: disable_memory_overcommit
  deploy: NA
  zone_reclaim: 0
- name: disable_swap
  deploy: NA
  swappiness: 0
- name: disable_transparent_hugepages
  deploy: NA
  enabled: madvise
  defrag: defer+madvise
- name: enable_cpu_performance_mode
  deploy: NA
  cpufreq_default_governor: NA
- name: optimize_io_queue_scheduler
  deploy: NA
  io_queue_scheduler:
    sda: mq-deadline
    nvme0n1: none
    nvme1n1: none
    nvme3n1: none
    nvme2n1: none
- name: update_irqbalance
  deploy: NA
  irq_balance_status: active
- name: update_sched_rt_runtime
  deploy: NA
  sched_rt_runtime: 950000
```

### 4.2.4 注意事项

在使用python kaot.py basecfg命令生成基线配置时，请注意以下几点：

- 系统状态：确保系统处于默认或未调优状态。若系统已进行过其他优化操作，生成的基线文件将记录执行时系统上的当前配置信息。
- 文件路径：基线配置文件生成在./output/log/时间戳/目录下，文件名通常为base_config.yaml。
- 执行权限：此操作需要高级权限（如 root 或管理员权限）来读取系统关键配置。权限不足可能导致信息采集不完整。

## 4.3 python kaot.py generate：生成调优配置文件

### 4.3.1 命令功能

python kaot.py generate可根据指定的调优项列表或调优场景名称，生成系统调优配置文件，同时也支持基于已有的配置文件新增/删除调优项，满足不同场景的调优需求。

### 4.3.2 参数说明

表1python kaot.py generate命令配置参数说明

| 参数缩写 | 参数全称 | 参数说明 | 是否必选 | 使用示例 |
| --- | --- | --- | --- | ---|
| -o | --output_file_name | 指定生成配置文件名称 | 是 | python kaot.py generate -o feature.yaml -s common |
| -f | --features | 要使用的调优项(可多选)，可选序号或调优项，如-f 1,2 | 至少选择一个 | python kaot.py generate -f disable_swap,update_irqbalance -o feature.yaml |
| -s | --scenario | 要调优的场景名称，可选序号或场景名称，如-s 1 | python kaot.py generate -s boundary_gateway_appliance -o feature.yaml |  |
| -tp | --target_file_name | 要修改的配置文件名称 | python kaot.py generate -tp feature_config.yaml -af disable_swap -df update_sched_rt_runtime |  |
| -bp | --base_file_name | 要修改的基线文件名称 | python kaot.py generate -bp base_config.yaml -o feature.yaml |  |
| -af | --add_features | 要增加调优项的名称（可多选），可选序号或调优项，如-af 1,2 | 需和-tp参数同时使用 | python kaot.py generate -tp feature_config.yaml -af disable_swap |
| -df | --delete_features | 要删除调优项的名称（可多选），可选序号或调优项，如-df 1,2 | python kaot.py generate -tp feature_config.yaml -df update_sched_rt_runtime |  |
| -l | --log | 设置日志级别，默认为info | 否 | python kaot.py generate  -f disable_swap -l debug -o feature.yaml |
| -h | --help | 查看命令帮助信息 | 否 | python kaot.py generate -h |
| --configfile | --configfile | 指定要调优的应用的配置文件路径，格式为应用名称:配置文件路径，当前支持的应用名称为kingbase_database, opengauss_database, dameng_database | 场景为kingbase_database、opengauss_database以及dameng_database时必选 | python kaot.py generate -s kingbase_database --configfile kingbase_database:/opt/Kingbase/ES/V8/data/kingbase.conf  -o feature.yaml |

### 4.3.3 使用场景与示例

- 场景1：基于调优项名称生成配置文件

可直接指定需要使用的调优项名称列表，生成对应的配置文件：

```bash
python kaot.py generate -f [调优项] -o [生成配置文件名称]
```

以下为执行示例：

```bash
# 示例1：指定调优项名称列表，逗号分隔 
python kaot.py generate -f disable_swap,update_irqbalance -o feature.yaml 
# 示例2：指定调优项序号列表，逗号分隔 
python kaot.py generate -f 1,2 -o feature.yaml
```

在./output目录下生成的feature_config.yaml即为对应调优项的配置文件。

- 场景2：基于场景名称生成配置文件可指定调优场景，来生成配置，工具会自动根据选择的场景来生成对应调优项的配置文件：

```bash
python kaot.py generate -s [调优场景] -o [生成配置文件名称]
```

以下为执行示例：

```bash
python kaot.py generate -s boundary_gateway_appliance -o feature.yaml在./output目录下生成的feature_config.yaml即为对应场景的配置文件。
```

- 场景3：对已有的配置文件进行增加/减少等修改操作

若想对当前已有的配置文件feature_config.yaml进行修改，如增加enable_cpu_performance_mode调优项，删除disable_swap调优项，可参考以下命令进行修改：

```bash
python kaot.py generate -tp [配置文件] -af [增加的调优项] -df [删除的调优项]
```

以下为执行示例：

```bash
python kaot.py generate -tp feature.yaml -af enable_cpu_performance_mode -df disable_swap
```

注意执行前需确保feature.yaml在./output目录下，执行成功后会对该文件进行修改，并备份原始文件，备份文件路径可通过打屏信息查看。

- 场景4：将生成的基线文件中deploy的值设为Y

若想根据基线文件来进行回退，需在执行调优项使能前将基线文件中的deploy值设为Y，可以执行以下命令进行设置(根据实际情况调整基线文件的路径)：

```bash
python kaot.py generate -bp [基线文件] -o [生成配置文件名称]
```

以下为执行示例：

```
python kaot.py generate -bp base_config.yaml -o target_config.yaml
```

注意执行前需确保base_config.yaml在./output目录下，执行成功后在./output目录下生成的target_config.yaml即为修改后的配置文件。

- 场景5：将基线文件中指定调优项的配置同步到配置文件中

若需要回退设备上指定调优项的配置参数至基线值，步骤如下：

1. 通过以下命令自动将指定基线文件中的指定调优项参数同步到之前已下发的配置文件中：

```bash
python kaot.py generate -bp [基线文件] -tp [配置文件] -f [待同步的调优项]
```

以下为执行示例：

```bash
python kaot.py generate -bp base_config.yaml -tp feature_config.yaml -f disable_swap
```

注意执行前需确保base_config.yaml和feature_config.yaml在./output目录下，示例为将base_config中的disable_swap调优项的配置同步到feature_config中，并将原始的feature_config配置文件进行备份，备份文件路径可通过打屏信息查看。

2. 执行以下命令完成基线文件中的调优项下发，达到回退设备指定调优项的配置参数至基线值的效果：

```bash
python kaot.py execute -tp [配置文件]
```

以下为执行示例：

```bash
python kaot.py execute -tp feature_config.yaml
```

### 4.3.4 注意事项

操作注意事项：

- 修改依赖基线：对调优项进行增删（--add_features/--delete_features）的前提是必须指定一个配置文件名称（--target_file_name）。

## 4.4 python kaot.py execute：使能调优配置

### 4.4.1 命令功能

加载指定的调优配置文件，执行配置中定义的调优项操作，支持指定部分调优项单独执行，满足精细化调优需求。

### 4.4.2 参数说明

表1python kaot.py execute命令配置参数说明

| 参数缩写 | 参数全称 | 参数说明 | 是否必选 | 使用示例 |
| --- | --- | --- | --- | ---|
| -f | --features | 配置文件中要使能的调优项(可多选)，可选序号或调优项，如-f 1,2 | 否 | python kaot.py execute -tp feature_config.yaml -f disable_swap,update_irqbalance |
| -tp | --target_file_name | 要执行的调优配置文件名称 | 是 | python kaot.py execute -tp feature_config.yaml |
| -l | --log | 设置日志级别，默认为info | 否 | python kaot.py execute -tp feature_config.yaml -l debug |
| -h | --help | 查看命令帮助信息 | 否 | python kaot.py execute -h |

### 4.4.3 使用场景与示例

- 场景1：全量执行，即加载指定的调优配置文件，并执行其中定义的所有调优项。

参考以下命令进行执行：

```bash
python kaot.py execute -tp [配置文件]
```

以下为执行示例：

```bash
python kaot.py execute -tp feature_config.yaml
```

注意执行前需确保feature_config.yaml在./output目录下，执行成功后，会命令行回显进行日志提示，并生成执行调优前的基线文件base_config.yaml，若调优效果不佳，可基于该文件进行回退。

- 场景2：仅执行配置文件中指定的一个或多个调优项，满足精细化、分步骤的调优需求。

参考以下命令进行执行：

```bash
python kaot.py execute -tp [配置文件] -f [调优项]
```

以下为执行示例：

```bash
# 示例1：指定调优项名称列表，逗号分隔
python kaot.py execute -tp feature_config.yaml -f disable_swap,update_irqbalance
# 示例2：指定调优项序号列表，逗号分隔
python kaot.py execute -tp feature_config.yaml -f 1,2
```

注意执行前需确保feature_config.yaml在./output目录下，执行成功后，会打屏进行日志提示，并生成执行调优前的基线文件base_config.yaml，该基线文件仅包含执行时指定的调优项。

### 4.4.4 注意事项

- 前置校验：为确保调优操作的安全性和兼容性，工具会先验证当前系统环境是否与配置文件生成时的环境相符。若环境不匹配，调优将不会执行。
- 执行范围：工具在执行时，会自动筛选出配置文件中标记为deploy: Y的调优项进行应用，其他调优项将被忽略。
- 执行策略：待执行的调优项均按配置文件内调优项的顺序执行，若遇到某个调优项执行失败，则后续的调优项均不会再执行，且当前执行失败的调优项会依据生成的基线文件进行回退，已执行成功的调优项则不受影响。

## 4.5 python kaot.py install：安装加速库

### 4.5.1 命令功能

使用该命令自动化安装或卸载鲲鹏BoostKit配套的优化加速库。

### 4.5.2 参数说明

表1python kaot.py install命令配置参数说明

| 参数缩写 | 参数全称 | 参数说明 | 是否必选 | 使用示例 |
| --- | --- | --- | --- | ---|
| -n | --name | 要安装的加速库名称（可多选） | 是 | python kaot.py install -n boostkit_ksl |
| -d | --dir | 指定安装包路径 | 否 | python kaot.py install -n boostkit_ksl -d /install_pkgs |
| -l | --log | 设置日志级别，默认为info | 否 | python kaot.py install -n boostkit_ksl -l debug |
| -h | --help | 查看命令帮助信息 | 否 | python kaot.py install -h |

表2支持的安装包说明

| 安装包名称 | 说明 | 下载路径 | 是否支持联网下载 |
| --- | --- | --- | ---|
| boostkit_ksl | KSL（Kunpeng SystemLibrary，鲲鹏系统库）是华为提供的基于鲲鹏平台优化的高性能系统函数库，提供了鲲鹏平台上x86指令迁移，内存分配，多线程，编解码，字符串匹配等能力，通过充分发挥鲲鹏硬件优势，对比开源版本实现有一定的性能和易用性提升 | https://www.hikunpeng.com/boostkit/library/detail?subtab=Hyperscan | 否 |
| bisheng_jdk_fusion | 毕昇JDK融合版本，高性能版本，兼容openJDK8以及毕昇JDK8 | https://www.hikunpeng.com/zh/developer/devkit/download/exagear | 否 |
|  |  |  |  |

### 4.5.3 使用场景与示例

- 场景1：【安装加速库】使用python kaot.py generate生成调优项中包含安装加速库的调优项，执行python kaot.py execute使能该调优项时会检查环境中是否安装对应的加速库，并指引用户使用python kaot.py install命令去安装对应的加速库。

示例：执行python kaot.py execute -tp feature_config.yaml后，若feature_config.yaml包含安装hyperscan加速库的调优项，则会打印"请执行python kaot.py install -n boostkit_ksl指令安装boostkit_ksl加速库，然后执行hyperscan_build脚本进行编译鲲鹏带ksl库版本的hyperscan软件"，并执行以下命令：

```bash
python kaot.py install -n boostkit_ksl -d ./packages_dir
```

执行成功后即可完成boostkit_ksl加速库安装。

- 场景2：【安装加速库后手动执行命令使得安装生效】

示例：以安装bishengjdk融合版本为例，安装之后需要手动执行source命令使得安装生效

```bash
python kaot.py install -n bisheng_jdk_fusion -d ./packages_dir
```

```bash
source /etc/profile.d/bisheng_jdk_fusion.sh
```

执行成功后即可完成bishengjdk融合版本的安装。

### 4.5.4 注意事项

- 执行范围：可以通过python kaot.py install -h查看支持安装的加速库后使用python kaot.py install -n 进行加速库安装，支持安装多个，使用空格隔开。
- 执行策略:部分场景需要执行python kaot.py install后再执行编译安装脚本才能完成鲲鹏带加速库版本软件的编译安装。
- 配套脚本使用说明：

编译安装脚本目录：统一放置在工具文件中的./kaot/install/opensource。

编译安装脚本执行：根据python kaot.py execute命令执行后的提示，执行对应的脚本如hyperscan_build编译对应的带boostkit加速库的软件。

编译安装脚本执行有两种方式，可参考以下示例执行：

1. 不指定安装包目录（联网场景）

执行以下命令，会在当前目录下生成install_files的目录，并联网下载需要的安装包到该目录下：

```bash
sh hyperscan_build.sh
```

2. 指定安装包目录（离线场景）

离线场景下，如下载好安装包到指定目录下，如packages_dir下，下表1为hyperscan_build.sh脚本对应的安装包：

表1安装包说明

| 安装包名称 | 下载路径 |
| --- | ---|
| boost_1_87_0.tar.gz | http://www.colm.net/files/ragel/ragel-6.10.tar.gz |
| ragel-6.10.tar.gz | https://archives.boost.io/release/1.87.0/source/boost_1_87_0.tar.gz |
| pcre-8.43.tar.gz | https://sourceforge.net/projects/pcre/files/pcre/8.43/pcre-8.43.tar.gz |
| BoostKit-ksl_2.5.2.zip | https://www.hikunpeng.com/boostkit/download?version=25.2.RC1 |
| khsel_enhanced.patch | https://gitee.com/kunpengcompute/hyperscan/blob/khsel/khsel_enhanced.patch |
| v5.4.2.aarch64.zip | https://raw.gitcode.com/boostkit/hyperscan/archive/refs/heads/v5.4.2.aarch64.tar.gz |
| build.sh | https://gitee.com/kunpengcompute/hyperscan/raw/khsel/build.sh |

安装包下载完成后，执行以下命令，会到指定目录packages_dir下检查对应的安装包并进行编译安装：

```bash
sh hyperscan_build.sh -d ./packages_dir
```

## 4.6 python kaot.py uninstall：卸载加速库

### 4.6.1 命令功能

使用该命令自动化卸载鲲鹏BoostKit配套的优化加速库。

### 4.6.2 参数说明

表1python kaot.py uninstall命令配置参数说明

| 参数缩写 | 参数全称 | 参数说明 | 是否必选 |
| --- | --- | --- | ---|
| -n | --name | 要卸载的加速库名称（可多选） | 是 |
| -l | --log | 设置日志级别，默认为info | 否 |
| -h | --help | 查看命令帮助信息 | 否 |

表2支持卸载的安装包说明

| 安装包名称 | 说明 |
| --- | ---|
| boostkit_ksl | KSL（Kunpeng SystemLibrary，鲲鹏系统库）是华为提供的基于鲲鹏平台优化的高性能系统函数库，提供了鲲鹏平台上x86指令迁移，内存分配，多线程，编解码，字符串匹配等能力，通过充分发挥鲲鹏硬件优势，对比开源版本实现有一定的性能和易用性提升 |
| bisheng_jdk_fusion | 毕昇JDK融合版本，高性能版本，兼容openJDK 8以及毕昇JDK8 |

### 4.6.3 使用场景与示例

- 场景1：【卸载加速库】执行python kaot.py execute -tp baseconfig.yaml进行回退调优项使能的时候，日志会指引使用python kaot.py uninstall命令去卸载对应的加速库。

示例：执行python kaot.py execute -tp baseconfig.yaml后，若baseconfig.yaml包含回退安装hyperscan加速库的调优项，则会打印"请执行python kaot.py uninstall -n boostkit_ksl指令卸载boostkit_ksl加速库，然后使用原生的hyperscan源码包进行编译"，按照提示执行以下命令：

```bash
python kaot.py uninstall -n boostkit_ksl
```

执行成功后即可完成boostkit_ksl加速库卸载。

# 5 调优项说明

KAOT工具支持的调优项及其说明如下：

表1调优项详情

| 调优项 | 调优项名称 | 调优项说明 | 配置项 | 执行操作 | 调优项类型 |
| --- | --- | --- | --- | --- | ---|
| config_core_isolation | 核心隔离配置 | 将指定的CPU核心与系统通用任务隔离，专用于高性能计算或低延迟应用，以减少调度干扰。 | •isolcpus•nohz_full•rcu_nocbs | 修改或追加/etc/default/grub中GRUB_CMDLINE_LINUX所在行中isolcpus、nohz_full和rcu_nocbs的配置为指定值 | OS |
| config_hugepages | 大页内存配置 | 预分配并启用大页内存，减少页表项数量，降低TLB缺失率，提升内存访问密集型应用的性能。 | •hugepagesz•hugepages | 修改或追加/etc/default/grub中GRUB_CMDLINE_LINUX所在行hugepagesz和hugepages的配置为指定值 | OS |
| disable_memory_overcommit | 禁用内存主动回收策略 | 内核的内存过载承诺机制，确保申请的内存都能被实际分配，避免因内存不足导致进程被OOM Killer终止的风险。 | •disable_memory_overcommit | 修改/etc/sysctl.conf文件，修改vm.zone_reclaim_mode参数为指定值，若没有该参数，则追加vm.zone_reclaim_mode="指定值"到文件末尾 | OS |
| disable_swap | 禁用交换分区 | 系统使用硬盘Swap空间的功能，强制所有数据驻留在物理内存，避免因换入换出导致的性能抖动，适用于内存充足且要求稳定性的场景。 | •swappiness | 修改/etc/sysctl.conf文件，修改vm.swappiness参数为指定值，若没有该参数，则追加vm.swappiness="指定值"到文件末尾 | OS |
| disable_transparent_hugepages | 禁用透明大页 | 内核自动管理透明大页的功能，解决某些数据库或特定工作负载因THP的自动合并与拆分导致的性能不稳定问题。 | •enabled•defrag | 通过配置 kaot.service（systemd oneshot 服务），在系统启动阶段自动配置透明大页，即将以下内核接口的配置设置为指定值：/sys/kernel/mm/transparent_hugepage/enabled/sys/kernel/mm/transparent_hugepage/defrag | OS |
| enable_cpu_performance_mode | 启用CPU性能模式 | 将CPU调控器（governor）设置为性能模式，使CPU始终以最高主频运行，减少频率切换带来的延迟，提升计算响应速度。 | •cpufreq_default_governor | 修改或追加/etc/default/grub中GRUB_CMDLINE_LINUX所在行cpufreq.default_governor的配置为指定值 | OS |
| update_irqbalance | 中断负载均衡 | 优化中断请求在多个CPU核心间的负载分配，避免中断集中导致单个核心过载，提升系统的并行处理能力和响应性。 | •irq_balance_status | 若目标值为active，则执行linux命令systemctl start irqbalance; systemctl enable irqbalance若目标值为inactive，则执行linux命令system stop irqbalance；systemctl disable irqbalance | OS |
| update_sched_rt_runtime | 更新实时调度运行时 | 调整实时进程的CPU时间配额，为实时任务保证的CPU调度时间，满足实时性应用的严格要求。 | •sched_rt_runtime | 修改/etc/sysctl.conf文件，修改kernel.sched_rt_runtime_us参数为指定值，若没有该参数，则追加kernel.sched_rt_runtime_us = ""指定值""到文件末尾修改后应用sysctl -p生效 | OS |
| check_boostkit_hyperscan_installed | 检查hyperscan是否带boostkit加速库 | 检查当前环境的hyperscan是否带boostkit_ksl加速库的版本，没有则提示安装ksl加速库并执行脚本编译hyperscan | •boostkit_hyperscan_install_status | 若目标值为installed，则打印日志提示用户执行kaot install -n boostkit_ksl指令安装boostkit_ksl加速库，然后执行sh hyperscan_build脚本进行编译鲲鹏带ksl库版本的hyperscan软件。若目标值为uninstalled，则打印日志提示用户执行kaot uninstall -n boostkit_ksl指令卸载boostkit_ksl加速库，然后使用原生的hyperscan源码包进行编译 | 中间件 |
| check_bisheng_fusion_jdk_installed | 检查毕昇融合JDK是否安装 | 检查当前环境的JDK是否为毕昇融合JDK或者是否兼容该版本，若不是则提示使用python kaot.py install命令安装毕昇融合JDK | •jdk_name•jdk_version•compatibility | 若当前值jdk_name为BiShengJDK，jdk_version为Fusion，则说明毕昇JDK融合版本已经安装，打印日志提示用户可以执行python kaot.py uninstall -n bisheng_jdk_fusion 指令卸载毕昇JDK融合版本。若当前jdk_name不为BiShengJDK，或者jdk_version不为Fusion，则检查compatibility字段的兼容关系，若兼容，则打印日志提示用户执行python kaot.py install -n bisheng_jdk_fusion -d <your_dir>安装毕昇JDK融合版本，若不兼容，则直接提示unknown compatibility。 | 中间件 |
| optimize_io_queue_scheduler | 优化IO调度策略 | 在固态硬盘场景下，使用none可以提升磁盘IO性能 | •io_queue_scheduler | 1. 创建规则文件 /etc/udev/rules.d/io-queue-scheduler.rules2. 写入ACTION=="add|change", KERNEL=="指定磁盘", ATTR{queue/scheduler}="指定IO调度策略"3. 执行命令重新加载sudo udevadm control --reload-rules sudo udevadm trigger --name-match=指定磁盘 | OS |
| config_smt2 | 启用超线程 | 开启SMT超线程，每个物理核分为两个逻辑核，通过并行来提升整机性能 | •SMT2_status | 目标值为enable，执行lscpu，若返回信息中Thread(s) per core为1，则提示当前超线程未启用，可以进入BIOS菜单Advanced>Power and Performance Configuration>CPU PM Control>SMT2 设置为enable。 | OS |
| config_nic_affinity | 配置网卡中断绑核 | 将处理网卡中断的CPU core设置为网卡所在的NUMA上的CPU core，从而减少跨NUMA的内存访问所带来的额外开销，提升网络处理性能 | •irqbalance_status•nic_policies | 若目标值irqbalance_status为disabled, 则按照nic_policies中指定的网卡以及CPU核心将网卡对应的中断循环绑定到对应的CPU核心上；若目标值irqbalance_status为enable, 则执行指令systemctl start irqbalance启用irqlanace服务将网卡对应中断随机分配到CPU核心上。 | OS |
| optimize_kingbase_database_config | 金仓数据库配置调优 | 调整金仓数据库配置参数 | •config_mapping_apps_name•config_path•config_bak_path•shared_buffers•checkpoint_timeout•bgwriter_delay•max_wal_size•max_connections | 1. 根据配置项中config_path的字段，找到对应的配置文件。2. 备份配置文件，并将备份路径回写到config_bak_path。3. 修改配置文件中的参数值为指定值，若指定值为null，则删除对应参数。 | 数据库 |
| optimize_opengauss_database_config | opengauss数据库配置调优 | 调整opengauss数据库配置参数 | •config_mapping_apps_name•config_path•config_bak_path•shared_buffers•wal_buffers•synchronous_commit•audit_enabled•wal_level•bgwriter_delay•enable_asp•wal_keep_segments•light_comm•bgwriter_delay•pagewriter_sleep•time_record_level完整的配置参数请参考"基于虚拟机的openGauss调优参考实践"4.5.1 性能参数调整 | 1. 根据配置项中config_path的字段，找到对应的配置文件。2. 备份配置文件，并将备份路径回写到config_bak_path。3. 修改配置文件中的参数值为指定值，若指定值为null，则删除对应参数。 | 数据库 |
| optimize_dameng_database_config | 达梦数据库配置调优 | 调整达梦数据库配置参数 | •config_mapping_apps_name•config_path•config_bak_path•COMMIT_BATCH•COMMIT_BATCH_TIMEOUT•MAX_OS_MEMORY•MEMORY_POOL•MEMORY_TARGET•BUFFER•BUFFER_POOLS•DIRECT_IO•IO_THR_GROUPS•WORKER_THREADS•TASK_THREADS | 1. 根据配置项中config_path的字段，找到对应的配置文件。2. 备份配置文件，并将备份路径回写到config_bak_path。3. 修改配置文件中的参数值为指定值，若指定值为null，则删除对应参数。 | 数据库 |

如下是按场景调优会使能的调优项说明：

表2场景调优说明

| 使用方式 | 场景名称 | 场景名称(英文) | 使能调优项 |
| --- | --- | --- | ---|
| 按场景调优 | 边界网关一体机 | boundary_gateway_appliance | 核心隔离配置、大页内存配置、禁用内存主动回收策略、禁用交换分区、禁用透明大页、启用CPU性能模式、更新中断平衡配置、更新实时调度运行时、检查hyperscan是否带boostkit加速库 |
| 通用场景 | common | 禁用交换分区、启用CPU性能模式、检查毕昇融合JDK是否安装 |  |
| 金仓数据库场景 | kingbase_database | 网卡中断绑核优化、优化IO调度策略、启用超线程、金仓数据库配置调优 |  |
| opengauss数据库场景 | opengauss_database | opengauss数据库配置调优 |  |
| 达梦数据库场景 | dameng_database | 网卡中断绑核优化、启用超线程、策略性抑制swap交换内存使用、启用CPU性能模式、达梦数据库配置调优、优化IO调度策略 |  |

# 6 典型场景使用指导

## 6.1 边界网关一体机调优场景

本章节基于边界网关一体机场景，给出该工具使用的最佳实践。

步骤 1调优前测试环境上的基线性能数据（可选，用来对比调优前后的效果）

根据业务场景进行测试即可。

步骤 2生成当前环境上的基线文件

执行以下命令生成所有调优项的基线文件：

```bash
python kaot.py basecfg
```

步骤 3根据场景boundary_gateway_appliance生成调优配置文件

执行以下命令生成该场景下的配置文件：

```bash
python kaot.py generate -s boundary_gateway_appliance -o feature_config.yaml
```

根据执行成功后的日志回显，可查看生成的配置文件feature_config.yaml是否完整。

步骤 4使能生成的调优配置文件

执行以下命令使能调优项：

```bash
python kaot.py execute -tp feature_config.yaml
```

根据执行打屏日志，可查看生成的基线文件base_config.yaml是否完整、调优项是否执行成功，以及是否需要安装加速库。

步骤 5通过工具使能加速库安装

根据使能过程中的日志提示，判断是否需要安装加速库软件，若需要按提示进行加速库安装，例如：

```bash
python kaot.py install -n boostkit_ksl
```

部分场景需要执行kaot install后再执行编译安装脚本才能完成鲲鹏带加速库版本软件的编译安装，根据日志提示，到对应的目录./kaot/install/opensource运行对应的编译安装脚本。

步骤 6测试调优后的性能（可选，用来对比调优前后的效果）

按照步骤1的测试方法进行测试。

步骤 7回退不需要执行的调优配置（可选）

若要回退指定的调优项，需将基线文件的deploy字段修改为Y，并按调优项使能新生成的配置文件，以回退disable_swap为例，使用方式如下：

1. 修改基线文件

```bash
python kaot.py generate -bp base_config.yaml -o target_config.yaml
```

得到新生成的配置文件target_config.yaml，执行前注意拷贝基线文件base_config.yaml至./output目录下。

2. 使能新生成的配置文件中的调优项

```bash
python kaot.py execute -tp target_config.yaml -f disable_swap
```

部分配置项如boostkit加速库安装的回退需要根据日志提示执行"kaot uninstall  -n +加速库名称" 卸载boostkit加速库并使用原生版本软件包进行编译。

步骤 8测试最终性能（可选，用来对比调优前后的效果）

按照步骤1的测试方法进行测试。

----结束↵

## 6.2 数据库调优场景

本节基于数据库调优场景，给出该工具使用的最佳实践。

步骤 1调优前测试环境上的基线性能数据（可选，用来对比调优前后的效果）

根据业务场景进行测试即可。

步骤 2生成当前环境上的基线文件

根据不同数据库场景，执行以下命令生成所有调优项的基线文件：

执行以下命令生成所有调优项的基线文件：

(1) openGuass数据库场景

```
         python kaot.py basecfg --configfile opengauss_database:/opt/openGuass/data/postgresql.conf
```

(2) KingBase金仓数据库场景

```
         python kaot.py basecfg --configfile kingbase_database:/opt/Kingbase/ES/V8/data/kingbase.conf
```

(3) 达梦数据库场景

```
         python kaot.py basecfg --configfile dameng_database:/opt/dmdbms/data/DAMENG/dm.ini
```

步骤 3根据场景生成调优配置文件

执行以下命令生成该场景下的配置文件：

(1) openGuass数据库场景

```bash
python kaot.py generate -s opengauss_database --configfile opengauss_database:/opt/openGuass/data/postgresql.conf -o feature_config.yaml
```

(2) kingbase金仓数据库场景

```bash
python kaot.py generate -s kingbase_database --configfile kingbase_database:/opt/Kingbase/ES/V8/data/kingbase.conf -o feature_config.yaml
```

(3) 达梦数据库场景

```bash
python kaot.py generate -s dameng_database --configfile dameng_database:/opt/dmdbms/data/DAMENG/dm.ini -o feature_config.yaml
```

示例中提供的kingbase.conf路径为kingbase默认路径，用户可使用默认路径，若有指定，则使用自定义的路径。

postgresql.conf一般没有默认路径，安装目录由用户指定，用户必须使用用户指定的postgresql.conf路径。

dm.ini一般默认路径为达梦数据库的安装用户目录，也可以由用户指定。

根据执行成功后的日志回显，可查看生成的配置文件feature_config.yaml是否完整。

步骤 4使能生成的调优配置文件

执行以下命令使能调优项：

```bash
python kaot.py execute -tp feature_config.yaml
```

根据执行打屏日志，可查看生成的基线文件base_config.yaml是否完整、调优项是否执行成功，以及生成的配置文件备份是否完整

步骤 5重启数据库服务使得配置参数调整生效。

步骤 6测试调优后的性能（可选，用来对比调优前后的效果）

按照步骤1的测试方法进行测试。

步骤 7回退不需要执行的调优配置（可选）

若要回退指定的调优项，需将基线文件的deploy字段修改为Y，并按调优项使能新生成的配置文件，以回退config_nic_affinity为例，使用方式如下：

1. 修改基线文件

```bash
python kaot.py generate -bp base_config.yaml -o target_config.yaml
```

得到新生成的配置文件target_config.yaml，执行前注意拷贝基线文件base_config.yaml至./output目录下。

2. 使能新生成的配置文件中的调优项

```bash
python kaot.py execute -tp target_config.yaml -f config_nic_affinity
```

步骤 8测试最终性能（可选，用来对比调优前后的效果）

按照步骤1的测试方法进行测试。

----结束↵

本页内容
