当前位置: 首页 > 知识库问答 >
问题:

Apache Flink:与网络内存段的直接内存关系

鲍钊
2023-03-14

我正在运行Flink 1.8版。

主要配置如下:

env.java.opts: -Djavax.net.ssl.keyStoreType=JKS -Djavax.net.ssl.trustStoreType=JKS
taskmanager.heap.size: 12288m
taskmanager.numberOfTaskSlots: 7

声明的堆大小是12GB,为什么在概述部分显示为7.33GB。

根据文档,堆大小=声明的堆大小-网络缓冲区内存(默认值:声明的堆的0.1倍,但最大为1gb)。所以正确的值是JVM(堆/非堆)部分中显示的值,即11GB

Network Memory Segments:我假设,由于现在使用1GB作为网络缓冲内存,因此32768段基本上是指32KiB大小的内存段的计数。这些用于在任务之间传输数据的TCP通道。我的理解是它仍然在堆中(因此从声明的堆中减去),但分配的更像ByteBuffer.allocate()。正确吗?

在本博客之后,特别是在处理比特和字节时,默认情况下,服务初始化后可用的JVM堆的70%由MemoryManager分配 。因此,这是任务以内存段的形式使用的内存,用于缓冲检查点对齐、广播数据、窗口数据等的数据。自taskmanager以来。记忆力off heap=false在这种情况下,此内存将在堆上分配。因此,我假设这里显示的4.95GB已用内存基本上是任务使用的内存,用于从托管内存中缓冲各种用途的数据,托管内存应为11GB*0.7=7.7GB。

如何访问此托管内存指标。是否为此公开了度量标准。

还有,

直接内存和映射内存度量是指什么。我正在使用RocksDB作为我的状态后端。那么,是不是状态的大小,它是在堆外管理的?Flink如何确定其容量和使用情况。如果可能,由于该值的配置错误,可能会出现什么样的问题。

此外,这是一个流媒体作业,如果这有什么关系的话。

共有1个答案

孔运良
2023-03-14

网络缓冲区脱离堆。这是我可以自信地回答的一点。

否则,请参阅这篇博文末尾的记忆部分:https://flink.apache.org/news/2019/02/25/monitoring-best-practices.html.希望这会有所帮助。

 类似资料:
  • 问题内容: 我还没有使用过Redis,但我听说过它,并打算尝试将其作为缓存存储。 我听说Redis使用内存作为缓存存储数据库,那么如果我使用变量作为对象或字典数据类型来存储数据有什么区别?喜欢: Redis有什么优势? 问题答案: Redis是一个 远程 数据结构服务器。这肯定比仅将数据存储在本地内存中要慢(因为它涉及套接字往返来获取/存储数据)。但是,它也带来了一些有趣的属性: 应用程序的所有进

  • Java虚拟机在执行的时候会把管理的内存分配到不同的区域,这些区域称为虚拟机内存;同时对于虚拟机没有直接管理的物理内存,也会有一定的利用,这些被利用但不在虚拟机内存的地方称为本地内存。 JVM内存:受虚拟机内存大小的参数控制,当大小超过参数设置的大小时会报OOM。 本地内存:本地内存不受虚拟机内存参数的限制,只受物理内存容量的限制;虽然不受参数的限制,如果所占内存超过物理内存,仍然会报OOM。 虚

  • 问题内容: 我正在尝试直接为嵌入式Linux项目访问物理内存,但是我不确定如何最好地指定使用的内存。 如果我定期引导设备并访问/ dev / mem,则可以轻松地对其几乎任何位置进行读写。但是,在这种情况下,我正在访问可以轻松分配给任何进程的内存。我不想做 我的/ dev / mem代码是(删除了所有错误,等等。): 这可行。但是,我想使用没有其他人会碰到的内存。我尝试通过使用mem = XXXm

  • 本文向大家介绍java内存泄漏与内存溢出关系解析,包括了java内存泄漏与内存溢出关系解析的使用技巧和注意事项,需要的朋友参考一下 这篇文章主要介绍了java内存泄漏与内存溢出关系解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 内存溢出 out of memory,是指程序在申请内存时,没有足够的内存空间供其使用,出现out of memor

  • 我有一个用params运行的java应用程序,有人能解释一下为什么VCZ是3800076,而RSS是241304(这是更多的java params) 在命令中:

  • 问题内容: 每个TCP / IP网络连接Linux内核平均消耗多少内存(在内核地址空间中)? 问题答案: 对于TCP连接,消耗的内存取决于 sk_buff的大小(Linux内核使用的内部网络结构) 连接的读写缓冲区 缓冲区的大小可以根据需要进行调整 检查这些变量 这些指定内核中所有网络连接的最大默认内存缓冲区使用量 这些指定了特定于TCP连接的缓冲存储器使用情况 指定的三个值是“最小默认最大”缓冲