【Flink精讲】Flink性能调优:内存调优

内存调优

内存模型

JVM 特定内存

JVM 本身使用的内存,包含 JVM 的 metaspace 和 over-head
1) JVM metaspace: JVM 元空间
taskmanager.memory.jvm-metaspace.size,默认 256mb
2) JVM over-head 执行开销: JVM 执行时自身所需要的内容,包括线程堆栈、 IO、编译
缓存等所使用的内存。

  • taskmanager.memory.jvm-overhead.fraction,默认 0.1
  • taskmanager.memory.jvm-overhead.min,默认 192mb
  • taskmanager.memory.jvm-overhead.max,默认 1gb

总进程内存*fraction,如果小于配置的 min(或大于配置的 max) 大小,则使用 min/max
大小

框架内存

Flink 框架,即 TaskManager 本身所占用的内存, 不计入 Slot 的资源中。
堆内: taskmanager.memory.framework.heap.size, 默认 128MB
堆外: taskmanager.memory.framework.off-heap.size,默认 128MB

Task 内存

Task 执行用户代码时所使用的内存
堆内: taskmanager.memory.task.heap.size,默认 none,由 Flink 内存扣除掉其他部分
的内存得到。
堆外: taskmanager.memory.task.off-heap.size,默认 0,表示不使用堆外内存

网络内存

网络数据交换所使用的堆外内存大小,如网络数据交换缓冲区
堆外: taskmanager.memory.network.fraction,默认 0.1
taskmanager.memory.network.min,默认 64mb
taskmanager.memory.network.max,默认 1gb
Flink 内存*fraction,如果小于配置的 min(或大于配置的 max) 大小,则使用 min/max
大小

托管内存

用于 RocksDB State Backend 的本地内存和批的排序、哈希表、缓存中间结果。
堆外: taskmanager.memory.managed.fraction,默认 0.4
taskmanager.memory.managed.size,默认 none
如果 size 没指定,则等于 Flink 内存*fraction

内存划分

  • 进程内存:蓝框
  • flink内存:红框
  • 两者差别:JVM内存
  • 网络内存:(进程内存 - JVM内存) * 0.1(taskmanager.memory.network.fraction,默认0.1)
  • 托管内存:用于RocksDB State Backend的本地内存和批的排序、哈希表、缓存中间结果

举个例子

TaskManager日志中可以查看JVM参数指定的内存大小

Managed Memory管理内存:KV类型的状态来用的,给RocksDB用的,而如果状态后端不是RocksDB的,则可以把这块内存调小。

以上是TaskManger内存,JobManager内存一般不用管(不处理数据也不保存数据),使用默认参数即可,不够再加。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/705828.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【web】云导航项目部署及环境搭建(复杂)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、项目介绍1.1项目环境架构LNMP1.2项目代码说明 二、项目环境搭建2.1 Nginx安装2.2 php安装2.3 nginx配置和php配置2.3.1 修改nginx文件2.3.2 修改vim /etc/p…

LeetCode--134

134. 加油站 在一条环路上有 n 个加油站,其中第 i 个加油站有汽油 gas[i] 升。 你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发,开始时油箱为空。 给定两个整数数组 …

Camera metadata设计与应用

前言 Android的Camera Metadata是一种数据结构,用于表示图像特征的参数,例如常见的曝光、AE、AWB、flash等参数。在新的Camera API2 / HAL3架构中,这种结构被用来在app-hal之间IPC传输,取代了原先的SetParameter()/GetParameter(…

【蓝桥杯单片机入门记录】动态数码管

目录 一、数码管动态显示概述 二、动态数码管原理图 (1)原理图 (2)动态数码管如何与芯片相连 (3)“此器件” ——>锁存器74HC573 三、动态数码管显示例程 (1)例程1&#xf…

独立站谷歌SEO外包与自建SEO团队:哪个更适合您的业务?

随着数字营销的崛起,搜索引擎优化(SEO)已成为企业提升在线可见度、吸引潜在客户的关键手段。面对独立站谷歌SEO外包服务和自建SEO团队两种选择,企业往往会感到困惑。本文将深入探讨这两种方式的优势与局限,帮助您做出明…

CentOS 7.9上编译wireshark 3.6

工作环境是Centos 7.9,原本是通过flathub安装的wireshark,但是在gnome的application installer上升级到wireshark 4.2.3之后就运行不起来了,flatpak run org.wireshark.Wireshark启动提示缺少qt6,查了一下wireshark新版是依赖qt6的…

<HarmonyOS第一课>运行Hello World

本课程是基于HarmonyOS 3.1/4.0版本的新技术和特性所推出的系列化课程,每个课程单元里面都包含视频、Codelab、文章和习题,帮助您快速掌握HarmonyOS的应用开发; 通过本章节的学习,您可以安装DevEco Studio开发工具,运行…

docker-集成测试搭建

dockerd守护进程 Dockerd(Docker Daemon)是 Docker 引擎的守护进程,是运行在后台的一个持续运行的进程,负责管理 Docker 容器、镜像、网络和存储等核心功能。它是 Docker 容器的守护进程,负责接收 Docker API 请求并管…

java面试:Seata 分布式事务

文章目录 引言I Seata 分布式事务1.1 Seata的整体架构1.2 使用 Seata 进行分布式事务管理的步骤1.3 配置Seata Server1.4 Seata分布式模式1.5 高可用II XA模式III TA模式3.1 TA的写隔离3.2 AT模式的优缺点3.3 实现AT模式IV TCC模式 (Try-Confirm-Cancel)补偿事务4.1 空回滚和拒…

Java应用通过jmx_exporter对外暴露jvm指标

示范代码 public class App {public static void main( String[] args ) throws InterruptedException {while(true){Thread.sleep(10000);System.out.println( "Hello World!" );}} } maven打包,生成test-prometheus-1.0-SNAPSHOT.jar 编写config.yaml lowercas…

RISC-V SoC + AI | 在全志 D1「哪吒」开发板上,跑个 ncnn 神经网络推理框架的 demo

引言 D1 是全志科技首款基于 RISC-V 指令集的 SoC,主核是来自阿里平头哥的 64 位的 玄铁 C906。「哪吒」开发板 是全志在线基于全志科技 D1 芯片定制的 AIoT 开发板,是目前还比较罕见的使用 RISC-V SoC 且可运行 GNU/Linux 操作系统的可量产开发板。 n…

Wireshark TS | Linux 系统对时问题

问题描述 节前业务运维同事提交了一个 case ,说是部署在新业务区域的 Linux 服务器和老业务区域的 Linux 服务器无法对时,脚本里使用的是 clockdiff 命令,无法正常返回结果,而在老业务区域两台服务器之间执行命令就正常&#xff…

桥接模式(Bridge Pattern)

桥接模式(Bridge Pattern) 定义 将抽象部分与它的实现部分分离,使它们都可以独立的变化。 属于结构性模式 理解 合成/聚合复用原则的具体实现,将一个整体的多个实现部分独立出来,每个部分都可以独立的变化&#x…

OSI参考模型和TCP/IP网络参考模型

1、OSI参考模型 1.1 产生背景 为了解决网络之间的兼容性问题,实现网络设备间的相互通讯,国际标准化组织ISO于1984年提出了OSIRM(Open System Interconnection Reference Model,开放系统互连参考模型)。OSI参考模型很快成为计算机网络通信的基础模型。由于种种原因,并没有…

android stadio通过wifi热点 adb连接android

问题:有时后忘记带android usb线了,但需要调试 解决办法: 1、准备开发工具adb,需要到sdk下的platform-tools的目录下,或者把这个目录加到系统path里,我的是D:\android\sdk\platform-tools这个目录&#x…

Mysql整理-Mysql事务

MySQL中的事务是一组顺序执行的数据库操作,要么完全执行,要么完全不执行。事务是数据库管理的一个重要概念,尤其是在确保数据完整性和一致性方面。MySQL中的事务遵循ACID属性,这是事务性数据库系统的四个关键特性: 原子性(Atomicity):事务内的所有操作都是作为一个单一…

linux系统---nginx(2)rewrite重写功能

目录 一、rewrite概述 1、rewrite功能 2、跳转场景 二、标准配置指令 1、rewrite日志记录指令 2、未初始化变量告警日志记录指令 3、rewrite 指令 3.1 正则表达式 三、rewrite模块使用实例 1.基于域名的跳转 一、rewrite概述 1、rewrite功能 访问重写 rewrite 是 …

sql 分割字段,并分行

创建测试表格 CREATE TABLE test (id INT PRIMARY KEY, data VARCHAR(100)); INSERT INTO test VALUES (1, A,B,C); INSERT INTO test VALUES (2, D,E,F,G);查询并分割字段 SELECT id, value AS split_data FROM test CROSS APPLY STRING_SPLIT(data, ,) WHERE LEN(value) …

11个Linux性能分析命令

Linux性能分析命令有很多,不同的命令可以用来监控不同的系统资源和活动。根据您的问题,我为您推荐以下11个常用的Linux性能分析命令: uptime:显示系统的运行时间和平均负载。dmesg:显示系统的启动信息和内核的日志信息…

如何改变.net托管的入口main函数

有小伙伴问: .NET托管入口Main函数可以修改成别的函数,用来作为程序的入口吗? 答案:当然是可以的。这也算是.NET里面非常简单的骚操了。本篇来用最新的.NET8演示下,如何修改Main入口。 1.简单控制台例子: namespace…