Flink內存溢出


Flink內存模型

此圖是基於flink1.12版本.

一個taskmanager給了6g內存,可以有很清楚的看到各個部分占用的內存,還是實時變化的.

名詞解釋

組件 配置項 描述
Framework Heap Memory taskmanager.memory.framework.heap.size (高級參數,一般不需要用戶配置)分配給 Flink 框架的 JVM 堆內存(默認128MB)
Task Heap Memory taskmanager.memory.task.heap.size 分配給 operator 和用戶代碼的 JVM 堆內存
Managed memory taskmanager.memory.managed.size(默認none) taskmanager.memory.managed.fraction(默認0.4) 被 flink 管理的本地內存,用於 batch 作業的中間結果排序(sort)、散列表(hash)、緩存(caching )和 Streaming 作業的 RocksDB state backend
Framework Off-heap Memory taskmanager.memory.framework.off-heap.size(默認128 mb) (高級參數)分配給 Flink 框架的 Off-heap direct 內存
Task Off-heap Memory taskmanager.memory.task.off-heap.size 分配給 task operator 的 Off-heap direct 內存,默認(0 bytes)
Network Memory taskmanager.memory.network.min(默認64 mb) taskmanager.memory.network.max(默認1 gb) taskmanager.memory.network.fraction(默認0.1) 為 tasks 之間的數據元素交換保留的 Off-heap direct(例如,通過網絡進行傳輸的緩沖區),它是 Total Flink Memory 的一個有上下限的細分組件
JVM metaspace taskmanager.memory.jvm-metaspace.size(默認96 mb) flink-1.10.0 為 96 mb flink-1.10.1及flink-1.11為256 mb 更改原因見 FLINK-16406 Flink JVM 進程的元數據空間大小,為本地內存
JVM Overhead taskmanager.memory.jvm-overhead.min(默認192 mb) taskmanager.memory.jvm-overhead.max(默認1 gb) taskmanager.memory.jvm-overhead.fraction(默認0.1) 為 JVM 進程預留的其他本地內存,用於線程棧、代碼緩存、垃圾收集。它是 Total Process Memory(整個進程) 的一個有上下限的細分組件

如您所見,某些內存組件的大小可以通過相應的選項簡單地設置。其他組件可以使用多個選項進行調優。

中文名

  • 堆內存
    • 框架堆內存(Framework Heap Memory):用於 Flink 框架的 JVM 堆內存(進階配置)。
    • 任務堆內存(Task Heap Memory):用於 Flink 應用的算子及用戶代碼的 JVM 堆內存。
  • 堆外內存
    • 托管內存(Managed memory):由 Flink 管理的用於排序、哈希表、緩存中間結果及 RocksDB State Backend 的本地內存。
    • 框架堆外內存(Framework Off-heap Memory):用於 Flink 框架的堆外內存(直接內存或本地內存)(進階配置)。
    • 任務堆外內存(Task Off-heap Memory):用於 Flink 應用的算計及用戶代碼的堆外內存(直接內存或本地內存)。
    • 網絡內存(Network Memory):用於任務之間數據傳輸的直接內存(例如網絡傳輸緩沖)。該內存部分為基於 Flink 總內存的受限的等比內存部分。

內存溢出發生在 Framework Heap Memory

由於我的程序內存溢出Framework Heap Memory 滿了,但是 Managed memory還有很多空余的,我這邊的計算並不多, 我就把Managed memory 調小了,配置文件中taskmanager.memory.managed.size: 1g


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM