FLINK内存管理解析,taskmanager、jobmanager
1、在 Flink 中设置内存的方法是配置以下两个选项之一:
1)Total Flink memory:taskmanager.memory.flink.size+jobmanager.memory.flink.size
2)Total process memory:taskmanager.memory.process.size+jobmanager.memory.process.size
1、flink内存包含以下部分,Total Process Memory总内存(taskmanager/jobmanager.process.size),等于Total Flink Memory内存(flink管理的内存taskmanager/jobmanager.flink.size)+jvm进程消耗内存(JVM Metaspace+JVM Overhead),即 flink 管理部分 jvm 内存,jvm自身也消耗一部分内存。

以下操作中,flink-conf.xml配置参数如下:
jobmanager.memory.heap.size: 128m
taskmanager.memory.flink.size: 1024m
taskmanager.memory.managed.fraction: 0.2
jobmanager.memory.jvm-overhead.min: 64m
taskmanager.memory.network.fraction: 0.1
2、指定 jobmanager 内存
① 当我们指定jobmanager内存:-yjm(jobmanager.process.size)=512m时,内存的分配流程如下:
JVM Heap:128M,根据配置参数(jobmanager.memory.heap.size)
JVM Metaspace默认值: 256M
Off-Heap Memory默认值:128M
JVM Overhead:0M=512M-128M-256M-128M
解释了报错:JobManager memory configuration failed: Derived JVM Overhead size (0 bytes) is not in configured JVM Overhead range [64.000mb (67108864 bytes), 1024.000mb (1073741824 bytes)]
可以看到报错中说JVM Overhead 内存为0,不在最小值最大值内,因为我们的配置中指定了jobmanager.memory.jvm-overhead.min: 64m,0<64m,肯定失败。
② 当我们指定-yjm(jobmanager.process.size)=1024m时,参考①中可以得出如下图的内存分配:

3、指定 taskmanager 内存
① 下图是指定了:-ytm(taskmanager.process.size)=2048m,taskmanager.memory.flink.size=1024m时的内存占用,即:
ytm=Total Process Memory=Total Flink Memory(taskmanager.memory.flink.size)+JVM Metaspace+JVM Overhead,我们发现这里有一个问题Total Flink Memory=1024m且JVM Metaspace+JVM Overhead=1024m,也就是我们指定taskmanager.process.size参数时,就不要指定taskmanager.memory.flink.size参数,否则会导致JVM Overhead被分配过大的内存造成浪费。

② 当我们不指定taskmanager.memory.flink.size参数时,taskmanager内存分配结果和分配方式:

JVM Metaspace(默认):256m
Jvm Overhead:2048 * 0.1(默认)=205m
Framework Heap(默认):128M
Managed Memory:(2048m-256m(JVM Meataspace)-205m(Jvm Overhead))*0.2=317m
Network:(2048m-256m(JVM Meataspace)-205m)*0.1=159m
Framework Off-Heap(默认):128m
Task Heap:2048-(其他所有:256m+205m+128m+317m+159m+128m)=855m
相关文章:
FLINK内存管理解析,taskmanager、jobmanager
1、在 Flink 中设置内存的方法是配置以下两个选项之一: 1)Total Flink memory:taskmanager.memory.flink.sizejobmanager.memory.flink.size 2)Total process memory:taskmanager.memory.process.sizejobmanager.mem…...
【AI论文精读13】RAG论文综述2(微软亚研院 2409)P5-可解释推理查询L3
AI知识点总结:【AI知识点】 AI论文精读、项目、思考:【AI修炼之路】 P1,P2,P3,P4 五、可解释推理查询(L3) ps:P2有四种查询(L1,L2,L3,…...
优达学城 Generative AI 课程3:Computer Vision and Generative AI
文章目录 1 官方课程内容自述第 1 课:图像生成简介第 2 课:计算机视觉基础第 3 课:图像生成与生成对抗网络(GANs)第 4 课:基于 Transformer 的计算机视觉模型第 5 课:扩散模型第 6 课࿰…...
UE5 C++ 通过绑定编辑器事件实现控制柄顶点编辑
开发中经常会遇到编辑器环境中制作工具拖拽控制柄编辑内容的需求,此时可以通过Editor事件拿到对应回调,进行相应更新: 1.创建Mesh编辑Actor类 创建一个Mesh编辑Actor类,提供Mesh顶点编辑的相关逻辑。 .h: #pragma once#inclu…...
云计算ftp 服务器实验
创建VLAN 10 划分端口 创建VLAN 10 的地址 10.1.1.1 服务器的地址是 10.1.1.2 这是服务上的配置 服务器上选择ftp 启动 ,文件目录选择一下 在 交换机上 ftp 10.1.1.2 服务器的地址 把刚才创建的shenyq txt 文件下载下到本地交换机 我们能看到交换…...
node.js服务器基础
node.js的事件循环 node.js是基于事件驱动的,通常在代码中注册想要等待的事件,设定好回调函数,当事件触发的时候就会调用回调函数。如果node.js没有要处理的事件了,那整个就结束了;事件里面可以继续插入事件,如果有事…...
2-SAT 问题详解:逻辑约束与图论的结合
2-SAT 问题详解:逻辑约束与图论的结合 2-SAT(Two Satisfiability Problem)是布尔可满足性问题(SAT)的特殊形式,它解决的是含有二元子句的布尔表达式的可满足性问题。2-SAT 问题常用于分析系统中的逻辑约束…...
使用NetTopologySuite读写gpkg文件
直接上代码: 优势是什么?纯C#开发,不存在兼容和字符问题。 using NetTopologySuite; using NetTopologySuite.Features; using NetTopologySuite.Geometries; using CdIts.NetTopologySuite.IO; using CdIts.NetTopologySuite.IO.GeoPackag…...
什么是http?列出常见方法并解他们?
HTTP 方法是客户端(通常是浏览器)用来向服务器表明其意图的方式。常见的 HTTP 方法有以下几种: 一、GET 解释:用于请求指定的资源。它是最常见的 HTTP 方法之一。GET 方法应该只用于获取数据,而不应该有任何副作用。例…...
通过修改注册表来提高导出图像的分辨率(PPT尝试)
通过修改注册表来提高 PowerPoint 导出图片的分辨率,可以导致导出的图片尺寸大于您期望的 1920 x 1080 像素。例如,将 ExportBitmapResolution 设置为 300 DPI,可能会导致输出图像的尺寸变得非常大,比如 10240 x 5760 像素。这是因…...
OpenCV 环境配置
首先下载opencv,在opencv官网进行下载。 按照上面的步骤,点击进去 滑至底部,不切换至不同页,选择合适的版本进行下载(Window系统选择Windows版本进行下载)。 接下来以4.1.2版本为例: 点击之后会进入这个页面ÿ…...
使用通义千问模拟ChatGPT-o1进行思考,并以类似于ChatGPT-o1的形式输出
prompt 你是ChatGPT O1,旨在通过第一性原理思维和基于证据的推理来解决用户问题。你的目标是提供清晰、循序渐进的解决方案、基础概念,并从头开始构建答案。 ### 指导原则: 以下是为大模型采用这种方法而设计的系统提示: 1. 理解…...
维生素对于生活的重要性
在探索健康奥秘的旅途中,维生素作为人体不可或缺的微量营养素,扮演着至关重要的角色。它们虽不直接提供能量,却是酶促反应、细胞代谢、免疫功能乃至心理健康的基石。今天,让我们一同深入探讨人体所需补充的维生素,这些…...
STM32学习--4-1 OLED显示屏
接线图 OLED.c #include "stm32f10x.h" #include "OLED_Font.h"/*引脚配置*/ #define OLED_W_SCL(x) GPIO_WriteBit(GPIOB, GPIO_Pin_8, (BitAction)(x)) #define OLED_W_SDA(x) GPIO_WriteBit(GPIOB, GPIO_Pin_9, (BitAction)(x))/*引脚初始化*/ void …...
原生 App 上架 Mac App Store 过程总结
随着 macOS 系统的普及,越来越多的开发者希望将他们的原生应用程序发布到 Mac App Store,以便触达更广泛的用户群体。在这篇文章中,我们将详细总结原生 App 上架 Mac App Store 的整个过程,包括必要的准备工作、开发流程、测试、申…...
[实时计算flink]双流JOIN语句
Flink SQL支持对动态表进行复杂而灵活的连接操作,本文为您介绍如何使用双流JOIN语句。 背景信息 实时计算的JOIN和传统批处理JOIN的语义一致,都用于将两张表关联起来。区别为实时计算关联的是两张动态表,关联的结果也会动态更新,…...
metahuman如何导入UE5
1.启动 通过EPIC启动UE5(UE5内置有Bridge, 但是UE4是需要单独下在Bridge软件) 2.打开Quixel Bridge 在window(窗口)中打开Quixel Bridge 3.Bridge界面 在弹出的Bridge界面选择模型 需要先下载,然后再导入 4.下载模型 点击需要的模型右上方的绿色箭头下载 5.下…...
Python知识点:基于Python技术,如何使用TensorFlow进行自动驾驶模型训练
开篇,先说一个好消息,截止到2025年1月1日前,翻到文末找到我,赠送定制版的开题报告和任务书,先到先得!过期不候! 使用TensorFlow进行自动驾驶模型训练的Python技术详解 自动驾驶技术是人工智能领…...
Django的请求与响应
Django的请求与响应 1、常见的请求2、常见的响应3、案例 1、常见的请求 函数的参数request是一个对象,封装了用户发送过来的所有请求相关数据。 get请求一般用来请求获取数据,get请求也可以传参到后台,但是传递的参数显示在地址栏。 post请求…...
[java]Iterable<Integer> 和Iterator<Integer>的区别和用法
Iterable<Integer> 和 Iterator<Integer> 在 Java 中都是用于处理集合数据的重要接口,但它们的角色和用途有所不同。以下是它们之间的主要区别: 1. 接口角色 Iterable<T>:这是一个接口,它定义了如何获取一个…...
Arctic与ArcticDB对比分析:为何选择下一代数据存储方案
Arctic与ArcticDB对比分析:为何选择下一代数据存储方案 【免费下载链接】arctic High performance datastore for time series and tick data 项目地址: https://gitcode.com/gh_mirrors/ar/arctic 在金融数据分析和时间序列处理领域,高性能数据…...
终极指南:如何为Muzei Live Wallpaper配置GitHub Actions自动化构建与测试
终极指南:如何为Muzei Live Wallpaper配置GitHub Actions自动化构建与测试 【免费下载链接】muzei Muzei Live Wallpaper for Android 项目地址: https://gitcode.com/gh_mirrors/mu/muzei Muzei Live Wallpaper是一款备受欢迎的Android动态壁纸应用…...
LeetCode 111. Minimum Depth of Binary Tree 题解
LeetCode 111. Minimum Depth of Binary Tree 题解 题目描述 给定一个二叉树,找出其最小深度。 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 叶子节点 是指没有子节点的节点。 示例 1: 输入:root [3,9,20,null,null,15,7] 输…...
单片机:从核心原理到智能应用实战
1. 单片机:智能时代的微型大脑 想象一下清晨醒来,窗帘自动拉开,咖啡机开始工作,室内温度始终保持在最舒适的状态——这些看似简单的智能场景背后,都藏着一个不起眼却至关重要的核心部件:单片机。这块比硬币…...
告别手动处理:用快马AI一键生成你的专属批量链接效率工具
最近在整理项目文档时,经常需要处理大量杂乱无章的链接。手动一个个检查、格式化这些链接不仅耗时耗力,还容易出错。于是我开始寻找更高效的解决方案,最终在InsCode(快马)平台上快速实现了一个批量链接处理工具,整个过程比想象中简…...
GLM-5.1 全面支持与 Gemini CLI 集成:HagiCode 的多模型进化之路
GLM-5.1 全面支持与 Gemini CLI 集成:HagiCode 的多模型进化之路 本文介绍了 HagiCode 平台近期的重要更新——智谱 AI GLM-5.1 模型的全面支持,以及 Gemini CLI 作为第十个 Agent CLI 的成功集成。这两项更新进一步强化了平台的多模型能力和多 CLI 生态…...
RAG系统的‘记忆’安全吗?从AgentPoison看知识库污染攻击的隐蔽性与危害
RAG系统安全防线:如何抵御知识库污染攻击的隐蔽威胁 当企业将RAG系统部署在客户服务、医疗诊断或金融分析等关键场景时,很少有人意识到——知识库里那些看似权威的文档,可能正潜伏着精心设计的逻辑陷阱。去年某自动驾驶公司的紧急制动系统突然…...
零基础友好:快马AI为你定制专属visual studio code图文安装与上手教程
作为一名从零开始学习编程的新手,我深刻体会到安装开发环境是很多人遇到的第一个"拦路虎"。最近在InsCode(快马)平台上发现了一个特别适合新手的Visual Studio Code安装教程项目,它完全解决了我的困惑。下面分享我的学习笔记,希望能…...
RTK定位从入门到实践:如何利用千寻服务和Ntrip协议,让你的无人机定位精度达到厘米级?
RTK定位从入门到实践:如何利用千寻服务和Ntrip协议实现厘米级无人机定位 当无人机在农田上方悬停时,1米的定位误差可能导致农药喷洒完全错过目标作物;当测绘无人机进行地形扫描时,几厘米的高度误差可能使整个3D建模数据失效。这就…...
FPGA密码锁设计避坑指南:状态机划分、时序约束与安全逻辑的那些事儿
FPGA密码锁设计避坑指南:状态机划分、时序约束与安全逻辑的那些事儿 在FPGA开发领域,密码锁设计看似简单,实则暗藏玄机。许多工程师在完成基础功能后,往往会在状态机划分、时序约束和安全逻辑等环节踩坑。本文将结合实战经验&…...
