鲲鹏社区首页
中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

Spark自动调优示例

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

应用性能的提示效果可能受服务器硬件配置、其他应用运行等因素影响,请以实际情况为准。

  1. 获取模板文件。

    根据需要运行的应用选择配置模板文件。

    1
    devkit kat template -g -o /opt/template
    

    命令中参数“-g”将进入交互界面配置模板文件需要的基本参数,参数“-o /opt/template”表示生成的模板文件存放目录。

  2. 转换自定义模板文件。

    自定义模板文件中包含任务和应用的全量执行命令,便于用户自定义调整调优任务的整体执行流程。

    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
    

    转换后的自定义模板文件如下:

  3. 配置简易模板文件中的必须参数。

    根据实际情况补充模板文件中的未填写参数,简易模板文件如下:

    示例中任务模板文件的IP地址和主机名未填写表示使用本机,调优轮次为20轮,测试工具选项中选择“23a”作为测试用例,使用的数据库名称为“tpcds_orc_hive_3”,Spark执行文件路径为“/opt/tools/installed/spark-3.1.1-bin-hadoop3.2/bin”,Spark的部署模式为“yarn”;应用参数模板文件全部使用默认值。

  4. 开启自动调优。

    使用已完善的简易模板文件开始自动调优。

    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%左右;并在回显结尾处提供调优结果文件保存目录。

  5. 查看调优结果。

    自动调优后的参数集生成在工具所在目录下,示例中为“/home/template/DevKit-CLI-x.x.x-Linux-Kunpeng/train-20250520-091026”,可根据调优结果选择参数集进行应用参数的调整。

  6. 运用调优结果。
    1
    devkit kat use -i /home/template/DevKit-CLI-x.x.x-Linux-Kunpeng/train-20250520-091026
    

    进入交互界面。

  7. 查看功能手册。

    输入man后按“Enter”查看鲲鹏自动调优工具的全量介绍,或输入man -m后按“Enter”查看手册目录,按需选择查看的内容。

    图2 手册目录
  8. 查看性能测试数据。

    输入show后按“Enter”,查看自动调优的统计数据。

    图3 调优结果

    输入show top 5后按“Enter”,查看性能前五的数据。

    图4 性能前五的数据
  9. 对数据进行复测。

    在使用参数赋值前,为确定调优参数是否稳定,可对性能提升较好的轮次进行多次复测,结果中变异系数“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%,表明使用这一轮次的参数得到的性能数据一致性较高,对应的调优参数较为稳定,可以使用到应用程序或系统中。

  10. 查看全部参数重要性。

    输入show importance后按“Enter”。

    图6 全部参数重要性

    其中“importance(%)”列的比值越高,该参数对于调优的相关性越高。

  11. 使用参数重要性分析推断出的最佳参数进行测试。

    输入ibesttest后按下“Enter”。

    图7 使用最佳参数测试
  12. 继续自动训练。

    输入train -r 5后按“Enter”,可在use界面中继续5轮的自动调优。

    图8 继续自动调优
  13. 将指定轮次参数设置到应用和系统中。

    若对11轮次的调优性能数据认可,输入set 11后按下“Enter”,将自动调优后第十一轮任务的参数设置到应用和系统中。

    赋值成功后的回显如下:

    [2025-05-19 06:55:48 UTC] [KAT] [message] - set params of round 11 success!
  14. 退出应用界面。

    输入exit后按下“Enter”。