带你读《企业级云原生白皮书项目实战》——5.3.3 任务性能(2)

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
简介: 带你读《企业级云原生白皮书项目实战》——5.3.3 任务性能(2)

《企业级云原生白皮书项目实战》——第五章 大数据——5.3 实时计算Flink版——5.3.3 任务性能(1) https://developer.aliyun.com/article/1228340?groupCode=supportservice


5.3.1.3.1.2 任务反压影响及定位

一般任务的反压并不会直接影响实时任务,但是任务中反压的节点是处于一个高负载情况,会造成任务的延迟越来越大,如果是持续性的反压,意味着任务本身存在瓶颈,可能导致潜在的不稳定或者数据延迟,尤其是数据量较大的场景下,反压的影响主要体现在Flink中checkpoint生成上,主要影响两个方面:

•任务出现反压,上游数据流阻塞,会使数据管道中数据处理速度变慢,数据处理被阻塞也会导致 checkpoint barrier 流经整个数据管道的时长变长,因而 checkpoint 总体时间(End to End Duration)变长甚至是checkpoint失败。

•因为为保证 EOS(Exactly-Once-Semantics,准确一次),在对齐checkpoint场景中,算子接收多个管道输入,输入较快的管道数据state会被缓存起来,等待输入较慢的管道数据barrier对齐,这样由于输入较快管道数据没被处理,反压一直存在,较快的数据进入后一直积压可能导致OOM或者内存资源耗尽的不稳定问题。

这个影响对于数据量大的生产环境的作业来说是十分危险的,因为 checkpoint 是保证数据一致性的关键,checkpoint 时间变长有可能导致 checkpoint 超时失败,

而 state 大小同样可能拖慢 checkpoint 甚至导致 OOM 从而导致实时任务异常,而且不能能失败的checkpoint进行快速恢复。

定位造成实时任务反压问题的节点,主要有两种途径。

•通过Flink VVP 控制台的监控面板(如上一小节任务反压的现象中的截图)这种方式比较简单,可以通过控制台UI直接查看任务反压异常的节点,方便快速排查,如上一小节任务反压的现象中的反压截图

•Flink Task Metrics (Task Metrics 级别的监控)这种方式是通过task的监控指标来进行定位反压,提供了更加丰富的信息,比较复杂,适合用于监控系统,对应的指标可以参照官网的说明。

分析定位造成反压的原因,定位到反压节点后,分析造成原因的办法要结合出现反压时候实际现场情况来进行分析,主要的情况主要包含有如下的情况,包含数据倾斜,资源不足数据突增,代码性能问题,节点TM的GC问题,下游的数据源性能问题。

数据倾斜:通过 Web UI 各个 SubTask 的 Records Sent 和 Records Received 来确认,另外,还可以通过 Checkpoint detail 里不同的 SubTask 的 State Size 来判断是否数据倾斜。

代码问题:最有用的办法就是对 TaskManager 进行 CPU profifile,从中我们可以分析到 Task Thread 是否跑满一个 CPU 核:如果是的话要分析 CPU 主要花费在哪些函数里面,比如我们生产环境中就偶尔遇到卡在 Regex 的用户函数(ReDoS);如果不是的话要看 Task Thread 阻塞在哪里,可能是用户函数本身有些同步的调用,可能是 checkpoint 或者 GC 等系统活动导致的暂时系统暂停。目前flflink版本提供了火焰图的来分析CPU的性能瓶颈。

image.png


GC 问题分析:包括 TaskManager JVM 各区内存不合理导致的频繁 Full GC 甚至失联。推荐可以通过给TaskManager 启用 G1 垃圾回收器来优化 GC,并加上 -XX-:+PrintGCDetails 来打印 GC 日志的方式来观察 GC 的问题。通过 GC 日志,分析出单个 Flink TaskManager 堆总大小、年轻代、老年代分配的内存空间,Full GC 后老年代剩余大小等。

image.png


数据突增资源不足:这种情况下场景一般是任务运行正常一段时间后,上游数据量出现增大的情况,导致消耗节点大量的CPU或者内存(特别是join节点)从而形成了反压,这种情况可以通过手动调大节点资源或者是使用自动调优

image.png


下游的数据源性能:在发现Sink 端写入性能较差,sink的上游节点出现反压情况,需要结合sink的数据端性能情况是否存在问题需要提升。


《企业级云原生白皮书项目实战》——第五章 大数据——5.3 实时计算Flink版——5.3.3 任务性能(3):https://developer.aliyun.com/article/1228337

相关实践学习
基于Hologres轻松玩转一站式实时仓库
本场景介绍如何利用阿里云MaxCompute、实时计算Flink和交互式分析服务Hologres开发离线、实时数据融合分析的数据大屏应用。
Linux入门到精通
本套课程是从入门开始的Linux学习课程,适合初学者阅读。由浅入深案例丰富,通俗易懂。主要涉及基础的系统操作以及工作中常用的各种服务软件的应用、部署和优化。即使是零基础的学员,只要能够坚持把所有章节都学完,也一定会受益匪浅。
相关文章
|
2月前
|
存储 消息中间件 OLAP
Hologres+Flink企业级实时数仓核心能力介绍-2024实时数仓Hologres线上公开课03
本次分享由阿里云产品经理骆撷冬(观秋)主讲,主题为“Hologres+Flink企业级实时数仓核心能力”,是2024实时数仓Hologres线上公开课的第三期。课程详细介绍了Hologres与Flink结合搭建的企业级实时数仓的核心能力,包括解决实时数仓分层问题、基于Flink Catalog的Streaming Warehouse实践,并通过典型客户案例展示了其应用效果。
70 10
Hologres+Flink企业级实时数仓核心能力介绍-2024实时数仓Hologres线上公开课03
|
7月前
|
Cloud Native 安全 大数据
云原生与大数据
【8月更文挑战第27天】云原生与大数据
101 5
|
2月前
|
编解码 弹性计算 大数据
软硬结合助力倚天云原生算力再进化,加速大数据、视频转码上云步伐
本文介绍了云原生算力的进化,重点讨论了倚天710 CPU在大数据和视频转码场景中的应用与优势。倚天710采用ARM架构,通过物理核设计和CIPU加速卡优化,显著提升了高负载下的性能稳定性,并在实际应用中帮助客户实现了20%-40%的性能提升和成本降低。此外,文章还探讨了操作系统、编译器等底层软件的优化,以及如何通过龙蜥社区和阿里云平台支持更多应用场景,助力企业实现高效迁移和性能优化。
|
4月前
|
存储 Cloud Native 块存储
EBS深度解析:云原生时代企业级块存储
企业上云的策略,从 Cloud-Hosting 转向 Serverless 架构。块存储作为企业应用上云的核心存储产品,将通过 Serverless 化来加速新的计算范式全面落地。在本话题中,我们将会介绍阿里云块存储企业级能力的创新,深入解析背后的技术细节,分享对未来趋势的判断。
316 2
|
5月前
|
Kubernetes Cloud Native 流计算
Flink-12 Flink Java 3分钟上手 Kubernetes云原生下的Flink集群 Rancher Stateful Set yaml详细 扩容缩容部署 Docker容器编排
Flink-12 Flink Java 3分钟上手 Kubernetes云原生下的Flink集群 Rancher Stateful Set yaml详细 扩容缩容部署 Docker容器编排
149 3
|
8月前
|
数据采集 运维 Cloud Native
Flink+Paimon在阿里云大数据云原生运维数仓的实践
构建实时云原生运维数仓以提升大数据集群的运维能力,采用 Flink+Paimon 方案,解决资源审计、拓扑及趋势分析需求。
18571 54
Flink+Paimon在阿里云大数据云原生运维数仓的实践
|
5月前
|
存储 运维 监控
实时计算Flink版在稳定性、性能、开发运维、安全能力等等跟其他引擎及自建Flink集群比较。
实时计算Flink版在稳定性、性能、开发运维和安全能力等方面表现出色。其自研的高性能状态存储引擎GeminiStateBackend显著提升了作业稳定性,状态管理优化使性能提升40%以上。核心性能较开源Flink提升2-3倍,资源利用率提高100%。提供一站式开发管理、自动化运维和丰富的监控告警功能,支持多语言开发和智能调优。安全方面,具备访问控制、高可用保障和全链路容错能力,确保企业级应用的安全与稳定。
84 0
|
7月前
|
Cloud Native 安全 调度
Flink 新一代流计算和容错问题之Flink 通过云原生技术改进容错设计要如何操作
Flink 新一代流计算和容错问题之Flink 通过云原生技术改进容错设计要如何操作
|
7月前
|
运维 Cloud Native 数据库
Flink 新一代流计算和容错问题之将 Flink 的容错与云原生的弹性扩缩容相结合要怎么操作
Flink 新一代流计算和容错问题之将 Flink 的容错与云原生的弹性扩缩容相结合要怎么操作
|
9月前
|
存储 SQL 消息中间件
Hologres+Flink企业级实时数仓核心能力介绍
通过Hologres+Flink构建易用、统一的企业级实时数仓。

热门文章

最新文章