当前位置: 首页 > java >正文

记一次flink资源使用优化

一.现状分析

现有任务的资源配置如下,根据ui监控中Garbage Collection可以发现,此任务频繁的发生GC,且老年代GC时间较久
taskmanager资源监控.png

二.整体memory使用分析如下

  1. Framework Heap(框架堆内存)用于Flink框架自身的堆内存(如JobManager和TaskManager的元数据管理、调度器等)。

  2. Task Heap(任务堆内存) 指标值:4.12GB / 76% 使用(3.14GB/4.12GB) 作用: 用于Flink任务执行时的堆内存(如Kafka消费者、Paimon写入算子、状态后端缓存等)。
    当前分析: 使用率接近高风险阈值(>70%),导致频繁Full GC,出现OutOfMemoryError问题

  3. Managed Memory(托管内存) 指标值:3.50GB / 0% 使用(0B/3.50GB) 作用: Flink管理的堆外内存,用于状态后端(如RocksDB的缓存)和批处理操作。
    当前分析:状态后端使用的是FsStateBackend,占用的是Task Heap,此处未被使用

  4. Framework Off-Heap(框架堆外内存) 指标值:128MB / N/A 作用: Flink框架使用的堆外内存(如Netty网络缓冲区元数据)。
    当前分析: 默认配置足够,无需调整。

  5. Task Off-Heap(任务堆外内存) 指标值:0B / N/A 作用: 任务执行时的堆外内存(如自定义算子的Native库)。
    当前分析: 未启用,说明任务未使用堆外状态或自定义算子。无需调整

  6. Network(网络内存) 指标值:896MB / 0.59% 使用(5.28MB/896MB) 作用: 用于任务之间的网络数据传输(如Shuffle、广播等)。
    当前分析: 问题:使用率过低(<1%),存在资源浪费。

  7. JVM Metaspace(元空间) 指标值:256MB / 40.23% 使用(103MB/256MB) 作用: 存储JVM类元数据(如加载的类、方法信息)。
    当前分析: 使用率正常,无需调整。保持默认,除非出现Metaspace OOM。

  8. JVM Overhead(JVM开销内存) 指标值:1.00GB / N/A 作用: 预留的JVM内部开销内存(如线程栈、JNI等)。
    当前分析: 默认配置足够,无需调整。

三.最终优化措施

减少了Managed Memory和Network内存,增大Task Heap内存,效果如下图监控所示,大大减少了GC的数量,留有足够的Task Heap内存保证任务正常运行

flink的taskmanager资源优化后监控.png

http://www.xdnf.cn/news/15985.html

相关文章:

  • 操作系统 —— A / 概述
  • 探索飞算JavaAI:AI赋能Java开发的新范式
  • 内网穿透利器:基于HTTPHTTPS隧道的代理工具深度解析
  • Vue3中watch和watchEffect区别和用法
  • 电商项目_秒杀_架构及核心
  • 借助AI学习开源代码git0.7之七commit-tree
  • OpenCV基本的图像处理
  • 风险识别清单:构建动态化的风险管理体系
  • 网络安全第三次作业
  • 决策树学习笔记
  • K 近邻算法(K-Nearest Neighbors, KNN)详解及案例
  • React 英语单词补全游戏——一个寓教于乐的英语单词记忆游戏
  • 什么是AI思维:它是智能优先与世界模型重构商业逻辑
  • 【黑马SpringCloud微服务开发与实战】(四)微服务02
  • cuda编程笔记(9)--使用 Shared Memory 实现 tiled GEMM
  • 【操作篇】群晖NAS用root权限直接访问系统分区文件
  • 【openbmc6】entity-manager
  • 网络数据分层封装与解封过程的详细说明
  • 安装pytorch(cpu版)
  • 《C++》范围 for 循环,空指针nullptr
  • RSTP协议
  • HOT100——图篇Leetcode207. 课程表
  • Linux C 多线程基本操作
  • 【LuckiBit】macOS/Linux 常用命令大全
  • Mac上安装Claude Code的步骤
  • 完整的 SquareStudio 注册登录功能实现方案:已经烧录到开发板正常使用
  • OpenCV中特征匹配算法GMS(Grid-based Motion Statistics)原理介绍和使用代码示例
  • ZooKeeper学习专栏(三):ACL权限控制与Zab协议核心原理
  • 基于ECharts的电商销售可视化系统(数据预测、WebsSocket实时聊天、ECharts图形化分析、缓存)
  • CMake与catkin_make的find_package()命令使用说明