---
title: KAOT工具新特性：支持openGuass、金仓数据库、达梦数据库自动调优-官方技术文章-鲲鹏社区
description: KAOT（Kunpeng & Ascend Optimization Tool）是一款系统性能调优工具，其核心目标是通过自动化操作提升调优效率与易用性。相较于传统人工调优，KAOT可根据用户指定的应用场景，自动完成调优配置文件生成、调优配置执行及鲲鹏BoostKit加速库安装等一系列操作，同时用户可以指定特定的调优手段进行快速使能，有效降低手动操作的复杂性和出错风险。 KAOT新增支持金仓数据库、
keywords: KAOT,Guass,工具新特性,金仓数据库,达梦数据库自动调优,官方技术文章,鲲鹏社区,非商用声明
url: https://www.hikunpeng.com/developer/techArticles/20260311-1?envFlag=1
section: (其他)
---

# KAOT工具新特性：支持openGuass、金仓数据库、达梦数据库自动调优-官方技术文章-鲲鹏社区

URL: https://www.hikunpeng.com/developer/techArticles/20260311-1?envFlag=1
描述: KAOT（Kunpeng & Ascend Optimization Tool）是一款系统性能调优工具，其核心目标是通过自动化操作提升调优效率与易用性。相较于传统人工调优，KAOT可根据用户指定的应用场景，自动完成调优配置文件生成、调优配置执行及鲲鹏BoostKit加速库安装等一系列操作，同时用户可以指定特定的调优手段进行快速使能，有效降低手动操作的复杂性和出错风险。 KAOT新增支持金仓数据库、
关键词: KAOT,Guass,工具新特性,金仓数据库,达梦数据库自动调优,官方技术文章,鲲鹏社区,非商用声明

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

KAOT工具新特性：支持openGuass、金仓数据库、达梦数据库自动调优

KAOT工具新特性：支持openGuass、金仓数据库、达梦数据库自动调优

案例分享openGauss鲲鹏处理器计算商业SMECE

发表于 2026/03/11

0

# 1 非商用声明

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

# 2 概述

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

KAOT新增支持金仓数据库、openGauss数据库、达梦数据库3个数据库场景的自动化调优能力，3个数据库的调优参考实践详见如下三个文档：

表1数据库调优参考实践

| 参考实践 | 链接 |
| --- | ---|
| 基于虚拟机的openGauss调优参考实践 | https://www.hikunpeng.com/zh/developer/techArticles/20251230-1 |
| 基于鲲鹏服务器的金仓数据库调优参考实践 | https://www.hikunpeng.com/zh/developer/techArticles/20260309-2 |
| 基于鲲鹏服务器的达梦数据库调优参考实践 | https://www.hikunpeng.com/zh/developer/techArticles/20260626-6 |

# 3 数据库调优端到端使用指导

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

工具详细使用参考实践参考文档：https://www.hikunpeng.com/zh/developer/techArticles/20251222-1 [了解详情](https://www.hikunpeng.com/zh/developer/techArticles/20251222-1)

步骤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数据库场景

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

(2) KingBase金仓数据库场景

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

(3) 达梦数据库场景

```
         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使能生成的调优配置文件

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

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

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

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

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

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

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

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

1. 修改基线文件

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

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

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

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

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

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

----结束

# 4附录：数据库调优场景下的自动调优项汇总

表1KAOT工具支持的KingBase金仓数据库调优项总览

| 调优手段 | 作用 |
| --- | ---|
| 设置CPU高性能模式 | 通过将CPU频率固定在最高值获得最大化性能 |
| 开启SMT超线程 | 开启SMT超线程，每个物理核分为两个逻辑核，提升整机性能 |
| 策略性抑制swap交换内存使用 | 减少数据库缓存交换到磁盘的情况，从而保证数据库的访问性能 |
| 磁盘IO调度策略调整 | 在固态硬盘场景下，使用none可以提升磁盘IO性能 |
| 网卡中断绑核 | 将处理网卡中断的CPU core设置在网卡所在的NUMA上，从而减少跨NUMA的内存访问所带来的额外开销，提升网络处理性能 |
| KingBase金仓数据库共享内存参数优化 | 可以将频繁访问的数据从缓慢的磁盘（微秒/毫秒级）移至高速的内存（纳秒级），从而提升数据库性能 |
| KingBase金仓数据库I/O相关参数优化 | 根据业务实际调整数据库配置参数，提升磁盘IO性能 |

表2KAOT工具支持的openGuass数据库调优项总览

| 调优手段 | 作用 |
| --- | ---|
| 设置CPU高性能模式 | 通过将CPU频率固定在最高值获得最大化性能 |
| openGuass数据库配置参数优化 | 根据业务实际调整数据库配置参数，提升磁盘IO性能 |

表3KAOT工具支持的达梦数据库调优项总览

| 调优手段 | 作用 |
| --- | ---|
| 网卡中断绑核 | 将处理网卡中断的CPU core设置在网卡所在的NUMA上，从而减少跨NUMA的内存访问所带来的额外开销，提升网络处理性能 |
| 开启SMT超线程 | 开启SMT超线程，每个物理核分为两个逻辑核，提升整机性能 |
| 策略性抑制swap交换内存使用 | 减少数据库缓存交换到磁盘的情况，从而保证数据库的访问性能 |
| 设置CPU高性能模式 | 通过将CPU频率固定在最高值获得最大化性能 |
| 达梦数据库配置参数优化 | 优化数据库事务合并、内存缓冲区、磁盘IO、线程数配置等，从而提升数据库性能 |
| 磁盘IO调度策略调整 | 在固态硬盘场景下，使用none可以提升磁盘IO性能 |

表4KAOT工具调优KingBase金仓数据库配置参数参考

| 数据库配置参数名称 | 参数含义及应用 | 默认值 | 参考调优值 |
| --- | --- | --- | ---|
| shared_buffers | 设置数据库服务器使用的共享内存缓冲区的数量，主要用于缓存数据，可以将频繁访问的数据从缓慢的磁盘（微秒/毫秒级）移至高速的内存（纳秒级），从而提升数据库性能。该参数根据需求一般不能设置超过物理机整机内存总量的80%，但至少是20%。 | 128MB | KingBase金仓数据库场景工具使用65%* 服务器内存后向上取整以512GB为例，约为333GB |
| checkpoint_timeout | 两个相邻检查点之间的时间间隔，用于刷数据到磁盘。应用：根据系统写的负载设置，一般不要太频繁，可以和后台写线程配置相关参数配合使用。 | 5min | 20min |
| checkpoint_completion_target | 表示checkpoint的完成时间要在两个checkpoint间隔时间的N%内完成。设置长一点，避免对性能测试的影响 | 0.5 | 0.9 |
| bgwriter_delay | 后台写线程的自动执行时间，后台写线程的作用是将 shared_buffer 里的脏页面写回到磁盘，减少 checkpoint 的压力。应用：如果系统数据修改的压力一直很大，建议将该时间间隔设置小一些，以免积累的大量的脏页面到 checkpoint，使 checkpoint 时间过长(checkpoint 期间系统响应速度较慢)。 | 200ms | 10ms |
| max_wal_size | 检查点之间WAL日志允许增长的最大大小。应用：设置较大的值（如300GB）可防止在写入高峰期因WAL增长过快而频繁触发检查点。 | 1GB | 300GB |
| max_connections | 数据库允许的最大并发连接数。 | 100 | 2048 |

表5KAOT工具调优openGuass数据库配置参数参考

| 参数名称 | 优化后的参数含义及应用 | 默认值 | 参考调优值 |
| --- | --- | --- | ---|
| max_connections | 数据库允许的最大并发连接数。 | 200 | 2048 |
| allow_concurrent_tuple_update | 是否允许并发更新同一行元组（特定引擎特性）。 | on | TRUE |
| audit_enabled | 是否启用合规性操作日志记录功能。 | on | off |
| checkpoint_segments | 设置触发检查点的WAL日志文件数量。 | 64 | 1024 |
| cstore_buffers | 为列存储引擎（CStore）分配的专用共享缓冲区大小。 | 512MB | 16MB |
| enable_alarm | 是否启用系统异常告警通知功能。 | on | off |
| full_page_writes | 是否在检查点后第一次修改页时，将整个页写入WAL，防止部分写入导致崩溃后数据损坏。 | on | off |
| max_files_per_process | 每个服务进程可打开的最大文件数。 | 1000 | 100000 |
| max_prepared_transactions | 可同时处于“预备”状态的两阶段提交事务的最大数量。 | 200 | 2048 |
| wal_buffers | 用于存放还未写入磁盘的WAL数据的共享内存大小。 | 16MB | 1GB |
| synchronous_commit | 事务提交时是否等待WAL刷新到磁盘。 | on | on |
| maintenance_work_mem | 维护性操作（如VACUUM, CREATEINDEX等）可使用的最大内存。 | 16MB | 2GB |
| vacuum_cost_limit | 达到此成本限制后，VACUUM会休眠。 | 200 | 10000 |
| autovacuum_max_workers | 可同时运行的自动清理（autovacuum）工作进程的最大数量。 | 3 | 10 |
| autovacuum_vacuum_cost_delay | 当一个自动清理工作进程达到成本限制后，休眠的时长。 | 20ms | 10ms |
| enable_material | 优化器是否允许使用物化节点。 | on | off |
| wal_log_hints | 是否在检查点后页的第一次修改时，即使是因为提示位更改，也写完整页到WAL。 | on | off |
| autovacuum_vacuum_scale_factor | 触发自动VACUUM的元组更新/删除比例（相对于表大小）。 | 0.2 | 0.1 |
| autovacuum_analyze_scale_factor | 触发自动ANALYZE的元组更新/插入比例（相对于表大小）。 | 0.1 | 0.02 |
| enable_save_datachanged_timestamp | 是否保存数据变更时间戳。 | on | FALSE |
| instr_unique_sql_count | 内存中可缓存的不同SQL执行特征的数量，用于内部执行统计分析。 | 100 | 5000 |
| advance_xlog_file_num | 提前回收的WAL日志文件数量。 | 0 | 100 |
| track_counts | 是否维护表和索引的访问计数器，为自动清理和优化器提供统计依据。 | on | on |
| track_sql_count | 是否启用SQL执行频次的内部统计计数。 | on | on |
| plog_merge_age | 计划日志合并的年龄。 | 0 | 0 |
| session_timeout | 客户端连接的超时时间（0表示不超时）。 | 10min | 0 |
| enable_instance_metric_persistent | 是否将实例级运行状态数据持久化存储至系统表。 | on | off |
| enable_logical_io_statistics | 是否收集逻辑I/O操作的内部统计信息。 | on | off |
| enable_user_metric_persistent | 是否将用户级会话状态数据持久化存储至系统表。 | on | off |
| enable_xlog_prune | 是否启用WAL日志的自动清理。 | on | off |
| enable_resource_track | 是否开启系统资源消耗的内部记录功能。 | on | on |
| remote_read_mode | 分布式架构下协调节点访问数据节点的认证模式。 | authentication | non_authentication |
| wal_level | WAL日志的级别，决定写入多少信息。 | hot_standby | hot_standby |
| hot_standby | 是否允许在备库上执行只读查询。 | on | on |
| hot_standby_feedback | 备库是否向主库反馈其当前最旧的活动事务ID，防止主库清理备库仍需要的数据。 | off | off |
| enable_asp | 是否启用活跃会话历史快照功能，用于性能回溯分析。 | on | off |
| enable_bbox_dump | 是否启用系统异常时的黑匣子诊断信息转储。 | on | off |
| bgwriter_flush_after | 后台写进程每次刷脏数据后，触发OS缓存的刷盘阈值。 | 512kB | 32 |
| wal_keep_segments | 在主库为备库保留的最小WAL日志文件数量，防止备库落后过多时所需日志被删除。 | 16 | 1025 |
| xloginsert_locks | 插入WAL记录时的锁分区数，影响WAL插入并发度。 | 8 | 48 |
| bgwriter_delay | 后台写进程两次活跃周期之间的休眠时间。 | 2s | 5s |
| incremental_checkpoint_timeout | 增量检查点的超时时间。 | 1min | 5min |
| walwriter_sleep_threshold | WAL写进程的休眠阈值。 | 500 | 50000 |
| pagewriter_sleep | 页面写进程的休眠时间。 | 2s | 100ms |
| wal_file_init_num | 预先初始化的WAL日志文件数量。 | 10 | 30 |
| pagewriter_thread_num | 页面写进程的线程数。 | 4 | 2 |
| max_redo_log_size | 单个Redo日志文件的最大大小。 | 1GB | 400GB |
| max_io_capacity | 数据库后台I/O的最大吞吐量限制。 | 500MB | 1GB |
| enable_cachedplan_mgr | 是否启用计划缓存管理。 | on | off |
| light_comm | 是否启用轻量级提交优化（特定场景）。 | off | on |
| enable_indexscan_optimization | 是否启用索引扫描优化。 | off | on |
| time_record_level | 时间记录级别，用于内部性能诊断。 | 0 | 1 |
| shared_buffers | 设置数据库服务器使用的共享内存缓冲区的数量，主要用于缓存数据，可以将频繁访问的数据从缓慢的磁盘（微秒/毫秒级）移至高速的内存（纳秒级），从而提升数据库性能。该参数根据需求一般不能设置超过物理机整机内存总量的80%，但至少是20%。 | 1GB | "openGuass数据库场景工具使用30%*服务器内存后向上取整 |
| 以512GB为例，约为157GB" |  |  |  |

表6KAOT工具调优达梦数据库配置参数参考（以128C512G为例）

| 数据库配置参数名称 | 参数含义及应用 | 默认值 | 参考调优值 |
| --- | --- | --- | ---|
| COMMIT_BATCH | 事务提交时合并刷盘的重做日志批次大小（单位为日志块个数）。 | 1 | 32 |
| COMMIT_BATCH_TIMEOUT | 事务提交时等待合并刷盘的最大超时时间（单位：毫秒）。 | 1 | 5 |
| MAX_OS_MEMORY | 数据库可占用的最大操作系统内存百分比。 | 100 | 90 |
| MEMORY_POOL | 共享内存池初始大小（单位：MB）。 | 2000 | 128000 |
| MEMORY_TARGET | 共享内存池扩展后收缩回的目标大小（单位：MB）。 | 41000 | 128000 |
| BUFFER | 系统缓冲区大小（MB）。 | 163000 | 256000 |
| BUFFER_POOLS | 缓冲区池数量。 | 101 | 131 |
| DIRECT_IO | 是否启用直接I/O（绕过操作系统缓存）。 | 0 | 1 |
| IO_THR_GROUPS | I/O线程组数量，控制并发I/O处理能力。 | 32 | 128 |
| WORKER_THREADS | 工作线程数。 | 64 | 128 |
| TASK_THREADS | 任务线程数。 | 32 | 128 |

本页内容
