系列文章目录
第一章 资源配置调优
第二章 状态及Checkpoint 调优
第三章 反压处理
第四章 数据倾斜
第五章 job优化
第六章 flinksql调优
第七章 常见故障排查
本文目录
前言
Flink性能调优的第一步,就是为任务分配 合适 的资源,在一定范围内,增加资源的分配与性能的提升是成正比的,实现了最优的资源配置后,在此基础上再考虑进行后面论述的性能调优策略。
一、内存设置
1.TaskManager 内存模型及解释
JVM 特定内存:JVM本身使用的内存,包含JVM的metaspace和overhead
- JVM metaspace:JVM 元空间
taskmanager.memory.jvm metaspace.size ,默认 256 mb
- JVM over head 执行开销: JVM 执行时自身所需要的内容,包括线程堆栈、 IO 、编译缓存等所使用的内存。
taskmanager.memory.jvm overhead.fraction ,默认 0.1
taskmanager.memory.jvm overhead.min ,默认 192mb
taskmanager.memory.jvm overhead.max ,默认 1gb
框架内存: Flink 框架,即 TaskManager 本身所占用的内存, 不计入 Slot 的资源中。
堆内:
taskmanager .memory.framework.heap.size 默认 128MB
堆外:
taskmanager .memory.framework.off heap.size ,默认 128MB
Task 内存:Task 执行用户代码时所使用的内存
堆内:
taskm anager.memory.task.heap.size ,默认 none ,由 Flink 内存扣除掉其他部分的内存得到 。
堆外:
taskmanager .memory.task.off heap.size ,默认 0 ,表示不使用堆外内存
2.案例分析
总结
以上就是资源配置调优的内容,本文介绍了资源配置调优的相关概念、案例、策略,对于flink作业能使我们快速的在生产环境中进行资源方面的一些优化。