tencent cloud

流计算 Oceanus

动态与公告
产品动态
产品简介
产品概述
产品优势
应用场景
购买指南
计费概述
计费模式
退费说明
调整配置费用说明
快速入门
从零开始上手
创建独享集群
创建 SQL 作业
创建 JAR 作业
创建 ETL 作业
创建 Python 作业
操作指南
作业管理
作业开发
作业监控
作业日志
事件与诊断
元数据管理
快照管理
作业调优
依赖管理
集群管理
权限管理
SQL 开发指南
开发指南概述
术语和数据类型
DDL 数据定义语句
DML 数据操作语句
MySQL CDC 多 Source 复用
上下游开发指南
SET 控制语句
运算符和内置函数
标识符与保留字
Python 开发指南
ETL 开发指南
概述
ETL 作业术语表
上下游开发指南
常见问题
联系我们

作业自动调优

PDF
聚焦模式
字号
最后更新时间: 2023-11-07 15:50:49

背景信息

用户通常需要花费大量的时间对作业进行调优。例如新上线一个作业时,需要考虑如何配置该作业的并行度、TaskManager 个数、TaskManager CU 数等。此外,作业运行过程中,还需要考虑如何调整作业资源配置,提升作业的资源利用率;而作业出现反压或延时增大的情况时,需要考虑增大作业资源配置等。 Oceanus 提供的自动调优功能,可以帮助用户更合理地调整作业并行度和资源配置,全局优化您的作业,解决作业吞吐量不足、作业繁忙以及资源浪费等各种性能调优问题。

使用限制

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

注意事项

自动调优功能为目前处于公开测试阶段(Beta 版本),暂不建议对重要的生产任务开启自动扩缩容。
自动调优触发后需要重启作业,因此会导致作业短暂停止处理数据。大状态的作业由于启停过程耗时较长,可能导致长时间停流,不建议开启自动扩缩。
连续两次自动调优触发间隔默认为10分钟。
如果用户为 Jar 类型的作业开启了自动调优,请确认作业代码中未配置作业并行度,否则自动扩缩容将无法调整作业资源,即自动调优配置无法生效。
由于集群资源限制,当前作业自动调优过程为串行执行,因此不要为集群中所有作业开启自动调优,否则会相互影响。

默认调优规则

开启自动调优后,Oceanus 会自动调整作业并行度和 TaskManager CU 数这两个配置,对作业进行优化。
1. 自动调优会调整作业并行度来满足作业流量变化所需要的吞吐。自动调优会监控TaskManager CPU 使用率和各个算子处理数据能力来调整作业的并发度。详情如下:
作业所有 TaskManager 的 CPU 使用率连续 10 分钟超过 80%,将作业默认并行度调高为原来的一倍,但作业运行 CU 数不超过设置最大的资源(默认为 64 CU)。
作业任意一个 Vertex 节点连续 10 分钟处理数据时间占比超过 80%,将作业默认并行度调高为原来的一倍,但作业运行 CU 数不超过设置最大的资源(默认为 64 CU)。
作业所有 TaskManager 的 CPU 使用率连续 4 小时低于 20%,并且所有 Vertex 节点 4 小时内处理数据时间占比均低于 20% 时,将作业默认并行度调低为原来的一半,最小降低到 1。
2. 自动调优也会监控作业的 TaskManager 内存使用情况来调整作业的内存配置。详情如下:
作业所有 TaskManager 的堆内存使用率连续 1 小时超过 80%,将 TaskManager CU 数调高为原来的一倍。
作业所有 TaskManager 的堆内存使用率连续 4 小时低于 30% 时,将 TaskManager CU 数调低为原来的一半。
注意
作业并行度最小降低到 1。TaskManager CU 数根据集群是否开启细粒度资源可以有不同的配置,开启细粒度资源则 CU 数可以为 0.25, 0.5, 1, 2 否则 CU 数只能为 1。

帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈