博客
关于我
如何使用 AutoPilot 对作业自动调优?
阅读量:132 次
发布时间:2019-02-26

本文共 1360 字,大约阅读时间需要 4 分钟。

AutoPilot引导:Flink作业自动调优实践指南

作为阿里巴巴高级技术专家,吕文龙(龙三)带我们深入探讨如何利用AutoPilot实现Flink作业的自动调优,解决开发和运维中的关键难题。


AutoPilot简介

解决的难题

  • 资源调优难,开发和运维成本高

    Flink作业长时间运行,资源需求动态变化,传统调优方式耗时且成本高。Flink SQL的简化开发使得调优难度上升,尤其是对于底层实现不透露的用户。

  • 资源利用率低,执行成本高

    未动态优化的作业通常以峰值资源配置运行,导致非高峰时期资源浪费,增加运行成本。

  • AutoPilot旨在通过自动化、自适应的资源调优,降低Flink使用门槛并减少成本。

    系统架构

    AutoPilot属于Flink管控服务,主要包含异常检测和解决两个模块:

    • 异常检测:通过实时订阅Flink事件信息,识别资源异常。
    • 异常解决:动态更新作业资源配置,触发作业重启。

    目前支持三大功能:

  • 根据负载动态调整并发度和TM数量。
  • 根据TM内存利用率调整资源。
  • 识别资源异常并调优。

  • AutoPilot实操演示

    配置说明

    AutoPilot支持对单个作业独立配置,动态更新无需中断运行。

    模式选择

    • Disabled:无监控和调优。
    • Active:启动监控,必要时自动调优。
    • Monitoring:启动监控,需手动确认调优建议。

    策略选择

    AutoPilot提供五种策略:

  • Cpu-based:基于CPU利用率调整并发度。
  • Source-delay-based:基于source延迟调整,并支持多源。
  • Slot-utilization-based:基于slot利用率,需等待FLIP-27完成后使用。
  • Memory-utilization-based:基于TM内存利用率调整。
  • Job-exception-based:识别资源异常并调优。
  • 冷却时间设置

    Active或Monitoring模式需设置冷却时间(两次rescale间隔),避免重启影响判断。

    自定义参数

    可根据作业需求调整策略阈值和行为,适配特殊场景。


    实操步骤

  • 进入作业详情页面,切换到AutoPilot tab。
  • 将模式从Disabled切换为Active或Monitoring。
  • 选择策略和冷却时间,填写自定义参数。
  • 保存配置后,AutoPilot即开启监控和调优。

  • 如何选择策略

    一般场景

    推荐默认参数(Cpu-based + Memory-utilization-based + Job-exception-based),简单易用。

    高优先级作业

    推荐Monitoring模式,定期手动Review,避免频繁重启影响业务。

    特定源场景

    推荐结合Source-delay-based和Slot-utilization-based策略,提升调优效果。


    使用注意事项

  • AutoPilot通过默认并发度调整,需确保代码无固有并发度设置。
  • Monitor模式下,作业重启可能影响业务,需谨慎使用。
  • AutoPilot假设作业流量平滑且吞吐能力线性扩展,严重偏离可能导致异常。

  • 总结

    AutoPilot通过智能化资源调优,显著提升Flink作业性能和稳定性。合理配置策略和模式,结合业务需求,最大化AutoPilot价值,同时避免潜在风险。

    转载地址:http://aazy.baihongyu.com/

    你可能感兴趣的文章
    mysql锁机制,主从复制
    查看>>
    Mysql锁机制,行锁表锁
    查看>>
    MySQL锁表问题排查
    查看>>
    Mysql锁(1):锁概述和全局锁的介绍
    查看>>
    Mysql锁(2):表级锁
    查看>>
    MySQL锁,锁的到底是什么?
    查看>>
    MySQL错误-this is incompatible with sql_mode=only_full_group_by完美解决方案
    查看>>
    Mysql错误2003 -Can't connect toMySQL server on 'localhost'(10061)解决办法
    查看>>
    MySQL错误提示mysql Statement violates GTID consistency
    查看>>
    mysql错误:This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its de
    查看>>
    mysql长事务
    查看>>
    mysql问题记录
    查看>>
    mysql间隙锁
    查看>>
    MySQL集群解决方案(1):MySQL数据库的集群方案
    查看>>
    MySQL集群解决方案(2):主从复制架构
    查看>>
    MySQL集群解决方案(3):MyCat中间件
    查看>>
    MySQL集群解决方案(4):负载均衡
    查看>>
    MySQL集群解决方案(5):PXC集群
    查看>>