使用示例(通过Skill接入第三方Agent)
工作流程
意图解析 → 场景配置 → 文件生成 → 验证输出
操作步骤
以智能编程助手OpenCode中生成Spark场景的调优模板为例。
- 下载kat-gen功能包,解压后将kat-gen文件夹上传到OpenCode的“skills/”目录下。
- 打开AI对话窗口,输入“./kat-gen”启动KAT调优模板生成助手,选择调优场景。
支持以下调优场景,请输入场景编号或名称: 1. Redis 6. Vastbase 2. Rocksdb 7. Flink 3. MYSQL 8.Hive 4. PostgreSQL 9.KAfka 5. openGauss 10. Spark 11. 其他(自定义场景) 请输入:输入“10”,选择Spark场景。
- 进行基础配置,选择Spark调优的部署方式和启用的参数组。部署方式选择“本机调优”。
Spark 调优的部署方式? 1. 本机调优 Spark和压测在同一台机器上运行 2. 存在远程操作 应用或压测涉及远程节点,需 SSH 连接 3. Type something.
部署方式选择完成后,选择参数组“应用参数(Spark)”。
启用哪些参数组?(可多选) 1. [ ] 应用参数(Spark) Spark 应用级调优参数 2. [ ] System参数 内核/网络/I0/hugepages 等系统级参数 3. [ ] Kunpeng uarch参数 Kunpeng 微架构调优参数(仅支持特定内核版本) 4. [ ] Type something
- 提供应用配置路径等信息。
本机调优,未检测到 Spark 安装。请提供 Spark 配置信息(每行一个,有默认值的已标注供参考): 1. spark_home(Spark 安装路径,如 /opt/spark): 2. master(默认 yarn,直接回车采用默认): 3. database name(TPC-DS 数据库名称): 4. sql_file(TPC-DS SQL 脚本绝对路径):
一次性输入应用配置路径等信息,输入完成后回车。
spark_home:/home/bigdata/spark/ database_name:tpcds_orc_hive_10 sql_file:/home/bigdata/TPC-DS-Kunpeng/spark-queries-tpcds/q1.sql
- 选择压测工具并确认命令。(默认使用内置的压测工具和压测命令,可根据实际场景替换。)
- 审查配置总览,确认后生成模板文件。
配置总览如下:
已收集到所有配置信息,展示结构化配置总览: ===配置总览=== 调优场景:Spark 部署方式:本机调优 SPARK_HOME:/home/bigdata/spark Master:yarn 数据库名:tpcds_orc_hive_10 SQL脚本:/home/bigdata/TPC-DS-Kunpeng/spark-queries-tpcds/q1.sql 压测工具:TPC-DS(内置) 压测命令:/home/bigdata/spark/bin/spark-sql --master yarn --deploy-mode client --database tpcds_orc_hive_10 -f /home/bigdata/TPC-DS-Kunpeng/spark-queries-tpcds/q1.sql 2>&1 提取管道:grep -i 'Time taken' | awk -F 'Time taken: ' '{print $2}' | awk -F 'seconds' '{print $1}' 调优轮次:50 调优方向:越高越好 启用参数组:Spark(44个参数) 执行流程: ┌─ 初始化(执行 1 次)───────────────────────────────────────┐ │ set_up [本机] 获取 Spark 默认参数 │ backup_cmd [本机] 备份 spark-defaults.conf → kat 副本 └──────────────────────────────────────────────────┘ ┌─ 调优循环(×50 轮)───────────────────────────────────────┐ │ round_set_up [本机] 从备份恢复 spark-defaults.conf │ assign_cmd [本机] 逐参数写入 spark-defaults.conf │ execute_after_… [本机] 处理 offHeap 依赖并打印配置 │ run_test[0] [本机] JVM 参数注入到 conf │ run_test[1] [本机] spark-sql 压测 → 提取耗时 │ round_tear_down [本机] (空) └───────────────────────────────────────────────────┘ ┌─ 收尾(执行 1 次)─────────────────────────────────────────┐ │ tear_down [本机] (空) │ recover_cmd [本机] 恢复原始 spark-defaults.conf └───────────────────────────────────────────────────┘选择“确认生成”生成模板文件。确认生成? 1. 确认生成 生成 task 和 param YAML 文件 2. 修改路径/命令 回到步骤 2.2 重新收集路径 3. 修改参数组 回到步骤 2.1 重新选择参数组 4. 完全重新配置 退出本 skill,重新启动 5. Type your own answer
模板文档生成在当前目录的template_Spark_{YYYYMMDD_HHMMSS}/目录下。
YAML 语法和 Shell 语法校验均通过。 —— 调优信息汇总 —— 调优场景: Spark (TPC-DS) 部署方式: 本机调优 应用服务器: 本机 压测服务器: 本机 SPARK_HOME: /home/bigdata/spark Master: yarn 数据库名: tpcds_orc_hive_10 SQL 脚本: /home/bigdata/TPC-DS-Kunpeng/spark-queries-tpcds/q1.sql 调优轮次: 50 调优方向: 越高越好(执行时间) 启用参数组: - Spark 应用参数(44 个参数, enable=True) - System (enable=False) - Kunpeng uarch (enable=False) 生成文件: - /home/.opencode/bin/template_Spark_20260727_194349/task_Spark_System.yaml - /home/.opencode/bin/template_Spark_20260727_194349/param_Spark_System.yaml
快速生成
当AI对话窗口中给定的对话已包含足够信息时,可跳过部分交互步骤。
对话示例 |
交互轮次 |
|---|---|
帮我生成本机Redis调优模板 |
1轮(仅确认) |
生成Redis调优 |
2轮(问部署方式 + 确认) |
帮我生成远程MySQL调优 |
3轮(问Host + 路径 + 确认) |
输出产物
生成的模板文件位于当前目录的template_{App}_{YYYYMMDD_HHMMSS}/目录下。
文件 |
说明 |
|---|---|
task_{App}_System.yaml |
调优任务模板,定义生命周期命令、参数组配置。 |
param_{App}_System.yaml |
参数定义模板,包含所有可调优参数及其范围。 |
生成完成后SKILL会对模板进行自动校验:
- YAML语法校验
- Shell语法校验
父主题: 鲲鹏自动调优KAT