帮助文档
专业提供香港服务器、香港云服务器、香港高防服务器租用、香港云主机、台湾服务器、美国服务器、美国云服务器vps租用、韩国高防服务器租用、新加坡服务器、日本服务器租用 一站式全球网络解决方案提供商!专业运营维护IDC数据中心,提供高质量的服务器托管,服务器机房租用,服务器机柜租用,IDC机房机柜租用等服务,稳定、安全、高性能的云端计算服务,实时满足您的多样性业务需求。 香港大带宽稳定可靠,高级工程师提供基于服务器硬件、操作系统、网络、应用环境、安全的免费技术支持。
服务器资讯 / 香港服务器租用 / 香港VPS租用 / 香港云服务器 / 美国服务器租用 / 台湾服务器租用 / 日本服务器租用 / 官方公告 / 帮助文档
【大数据】Flink 内存管理(一):设置 Flink 进程内存
发布时间:2024-02-29 10:22:43   分类:帮助文档
【大数据】Flink 内存管理(一):设置 Flink 进程内存




《Flink 内存管理》系列(已完结),共包含以下 4 篇文章:
Flink 内存管理(一):设置 Flink 进程内存Flink 内存管理(二):JobManager 内存分配(含实际计算案例)Flink 内存管理(三):TaskManager 内存分配(理论篇)Flink 内存管理(四):TaskManager 内存分配(实战篇)

😊 如果您觉得这篇文章有用 ✔️ 的话,请给博主一个一键三连 🚀🚀🚀 吧 (点赞 🧡、关注 💛、收藏 💚)!!!您的支持 💖💖💖 将激励 🔥 博主输出更多优质内容!!!





Flink 内存管理(一):设置 Flink 进程内存

1.配置 Total Memory2.JVM 参数3.根据比例限制的组件(Capped Fractionated Components)


Apache Flink 通过严格控制各种组件的内存使用,在 JVM 上提供高效的工作负载。虽然社区努力为所有配置提供合理的默认值,但用户在 Flink 上部署的应用程序种类繁多,这意味着这并非总是可行。为了向用户提供最大的生产价值,Flink 允许对集群内的内存分配进行高级和精细调整。
1.配置 Total Memory
Flink JVM 进程的总内存 由 Flink 应用程序消耗的内存(Total Flink Memory)和 JVM 进程消耗的内存 组成。
在 Flink 中设置内存的最简单方法是配置以下两个选项之一:
组件Option for TaskManagerOption for JobManagerTotal Flink memorytaskmanager.memory.flink.sizejobmanager.memory.flink.sizeTotal process memorytaskmanager.memory.process.sizejobmanager.memory.process.size
其余内存组件将根据默认值或附加配置选项自动调整。配置 Flink 总内存(Total Flink Memory)更适合独立部署,因为在这种情况下,您需要声明给 Flink 本身分配多少内存。Flink 总内存分为 JVM 堆内存(JVM Heap)和 堆外内存(Off-heap Memory)。如果配置总进程内存(Total Process Memory),则表示应为 Flink JVM 进程分配多少内存。对于容器化部署,它对应于所请求容器的大小。
另一种设置内存的方法是配置总 Flink 内存所需的内部组件,这些组件针对具体的 Flink 进程。
必须使用上述三种方法之一配置 Flink 的内存(本地执行除外),否则 Flink 启动将失败。这意味着必须明确配置以下选项子集之一,这些子集没有默认值:
for TaskManagerfor JobManagertaskmanager.memory.flink.sizejobmanager.memory.flink.sizetaskmanager.memory.process.sizejobmanager.memory.process.sizetaskmanager.memory.task.heap.size 和 taskmanager.memory.managed.sizejobmanager.memory.heap.size

⭕ 不建议明确配置总的进程内存(Total Process Memory)和总的 Flink 内存(Total Flink Memory)。这可能会因潜在的内存配置冲突而导致部署失败。配置其他内存组件也需要谨慎,因为可能会产生更多的配置冲突。

2.JVM 参数
Flink 在启动进程时,会根据配置或导出的内存组件大小,显式添加以下与内存相关的 JVM 参数。
JVM 参数Value for TaskManagerValue for JobManager-Xmx and -XmsFramework + Task Heap MemoryJVM Heap Memory (Ⅰ)-XX:MaxDirectMemorySizeFramework + Task Off-heap (Ⅱ) + Network MemoryOff-heap Memory (Ⅱ),(Ⅲ)-XX:MaxMetaspaceSizeJVM MetaspaceJVM Metaspace
(Ⅰ)请记住,根据所使用的 GC 算法,您可能无法使用全部堆内存。有些 GC 算法会为自己分配一定量的堆内存。这将导致堆指标返回不同的最大值。(Ⅱ)请注意,用户代码中的本地非直接内存使用也可以作为堆外内存的一部分。(Ⅲ)只有设置了相应的 jobmanager.memory.enable-jvm-direct-memory-limit 选项,才会为 JobManager 进程添加 JVM 直接内存限制。
3.根据比例限制的组件(Capped Fractionated Components)
本节将介绍一些选项的配置细节,这些选项可以是其他内存大小的一部分,同时受到 最小 - 最大范围 的限制,例如:
JVM Overhead 可以是总进程内存的一部分。网络内存(Network Memory)可以是 Flink 总内存的一部分(仅适用于 TaskManager)。
这些组件的大小必须始终介于最大值和最小值之间,否则 Flink 启动将失败。最大值和最小值都有默认值,也可以通过相关的设置来显式设置。
total Process memory =




1000


M


B



1000MB


1000MBJVM Overhead min =




64


M


B



64MB


64MBJVM Overhead max =




128


M


B



128MB


128MBJVM Overhead fraction =




0.1



0.1


0.1
那么 JVM Overhead 将是




1000


M


B


 


×


 


0.1


=


100


M


B



1000MB\ ×\ 0.1 = 100MB


1000MB × 0.1=100MB,在




64





128


M


B



64 - 128MB


64−128MB 范围内。
请注意,如果配置相同的最大值和最小值,就会有效地将大小固定为该值。
如果没有明确配置组件内存,那么 Flink 将根据总内存使用比例来计算内存大小。计算值的上限为相应的最小/最大选项。例如,如果只设置了以下内存选项:
total Process memory =




1000


M


B



1000MB


1000MBJVM Overhead min =




128


M


B



128MB


128MBJVM Overhead max =




256


M


B



256MB


256MBJVM Overhead fraction =




0.1



0.1


0.1
那么 JVM Overhead 将为




128


M


B



128MB


128MB,因为根据比例得出的大小为




100


M


B



100MB


100MB,小于最小值。
如果定义了总内存及其他组件的大小,比例也可能被忽略。在这种情况下,JVM Overhead 就是总内存的其余部分。导出值仍必须在最小/最大范围内,否则配置将失败。例如,假设只设置了以下内存选项:
total Process memory =




1000


M


B



1000MB


1000MBtask heap =




100


M


B



100MB


100MBJVM Overhead min =




64


M


B



64MB


64MBJVM Overhead max =




256


M


B



256MB


256MBJVM Overhead fraction =




0.1



0.1


0.1
进程内存总量的所有其他部分都有默认值,包括默认 Managed Memory 分数(或 JobManager 中的 Off-heap Memory)。这样,JVM Overhead 就不是比例(




1000


M


B


×


0.1


=


100


M


B



1000MB × 0.1 = 100MB


1000MB×0.1=100MB),而是总进程内存的其余部分,要么在




64





256


M


B



64 - 256MB


64−256MB 范围内,要么失败。




香港云服务器租用推荐
服务器租用资讯
·广东云服务有限公司怎么样
·广东云服务器怎么样
·广东锐讯网络有限公司怎么样
·广东佛山的蜗牛怎么那么大
·广东单位电话主机号怎么填写
·管家婆 花生壳怎么用
·官网域名过期要怎么办
·官网邮箱一般怎么命名
·官网网站被篡改怎么办
服务器租用推荐
·美国服务器租用
·台湾服务器租用
·香港云服务器租用
·香港裸金属服务器
·香港高防服务器租用
·香港服务器租用特价