如何使用 AutoPilot 对作业自动调优|学习笔记

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
简介: 快速学习 如何使用 AutoPilot 对作业自动调优

开发者学堂课程【《实时计算 Flink 版产品入门与实操》:如何使用 AutoPilot 对作业自动调优】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/334/detail/3740


如何使用 AutoPilot 对作业自动调优


目录

● AutoPilot 简介

● AutoPilot 实操演示

● 如何选择 AutoPilot 的策略

● AutoPilot 的使用注意事项

 

一、AutoPilot 简介

AutoPilot 的目标

● 作业调优难,开发、运维的人力成本高

>Flink流作业长时间运行,作业流量随时间不断变化,数据会随着时间不断变化,资源需求也会随着时间不断变化,需要重复的调优

>Flink SQL 大大简化了作业的开发难度,加大了作业调优难度∶由于 SQL 用户对底层具体实现不了解,问题定位难

● 作业资源利用率低,执行的资源成本高

>以高峰期的资源配置长时间运行,导致资源利用率低

● 自动化、自适应的调优,降低 Flink 的使用门槎、降低使用的成本

AutoPilot 的系统架构

图片27.png

AutoPilot 目前支持的功能

● 根据作业的实际负载动态调整作业的并发度,同时对应的调整 TM 的个数

●根据 TM 的内存利用率,动态调整 TM 的资源

● 自动识别作业因为资源问题导致的异常,动态调整 TM 的资源

 

二.AutoPilot 实操演示

如何为作业配置 AutoPilot

● 每个作业独立配置、动态更新

● 模式

>Disabled∶关团 AutoPilot

>Active∶启动作业状态监控,并在必要的时候自动更新作业参数配置

>Monitoring∶启动作业状态监控,在识别到作业异常时,提供配置更新建议,但是需要用户确认,自己手动修改作业配置

●策略

>Cpu-based∶基于 TM 的 cpu 利用率来动态调整并发度,典型的弹性伸缩的策略

>Source-delay-based∶source 的 delay metrics 持续上升时,调大并发度,目前只支持 sls 和 datahub,社区正在推进 metrics 标准化(FLIP-33)

>Slot-utilization-based∶基于 task 的 slot 利用率判断是否需要调小并发度,和 cpu不一样的是,io wait、sleep 也会被计算在内,利用率计算更加准确,依赖 FLIP-27

>Memory-utilization-based∶基于 TM 内存的实际利用率和 GC 的 metrics 判断是否需要调整 TM 的内存大小

>Job-exception-based∶自动识别因为资源异常所产生的作业异常,自动调大 TM 的内存大小

● 冷却时间

>两次 rescale 的最小间隔,用于初始化、预热

●自定义参数

> 个性化控制策略行为,来适配特殊作业的要求

> 对于 IO 操作多的作业,cpu-based 的触发调整的阈值要降低

查看 AutoPilot 的运行状态

● 自动调优->状态

● Monitoring 状态下,可以查看当前是否有新的配置推荐,推荐配置可以直接该改页面直接触发更新

● 可以看到启动的策略,监控到的作业的状态信息

查看 AutoPilot 的历史信息

● 运行事件页面->自动调优

● 可以查看整个作业生命周期内,AutoPilot 对作业做过什么操作,因为什么触发的配置更新

 

三、如何选择 AutoPilot 的策略

如何选择 AutoPilot 的策略

●一般作业使用默认参数∶

cpu-base+memory-utilization-based +job-exception-based

>简单、易懂

● 高优先级、延迟敏感作业,使用 Monitoring 模式,定时 review 检查优化推荐,手动更新

● 对于使用 sls、datahub 的作业,推荐使用 source-delay-based+slot-utilization-based+memory-utilization-

based + job-exception-based  策略

>效果更好,收敛速度更快

 

四、AutoPilot 的使用注意事项

● AutoPilot 修改并发度是通过默认的并发度来实现的,因此作业代码中不能显示设置并发度,否则就无法实现动态调节

● AutoPilot 触发更新后,控制台会自动重启作业,会导致作业短暂停止处理数据,对抖动敏感的作业,推荐使用 Monitor 模式,避免对业务产生影响

● AutoPilot 策略对作业的数据模型有一定假设∶

流量平滑变化、不能有数据倾斜、每个算子的吞吐能力能够随并发度线性拓展,当作业 pattern 严重偏离这几个假设时,可能会存在作业异常,没有触发自动调整,或者算法无法收敛,作业持续重启等异常场景,此时需要关闭 AutoPilot,手动进行作业调优

相关实践学习
基于Hologres轻松玩转一站式实时仓库
本场景介绍如何利用阿里云MaxCompute、实时计算Flink和交互式分析服务Hologres开发离线、实时数据融合分析的数据大屏应用。
Linux入门到精通
本套课程是从入门开始的Linux学习课程,适合初学者阅读。由浅入深案例丰富,通俗易懂。主要涉及基础的系统操作以及工作中常用的各种服务软件的应用、部署和优化。即使是零基础的学员,只要能够坚持把所有章节都学完,也一定会受益匪浅。
相关文章
|
2月前
|
Kubernetes Java 测试技术
ChaosBlade常见问题之在K8s环境下演练cpu满载报错如何解决
ChaosBlade 是一个开源的混沌工程实验工具,旨在通过模拟各种常见的硬件、软件、网络、应用等故障,帮助开发者在测试环境中验证系统的容错和自动恢复能力。以下是关于ChaosBlade的一些常见问题合集:
101 0
|
2月前
|
存储 固态存储 Java
java性能调优——技客时间
java性能调优——技客时间
33 2
|
2月前
|
监控 数据可视化 Java
jvm性能调优实战 - 31从测试到上线_如何分析JVM运行状况及合理优化
jvm性能调优实战 - 31从测试到上线_如何分析JVM运行状况及合理优化
63 1
|
25天前
|
存储 SQL 测试技术
Flink⼤状态作业调优实践指南:状态报错与启停慢篇
本文整理自俞航翔、陈婧敏、黄鹏程老师所撰写的大状态作业调优实践指南。由于内容丰富,本文分享终篇状态报错与启停慢篇.
50376 58
Flink⼤状态作业调优实践指南:状态报错与启停慢篇
|
1天前
|
监控 Java 测试技术
Java性能测试与调优工具使用指南
Java性能测试与调优工具使用指南
|
16天前
|
SQL 关系型数据库 MySQL
实时计算 Flink版产品使用问题之自动调优指的是什么
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
2月前
|
分布式计算 MaxCompute 流计算
maxcomputer作业性能优化的规范有吗
maxcomputer作业性能优化的规范有吗
47 0
|
SQL 运维 分布式计算
Flink 批作业的运行时自适应执行管控
阿里云高级技术专家朱翥(长耕),在 FFA 核心技术专场的分享。本篇内容是关于在过去的一年中,Apache Flink 对运行时的作业执行管控进行的一些改进。
Flink 批作业的运行时自适应执行管控
|
存储 SQL 监控
Java线程池必备知识:核心参数、工作流、监控、调优手段
① 合理使用线程池的好处 ② 线程池的工作流程 ③ 线程池的创建(7个参数) ④ 向线程池提交任务 ⑤ 线程池的五种运行状态 ⑥ 线程池的关闭(shutdown或者shutdownNow方法) java线程池的调优以及监控 Java线程池的常见问题
100242 12
Java线程池必备知识:核心参数、工作流、监控、调优手段
|
缓存 资源调度 Kubernetes