一、使用限制
·作业自动调优功能只支持 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。