作业自定义调优

最近更新时间:2025-11-17 14:15:12

我的收藏

背景信息

许多用户的作业流量可能存在潮汐的特征,例如直播场景在夜间流量高,白天流量低。如果按夜间的峰值处理能力来配置资源,可能导致资源浪费;而按白天的处理能力来配置资源,有可能导致夜间处理能力不足。 Oceanus 提供的作业自定义调优功能,可以帮助用户更合理地调整作业并行度和资源配置。

使用限制

作业自动调优功能只支持 SQL 和 JAR 作业。
自定义调优无法解决流作业本身的性能瓶颈。
因为调优策略对作业的处理模式是基于一定的假设的。例如,流量平滑变化、不能有数据倾斜、每个算子的吞吐能力能够随并发度的升高而线性扩展。当业务逻辑严重偏离以上假设时,作业可能会存在异常。如果作业本身存在问题,您需要进行手动调优。常见的作业异常如下:
无法修改作业并发度。
作业不能达到正常状态、作业持续重启。
自定义函数 UDF 性能问题。
数据严重倾斜。
自定义调优无法解决外部系统导致的问题。 外部系统故障或访问变慢时,会导致作业并行度增大,加重外部系统的压力,导致外部系统雪崩。如果出现外部系统问题,您需要自行解决。常见的外部系统问题如下:
源头消息队列分区数不足或吞吐量不足。
下游 Sink 性能问题。
下游数据库死锁。

操作步骤

1. 登录 流计算 Oceanus 控制台,在作业管理中,切换到调优页面,点击定时调优



2. 可以单击新增定时计划创建指定时间触发的调优计划。



2.1 填写计划名称
2.2 当前触发周期可以选择单次、每日、每周、每月。
2.3 可配置 JobManager 与 TaskManager 的规格,以及作业的并行度。此处应填写绝对值,而非调整量。
2.4 可以点击增加调优配置时段新增定时调优时段。
2.5 需要保证每个调优时段间隔小于30分钟。



3. 点击创建就可以创建定时计划。



4. 点击想要启动的定时计划,并且在弹窗中点击应用即可启动指定计划的定时调优。




注意事项

自定义调优功能目前处于公开测试阶段(Beta 版本),暂不建议对重要的生产任务开启自定义调优。
自定义调优的开始和结束行为需要一一对应,建议开始调优后,等调优周期结束再调整调优规则。
自定义调优触发后需要重启作业,因此会导致作业短暂停止处理数据。大状态的作业由于启停过程耗时较长,可能导致长时间停流,不建议开启自动扩缩。
自定义调优的开始和结束时间间隔最少为30分钟。
如果用户为 JAR 类型的作业开启了自动调优,请确认作业代码中未配置作业并行度,否则自动扩缩容将无法调整作业资源,即自动调优配置无法生效。如果作业代码中配置作业并行度想让调优生效,可在作业参数 > 高级参数中设置参数忽略代码中配置作业并行度,以作业参数中并行度为准。
execution.parallelism.disabled: true
由于集群资源限制,当前作业自定义调优过程串行执行,因此不要为集群中所有作业开启自定义调优,否则会相互影响。
注意:
作业并行度最小降低到 1。TaskManager CU 数根据集群是否开启细粒度资源可以有不同的配置,开启细粒度资源则 CU 数可以为 0.25,0.5,1,2 否则 CU 数只能为 1。