如何增加 Flink 内存大小



我正在尝试在 Flink 任务管理器上运行作业,但出现此异常:

Initializing the input processing failed: Too little memory provided to sorter to perform task. Required are at least 12 pages. Current page size is 32768 bytes.

我已经通过 flink-conf.yml 在任务和作业管理器中设置了堆大小,还有什么我应该更改以增加内存的吗?

taskmanager.heap.size: 4096m
taskmanager.memory.size: 4096m
jobmanager.heap.size: 2048m

错误消息指示排序器未获取足够的内存页。原因是可用的托管内存不足。有多种方法可以解决此问题:

  1. 通过taskmanager.heap.size增加TaskManager的可用内存
  2. 增加通过taskmanager.memory.fractiontaskmanager.heap.size获取的托管内存的比例(默认情况下为 0.7)
  3. 通过taskmanager.memory.segment-size减小页面大小
  4. 减少TaskManager上的插槽数,因为每个 TM 的并行度降低将减少 TM 上的内存使用者数量(操作员获得更大份额的可用内存)

如果您只运行批处理加载,则还应激活taskmanager.memory.preallocate: true这将在启动时启用内存分配。这通常更快,因为它减少了垃圾回收压力。

关于taskmanager.memory.size的另一个评论:此值始终需要小于或等于taskmanager.heap.size,因为它指定了整个堆空间中将用于托管内存的内存量。如果未指定此参数,则 Flink 将占用托管内存的一小部分可用堆内存(通过taskmanager.memory.fraction指定)。

相关内容

  • 没有找到相关文章

最新更新