【Flink】第二十二篇:一文终结 Flink 内存配置

2022-03-31 11:17:05 浏览数 (1)

【Flink】第四篇:【迷思】对update语义拆解D-、I 后造成update原子性丢失

【Flink】第五篇:checkpoint【1】

【Flink】第五篇:checkpoint【2】

【Flink】第八篇:Flink 内存管理

【Flink】第九篇:Flink SQL 性能优化实战

【Flink】第十篇:join 之 regular join

【Flink】第十三篇:JVM思维导图

【Flink】第十四篇:LSM-Tree一般性总结

【Flink】第十五篇:Redis Connector 数据保序思考

【Flink】第十六篇:源码角度分析 sink 端的数据一致性

【Flink】第十七篇:记一次牛轰轰的OOM故障排查

【Flink】第十八篇:Direct Memory 一箩筐

【Flink】第十九篇:从一个批量写HBase性能问题到一个Flink issue的距离

【Flink】第二十篇:HBase GC 调优实战

【Flink】第二十一篇:HBase 写热点问题实战

内存配置本质上是对进程规划合理的内存空间:

  • 避免内存不足影响正常运行
  • 减少内存资源浪费

在保证程序能够正常运行的前提下,为公司带来尽可能大的硬件资产价值。

本篇为大家肝了几张图,尽量使得内存配置不再抽象。

TaskManager

JobManager


内存解释

内存配置实战

JobManager

代码语言:javascript复制
./flink run -m yarn-cluster -ynm {yarn-app-name} -ys 1 -yjm 512m -ytm 1g -yd 
-yD jobmanager.memory.heap.size=224m 
-yD jobmanager.memory.enable-jvm-direct-memory-limit=true 
-yD jobmanager.memory.off-heap.size=64m 
-yD jobmanager.memory.jvm-metaspace.size=96m 
-yD jobmanager.memory.jvm-overhead.min=128m 
-yD jobmanager.memory.jvm-overhead.max=128m 
{flink-app}.jar

效果:

TaskManager

代码语言:javascript复制
./flink run -m yarn-cluster -ynm {yarn-app-name} -ys 1 -yjm 1g -ytm 1g -yd 
-yD taskmanager.memory.framework.heap.size=128m 
-yD taskmanager.memory.task.heap.size=128m 
-yD taskmanager.memory.managed.size=64m 
-yD taskmanager.memory.framework.off-heap.size=128m 
-yD taskmanager.memory.task.off-heap.size=128m 
-yD taskmanager.memory.network.min=64m 
-yD taskmanager.memory.network.max=64m 
-yD taskmanager.memory.jvm-metaspace.size=256m 
-yD taskmanager.memory.jvm-overhead.min=128m 
-yD taskmanager.memory.jvm-overhead.max=128m 
{flink-app}.jar

效果:

基本规则:

  1. max min是硬性指标,fraction是软性指标且优先级低
  2. overhead优先级较低,算法较为弹性

0 人点赞