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

简介: 快速学习 如何使用 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+Flink搭建GitHub实时数据大屏
通过使用Flink、Hologres构建实时数仓,并通过Hologres对接BI分析工具(以DataV为例),实现海量数据实时分析.
实时计算 Flink 实战课程
如何使用实时计算 Flink 搞定数据处理难题?实时计算 Flink 极客训练营产品、技术专家齐上阵,从开源 Flink功能介绍到实时计算 Flink 优势详解,现场实操,5天即可上手! 欢迎开通实时计算 Flink 版: https://cn.aliyun.com/product/bigdata/sc Flink Forward Asia 介绍: Flink Forward 是由 Apache 官方授权,Apache Flink Community China 支持的会议,通过参会不仅可以了解到 Flink 社区的最新动态和发展计划,还可以了解到国内外一线大厂围绕 Flink 生态的生产实践经验,是 Flink 开发者和使用者不可错过的盛会。 去年经过品牌升级后的 Flink Forward Asia 吸引了超过2000人线下参与,一举成为国内最大的 Apache 顶级项目会议。结合2020年的特殊情况,Flink Forward Asia 2020 将在12月26日以线上峰会的形式与大家见面。
相关文章
|
11月前
|
存储 SQL 运维
中国联通网络资源湖仓一体应用实践
本文分享了中国联通技术专家李晓昱在Flink Forward Asia 2024上的演讲,介绍如何借助Flink+Paimon湖仓一体架构解决传统数仓处理百亿级数据的瓶颈。内容涵盖网络资源中心概况、现有挑战、新架构设计及实施效果。新方案实现了数据一致性100%,同步延迟从3小时降至3分钟,存储成本降低50%,为通信行业提供了高效的数据管理范例。未来将深化流式数仓与智能运维融合,推动数字化升级。
531 0
中国联通网络资源湖仓一体应用实践
|
网络协议 算法 Linux
【Linux】深入探索:Linux网络调试、追踪与优化
【Linux】深入探索:Linux网络调试、追踪与优化
|
12月前
|
负载均衡 JavaScript 前端开发
分片上传技术全解析:原理、优势与应用(含简单实现源码)
分片上传通过将大文件分割成多个小的片段或块,然后并行或顺序地上传这些片段,从而提高上传效率和可靠性,特别适用于大文件的上传场景,尤其是在网络环境不佳时,分片上传能有效提高上传体验。 博客不应该只有代码和解决方案,重点应该在于给出解决方案的同时分享思维模式,只有思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
|
机器学习/深度学习 自然语言处理 算法
LangChain 构建问题之AgentExecutor的定义如何解决
LangChain 构建问题之AgentExecutor的定义如何解决
555 0
|
机器学习/深度学习 数据采集 存储
使用Python实现深度学习模型:智能保险风险评估
使用Python实现深度学习模型:智能保险风险评估
430 13
|
安全 Java C++
CAS自旋锁到底是什么?为什么能实现线程安全?
本文是博主对多线程学习总结记录,希望对大家有所帮助。
1651 0
CAS自旋锁到底是什么?为什么能实现线程安全?
|
云安全 监控 安全
钓鱼特辑(一)真假PPT?现实版“狼人杀”钓鱼
“狼人杀"是当今火爆的策略推理游戏,分为狼人和平民两大阵营,通过夜间行动和白天讨论,各自运用策略和口才来识别和排除对方,以达到胜利条件。 众所周知,紧张万分的攻防演练期间,网络安全的战场就像一场没有硝烟的“狼人杀”。红方拼命“刀”平民,蓝方群起而反之。
|
缓存 监控 Java
Java中的内存泄漏及其排查方法
Java中的内存泄漏及其排查方法
1109 0
|
存储 缓存 算法
ICDE2024 |VDTuner:向量数据库自动调优技术
在CodeFuse接入实际业务的过程中,大模型的推理成本以及生成内容的准确性是产品规模落地的两个核心考量因素。为了降低推理成本,我们研发了CodeFuse-ModelCache语义缓存加速功能,通过引入Cache机制,缓存已经计算的结果,当接收到类似请求后直接提取缓存结果返回给用户。另一方面,为了提升代码生成的准确度,我们引入了few shot机制,在输入大模型之前拼接一些类似的代码片段,帮助大模型更好的理解希望生成的目标代码。上述两个核心功能的实现都依赖于向量数据库(Vector Data Management Systems, VDMS)存储并检索相似的请求或者代码片段。
757 1
|
存储 缓存 分布式计算
Gluten + Celeborn: 让 Native Spark 拥抱 Cloud Native
本篇文章介绍了 Gluten 项目的背景和目标,以及它如何解决基于 Apache Spark 的数据负载场景中的 CPU 计算瓶颈。此外,还详细介绍了 Gluten 与 Celeborn 的集成。Celeborn 采用了 Push Shuffle 的设计,通过远端存储、数据重组、内存缓存、多副本等设计,不仅进一步提升 Gluten Shuffle 的性能和稳定性,还使得 Gluten 拥有更好的弹性,从而更好的拥抱云原生。
3194 4
Gluten + Celeborn: 让 Native Spark 拥抱 Cloud Native

热门文章

最新文章