如何使用 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学习课程,适合初学者阅读。由浅入深案例丰富,通俗易懂。主要涉及基础的系统操作以及工作中常用的各种服务软件的应用、部署和优化。即使是零基础的学员,只要能够坚持把所有章节都学完,也一定会受益匪浅。
目录
打赏
0
0
0
0
42
分享
相关文章
【k8s系列5】KubernetesClientException: too old resource version 原因分析
【k8s系列5】KubernetesClientException: too old resource version 原因分析
1746 0
探索软件测试的前沿技术:AI与自动化的融合
在数字化时代的浪潮中,软件测试领域正经历着前所未有的变革。本文深入探讨了人工智能(AI)和自动化技术如何重塑软件测试的未来。通过分析最新的行业报告、案例研究和专家访谈,我们揭示了这些技术如何提升测试效率、准确性和灵活性。文章还讨论了实施这些技术的可能挑战和解决方案,为读者提供了宝贵的行业见解和实用建议。
374 33
CAS自旋锁到底是什么?为什么能实现线程安全?
本文是博主对多线程学习总结记录,希望对大家有所帮助。
1369 0
CAS自旋锁到底是什么?为什么能实现线程安全?
大白话说明白K8S的PV / PVC / StorageClass(理论+实践)
本文主要通过大白话说明白PV、PVC的概念和原理,再说说StorageClass的作用,最后通过实践加深理解。
大白话说明白K8S的PV / PVC / StorageClass(理论+实践)
Flink 状态清除的演进之路
对于流计算程序来说,肯定会用到状态(state),假如状态不自动清除,并且随着作业运行的时间越来越久,就会累积越多越多的状态,就会影响任务的性能,为了有效的控制状态的大小,Flink从1.6.0开始引入了状态的生存时间(TTL)功能,这样就可以实现自动清理状态,控制状态的大小.本文主要介绍一下Flink从1.6.0开始到1.9.1的状态清理不断的演进之路. Flink1.6.0状态清除 Apache Flink 的 1.6.0 版本引入了状态生存时间特性。它使流处理应用程序的开发人员能够配置算子的状态,使其在定义的生存时间超时后被清除。
《李斌的笔记》SAP 全部文章目录、快速导航、持续更新
我把自己的全部文章都整理成目录,放在这篇文章中以实现快速导航,这样更方便阅读,本章内容持续更新。
447 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问