# Flink作业自动调优
AI DataLake Flink提供自动调优（自动扩缩容）能力，在作业运行期间根据实时指标（吞吐量、背压、CPU 利用率等）自动调整算子并行度，流量高峰时自动扩容、流量低谷时自动缩容，全程不中断作业、无需人工干预。适用于流量波动明显、希望降低资源成本或提升业务稳定性的场景，解决作业资源固定不可变导致的流量高峰资源不足和流量低谷资源浪费问题。
本文介绍如何开启、修改和查看作业自动调优。
#### 注意事项
- 自动调优期间可能短暂出现处理延迟，属于正常现象。
- Flink作业扩缩容时，内置算子（如GroupBy Window、Join等）及Kafka Connector保持运行不重启，其他Connector均会触发作业重启。
- 自动调优基于以下假设工作：流量平滑变化、无数据倾斜、算子吞吐能力随并行度线性扩展。以下问题无法通过扩缩容解决：
  - 代码中配置了固定并行度的算子无法调整。
  
  - 自定义函数（UDF/UDAF/UDTF）的性能瓶颈。
  
  - 外部系统故障（Kafka 分区不足、Sink 性能问题、Sink 数据库死锁等），扩容可能加重外部系统压力导致雪崩。
   
 
#### 作业启动时配置
新建作业携带自动调优策略，作业运行后立即生效。
仅支持通过API方式配置，接口详情请参见[创建FlinkJob作业](https://support.huaweicloud.com/api-aidatalake/RunFlinkJob.html)。
#### 运行时开启或修改
作业运行期间，可动态开启或修改自动调优，系统自动应用新参数，**无需重启作业**。
- **方式一：** 通过API接口开启或修改，接口详情请参见[热更新Flink作业自动调优配置](https://support.huaweicloud.com/api-aidatalake/UpdateFlinkJobAutoscalingPolicy.html)。
- **方式二：** 在AI DataLake控制台开启或修改。操作步骤如下：
  1. 登录[AI DataLake管理控制台](https://console.huaweicloud.com/fabric/)。
  
  2. 在"作业开发 \> 作业运行历史"页面，单击"流处理引擎Flink"。
  
  3. 在Flink作业列表，单击目标作业名称。
  
  4. 在自动调优页签，配置自动调优功能。
     - 自动调优开关：开启后，根据作业的指标等信息，自动增加或者减少作业资源。
     
     - 调优配置：单击右侧的"编辑"，填写参数信息后单击"确定"。
       
       | 配置项        | 说明                    |
       |:---|:---|
       | 最大CPU限制（m）   | 作业自动调整资源可以扩容的最大CPU上限。 |
       | 最大内存限制（MiB） | 作业自动调整资源可以扩容的最大内存上限。  |
       | 算子最大并行度   | 作业自动调整资源可以设置的算子最大并行度。 |
          
       
     
     - 参数配置：单击右侧的"编辑"，配置自定义参数后单击"确定"。配置参数详情请参见[Autoscaler Configuration](https://nightlies.apache.org/flink/flink-kubernetes-operator-docs-release-1.13/docs/operations/configuration/#autoscaler-configuration)。
      
   
 
#### 关闭自动调优
- **方式一：**通过API接口关闭，接口详情请参见。
- **方式二：** 在AI DataLake控制台关闭。操作步骤如下：
  如需在运行时关闭自动调优：
  1. 登录[AI DataLake管理控制台](https://console.huaweicloud.com/fabric/)。
  
  2. 在"作业开发 \> 作业运行历史"页面，单击"流处理引擎Flink"。
  
  3. 在Flink作业列表，单击目标作业名称。
  
  4. 在自动调优页签，关闭自动调优功能。
    
 
#### 查看作业自动调优历史
无论通过哪种场景开启自动调优，均可查看调优历史，了解系统在什么时间做了哪些调优处理。
- **方式一：** 通过API接口查看，接口详情请参见[查询Flink作业自动调优配置](https://support.huaweicloud.com/api-aidatalake/ShowFlinkJobAutoscalingPolicy.html)。
- **方式二：** 在AI DataLake控制台查看。
  1. 登录[AI DataLake管理控制台](https://console.huaweicloud.com/fabric/)。
  
  2. 在"作业开发 \> 作业运行历史"页面，单击"流处理引擎Flink"。
  
  3. 在Flink作业列表，单击目标作业名称。
  
  4. 在自动调优页签，调优记录里查看相关调优历史。
   
 
