
# Flink性能调优规则
#### 及时对Hudi表进行compaction防止Hudi Source算子Checkpoint完成时间过长
当Hudi Source算子Checkpoint完成时间长时，可检查该Hudi表compaction是否正常。因为当长时间不做compaction时list性能会变差。
#### 在事实表与维度表关联场景中可以按表设置TTL降低状态后端数据量
具体使用指导参考[通过表级TTL进行状态后端优化](https://support.huaweicloud.com/devg-rule-mrs/mrs_07_450173.html#mrs_07_450173__section64477164541)。
#### 合理设置并行度
任务运行的速度和并行度相关，一般来说提升并行度能有效提升读取的速度，但是过大的并行度可能导致部分节点资源的浪费，过小的并行度可能导致部分节点运行缓慢。对于SQL当前不能手动指定每个Task的并行度，指定的是所有Task统一的并行度。
推荐Source的并行度由上游组件推断设置，对于流系统，与上游的分区数相同（例如Kafka的Topic分区数）；对于批系统，与上游的切片数相同（例如HDFS的block数量）。
Flink作业中有Source、Sink、中间计算算子的并行度可以调整。通过分析作业流图，如果发现是中间计算Busy就需要通过调整整个作业并行度来调整这类算子的并行度，常见的如join算子。
![](https://support.huaweicloud.com/devg-rule-mrs/zh-cn_image_0000001840183210.png)
