Spark自动调优示例
简要示范全流程使用鲲鹏自动调优,从获取模板到结果应用(以下步骤以Spark应用为例),将Spark应用默认配置下的123.132秒时延提升至52秒左右,性能提升130%+,也可参见学习视频查看实际操作视频。

应用性能的提示效果可能受服务器硬件配置、其他应用运行等因素影响,请以实际情况为准。
- 获取模板文件。
根据需要运行的应用选择配置模板文件。
1
devkit kat template -g -o /opt/template
命令中参数“-g”将进入交互界面配置模板文件需要的基本参数,参数“-o /opt/template”表示生成的模板文件存放目录。
- 转换自定义模板文件。
自定义模板文件中包含任务和应用的全量执行命令,便于用户自定义调整调优任务的整体执行流程。
1
devkit kat template -c /opt/template/template_Spark_20250528_025149/task_Spark.yaml
返回信息:
1
[2025-05-28 02:56:24 UTC] [KAT] [ info ] - /opt/template/template_Spark_20250528_025149/task_Spark.yaml has been converted to /opt/template/template_Spark_20250528_025149/task_Spark_custom.yaml
转换后的自定义模板文件如下:
- 配置简易模板文件中的必须参数。
根据实际情况补充模板文件中的未填写参数,简易模板文件如下:
示例中任务模板文件的IP地址和主机名未填写表示使用本机,调优轮次为20轮,测试工具选项中选择“23a”作为测试用例,使用的数据库名称为“tpcds_orc_hive_3”,Spark执行文件路径为“/opt/tools/installed/spark-3.1.1-bin-hadoop3.2/bin”,Spark的部署模式为“yarn”;应用参数模板文件全部使用默认值。
- 开启自动调优。
使用已完善的简易模板文件开始自动调优。
1 2
devkit kat train -t /opt/template/template_Spark_20250528_025149/task_Spark.yaml -p /opt/template/template_Spark_20250528_025149/param_Spark.yaml -o /home/template/DevKit-CLI-x.x.x-Linux-Kunpeng/
图1 自动调优结果Spark性能指标为时延,基线性能为126秒,使用自动调优20轮后,最优性能数据为53秒,较基线性能提升137%左右;并在回显结尾处提供调优结果文件保存目录。
- 查看调优结果。
自动调优后的参数集生成在工具所在目录下,示例中为“/home/template/DevKit-CLI-x.x.x-Linux-Kunpeng/train-20250520-091026”,可根据调优结果选择参数集进行应用参数的调整。
- 运用调优结果。
1
devkit kat use -i /home/template/DevKit-CLI-x.x.x-Linux-Kunpeng/train-20250520-091026
进入交互界面。
- 查看功能手册。
输入man后按“Enter”查看鲲鹏自动调优工具的全量介绍,或输入man -m后按“Enter”查看手册目录,按需选择查看的内容。
图2 手册目录 - 查看性能测试数据。
输入show后按“Enter”,查看自动调优的统计数据。
图3 调优结果输入show top 5后按“Enter”,查看性能前五的数据。
图4 性能前五的数据 - 对数据进行复测。
在使用参数赋值前,为确定调优参数是否稳定,可对性能提升较好的轮次进行多次复测,结果中变异系数“CV(%)”越小,则表明复测的性能数据一致性越高,对应轮次的调优参数越稳定,可酌情使用到应用中。
合理的测试场景下,变异系数“CV(%)”低于1%认为参数对应优化的效果非常稳定,1%-5%是比较稳定,5%-10%不太稳定可根据实际情况是否接受,若超过10%则认为此轮的参数不稳定,建议优先解决性能数据的稳定性问题(环境或人为因素)。
在一般情况下,通常使用AB轮的方式进行复测,来保证测试结果的稳定性。例如:需要对最高性能轮次(假设轮次号为A)的结果进行复测,可以使用test 0,A 5,对基线轮次和最高性能轮次交替测试5组,共10次。
输入test 11 5后按下“Enter”,对性能第一(自动调优的第11轮)的轮次进行复测5次。
图5 复测数据示例中对指定轮次复测5次后,发现最后的变异系数“CV(%)”仅为3.94%,表明使用这一轮次的参数得到的性能数据一致性较高,对应的调优参数较为稳定,可以使用到应用程序或系统中。
- 查看全部参数重要性。
输入show importance后按“Enter”。
图6 全部参数重要性其中“importance(%)”列的比值越高,该参数对于调优的相关性越高。
- 使用参数重要性分析推断出的最佳参数进行测试。
输入ibesttest后按下“Enter”。
图7 使用最佳参数测试 - 继续自动训练。
输入train -r 5后按“Enter”,可在use界面中继续5轮的自动调优。
图8 继续自动调优 - 将指定轮次参数设置到应用和系统中。
若对11轮次的调优性能数据认可,输入set 11后按下“Enter”,将自动调优后第十一轮任务的参数设置到应用和系统中。
赋值成功后的回显如下:
[2025-05-19 06:55:48 UTC] [KAT] [message] - set params of round 11 success!
- 退出应用界面。
输入exit后按下“Enter”。