系列文章目录

第一章 资源配置调优
第二章 状态及Checkpoint 调优
第三章 反压处理
第四章 数据倾斜
第五章 job优化
第六章 flinksql调优
第七章 常见故障排查


本文目录

  • 前言
  • 一、内存设置
    • TaskManager 内存模型及解释
  • 二.案例分析
  • 总结

前言

Flink性能调优的第一步,就是为任务分配合适的资源,在一定范围内,增加资源的分配与性能的提升是成正比的,实现了最优的资源配置后,在此基础上再考虑进行后面论述的性能调优策略。


一、内存设置

TaskManager 内存模型及解释


JVM 特定内存:JVM本身使用的内存,包含JVM的metaspace和overhead

  1. JVM metaspace:JVM 元空间
taskmanager.memory.jvm metaspace.size ,默认 256 mb
  1. JVM over head 执行开销: JVM 执行时自身所需要的内容,包括线程堆栈、 IO 、编译缓存等所使用的内存。
taskmanager.memory.jvm overhead.fraction ,默认 0.1
taskmanager.memory.jvm overhead.min ,默认 192mb
taskmanager.memory.jvm overhead.max ,默认 1gb

总进程内存*fraction,如果小于配置的 min(或大于配置的 max 大小,则使用 min/max大小

框架内存: 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 ,表示不使用堆外内存

网络内存: 网络数据交换所使用的堆外内存大小,如网络数据交换缓冲区
堆外:

taskmanager.memory.network.fractio n ,默认 0.1
taskmanager.memory.network.min ,默认 64mb
taskmanager.memory.network.max ,默认 1gb

Flink内存 *fraction ,如果小于 配置的 min (或大于配置的 max 大小,则使用 min/max大小

托管内存: 用于 RocksDB State Backend 的本地内存和批的排序、哈希表、缓存中间结果。
堆外:

taskmanager .memory.managed.fraction ,默认 0.4
taskmanager .memory.managed.size ,默认 none

如果size 没指定,则等于 Flink 内存 *fraction

二.案例分析

基于Yarn 模式,一般参数指定的是总进程内存, taskmanager.memory.process.size 比如指定4G,每一部分内存得到大小如下

(1) JVM 元空间 256 , 默认JVM 执行开销:4g *0.1=409.6m ,在 [192m,1g] 之间,最终结果409.6mFlink内存 = 4g-256m-409.6m=3430.4m
(2) 网络内存 3430.4m*0.1=343.04m ,在[64m,1g] 之间,最终结果343.04m
(3) 托管内存 3430.4m*0.4=1372.16m
(4) 框架内存,堆内和堆外都是 128m
(5) Task 堆内内存 3430.4m-128m-128m-343.04m-1372.16m=1459.2m


所以进程 内存给多大 ,每一部分内存需不需要调整 ,可以看内存的使用率来调整 。

总结

以上就是资源配置调优的内容,本文介绍了资源配置调优的相关概念、案例、策略,对于flink作业能使我们快速的在生产环境中进行资源方面的一些优化。

(一)一文掌握flink性能优化:资源配置调优相关推荐

  1. 性能优化-Tomcat调优

    通常我们的应用都是部署在tomcat中,那么针对tomcat可以进行如下配置优化 删减配置 移除conf/web.xml中的org.apache.catalina.servlets.DefaultSe ...

  2. 25.Flink监控\什么是Metrics\Metrics分类\Flink性能优化的方法\合理调整并行度\合理调整并行度\Flink内存管理\Spark VS Flink\时间机制\容错机制等

    25.Flink监控 25.1.什么是Metrics 25.2.Metrics分类 25.2.1.Metric Types 25.2.2.代码 25.2.3.操作 26.Flink性能优化 26.1. ...

  3. Flink 运维与调优

    转载-flink优化_黄瓜炖啤酒鸭的博客-CSDN博客 1.1 内存设置  1.2 并行度设置  1.2.1 最优并行度计算 1.2.2 Source 端并行度的配置 1.2.3 Transform端 ...

  4. JVM(四)_性能监控与调优

    不定期补充.修正.更新:欢迎大家讨论和指正 本文主要根据尚硅谷的视频学习,建议移步观看,其他参考资料会在使用时贴出链接 尚硅谷宋红康JVM全套教程(详解java虚拟机) 由于JVM的知识是互相穿插的, ...

  5. Java虚拟机|JVM知识点汇总及简述->性能监控与调优

    性能监控与调优 前言 这里学完整章后选择一到两个工具使用熟练,个人推荐Visual VM和Arthas搭配熟练使用 一.概述 1.性能评价/测试指标 1.1 停顿时间(响应时间) 提交请求和返回该请求 ...

  6. 【转载】软件性能测试分析与调优实践之路-Web中间件的性能分析与调优总结

    本文主要阐述软件性能测试中的一些调优思想和技术,节选自作者新书<软件性能测试分析与调优实践之路>部分章节归纳. 在国内互联网公司中,Web中间件用的最多的就是Apache和Nginx这两款 ...

  7. Java生产环境下性能监控与调优详解 第5章 Tomcat性能监控与调优

    第5章 Tomcat性能监控与调优 5-1 tomcat远程debug 5-2 tomcat-manager监控 5-3 psi-probe监控 5-4 tomcat优化

  8. Java生产环境下性能监控与调优详解 第6章 Nginx性能监控与调优

    第6章 Nginx性能监控与调优 6-1 nginx安装 6-2 ngx_http_stub_status监控连接信息 6-3 ngxtop监控请求信息 6-4 nginx-rrd图形化监控 6-5 ...

  9. 《Oracle高性能SQL引擎剖析:SQL优化与调优机制详解》一第一篇 执行计划

    第一篇 执行计划 执行计划是指示Oracle如何获取和过滤数据.产生最终结果集,是影响SQL语句执行性能的关键因素.我们在深入了解执行计划之前,首先需要知道执行计划是在什么时候产生的,以及如何让SQL ...

  10. 性能监控与调优篇之【3. JVM 监控及诊断工具-GUI 篇】

    文章目录 3. JVM 监控及诊断工具-GUI 篇 3.1. 工具概述 3.2. JConsole 3.3. Visual VM 3.4. Eclipse MAT 3.5. JProfiler 3.6 ...

最新文章

  1. C++基础算法学习——完美立方
  2. 华为云IoT提出泛在新联接,让万物皆可联
  3. geotrellis使用(三十)使用geotrellis读取PostGIS空间数据
  4. [?]Oracle 10g sqlplus 的Bug?
  5. LeetCode - Easy - 169. Majority Element
  6. 会动的图解!GMP模型里为什么要有P?背后的原因让人暖心
  7. 零基础小白前端学习之初始CSS
  8. 解决实例化Servlet类[com.mu.servlet.HelloServlet]异常
  9. Python_016 XML解析
  10. 使用 Python 进行双重退火优化
  11. 窘境遇到HR Manager
  12. 2.IDEA修改主题
  13. Android高级-笔记
  14. aspen压缩因子_利用aspen plus进行物性参数的估算
  15. 四川铺管家教育:拼多多0.99有什么注意的
  16. Win7笔记本如何调整屏幕亮度
  17. SQL中CONVERT()函数用法详解
  18. vhdl语言里的cnt1:=(others=>‘1‘)是什么意思
  19. UOS系统升级到1050后无法正常使用输入法功能问题解决方法
  20. Plecs电力电子仿真专业教程-第一季 第三节 Plecs界面介绍

热门文章

  1. 【2012求职经历】应届生求职经历
  2. Java--数组和集合之间的相互转换
  3. 明源云与华为联合发起828 B2B企业节,共同成就好生意!
  4. php64转码,Base64的编码转换方式
  5. 利用matlab实现驻波仿真
  6. android 强制竖排,[Android]实现文字竖排
  7. Nodejs之NestJS之pkg打包
  8. 2020还是AI最火?推荐几本深度学习的书籍帮你入门!
  9. 南京大学行业求职研究报告——投资银行篇
  10. 论文写作 2: 常见的 Latex 格式文件