(一)一文掌握flink性能优化:资源配置调优
系列文章目录
第一章 资源配置调优
第二章 状态及Checkpoint 调优
第三章 反压处理
第四章 数据倾斜
第五章 job优化
第六章 flinksql调优
第七章 常见故障排查
本文目录
- 前言
- 一、内存设置
- TaskManager 内存模型及解释
- 二.案例分析
- 总结
前言
Flink性能调优的第一步,就是为任务分配合适的资源,在一定范围内,增加资源的分配与性能的提升是成正比的,实现了最优的资源配置后,在此基础上再考虑进行后面论述的性能调优策略。
一、内存设置
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
总进程内存*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性能优化:资源配置调优相关推荐
- 性能优化-Tomcat调优
通常我们的应用都是部署在tomcat中,那么针对tomcat可以进行如下配置优化 删减配置 移除conf/web.xml中的org.apache.catalina.servlets.DefaultSe ...
- 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. ...
- Flink 运维与调优
转载-flink优化_黄瓜炖啤酒鸭的博客-CSDN博客 1.1 内存设置 1.2 并行度设置 1.2.1 最优并行度计算 1.2.2 Source 端并行度的配置 1.2.3 Transform端 ...
- JVM(四)_性能监控与调优
不定期补充.修正.更新:欢迎大家讨论和指正 本文主要根据尚硅谷的视频学习,建议移步观看,其他参考资料会在使用时贴出链接 尚硅谷宋红康JVM全套教程(详解java虚拟机) 由于JVM的知识是互相穿插的, ...
- Java虚拟机|JVM知识点汇总及简述->性能监控与调优
性能监控与调优 前言 这里学完整章后选择一到两个工具使用熟练,个人推荐Visual VM和Arthas搭配熟练使用 一.概述 1.性能评价/测试指标 1.1 停顿时间(响应时间) 提交请求和返回该请求 ...
- 【转载】软件性能测试分析与调优实践之路-Web中间件的性能分析与调优总结
本文主要阐述软件性能测试中的一些调优思想和技术,节选自作者新书<软件性能测试分析与调优实践之路>部分章节归纳. 在国内互联网公司中,Web中间件用的最多的就是Apache和Nginx这两款 ...
- Java生产环境下性能监控与调优详解 第5章 Tomcat性能监控与调优
第5章 Tomcat性能监控与调优 5-1 tomcat远程debug 5-2 tomcat-manager监控 5-3 psi-probe监控 5-4 tomcat优化
- Java生产环境下性能监控与调优详解 第6章 Nginx性能监控与调优
第6章 Nginx性能监控与调优 6-1 nginx安装 6-2 ngx_http_stub_status监控连接信息 6-3 ngxtop监控请求信息 6-4 nginx-rrd图形化监控 6-5 ...
- 《Oracle高性能SQL引擎剖析:SQL优化与调优机制详解》一第一篇 执行计划
第一篇 执行计划 执行计划是指示Oracle如何获取和过滤数据.产生最终结果集,是影响SQL语句执行性能的关键因素.我们在深入了解执行计划之前,首先需要知道执行计划是在什么时候产生的,以及如何让SQL ...
- 性能监控与调优篇之【3. JVM 监控及诊断工具-GUI 篇】
文章目录 3. JVM 监控及诊断工具-GUI 篇 3.1. 工具概述 3.2. JConsole 3.3. Visual VM 3.4. Eclipse MAT 3.5. JProfiler 3.6 ...
最新文章
- C++基础算法学习——完美立方
- 华为云IoT提出泛在新联接,让万物皆可联
- geotrellis使用(三十)使用geotrellis读取PostGIS空间数据
- [?]Oracle 10g sqlplus 的Bug?
- LeetCode - Easy - 169. Majority Element
- 会动的图解!GMP模型里为什么要有P?背后的原因让人暖心
- 零基础小白前端学习之初始CSS
- 解决实例化Servlet类[com.mu.servlet.HelloServlet]异常
- Python_016 XML解析
- 使用 Python 进行双重退火优化
- 窘境遇到HR Manager
- 2.IDEA修改主题
- Android高级-笔记
- aspen压缩因子_利用aspen plus进行物性参数的估算
- 四川铺管家教育:拼多多0.99有什么注意的
- Win7笔记本如何调整屏幕亮度
- SQL中CONVERT()函数用法详解
- vhdl语言里的cnt1:=(others=>‘1‘)是什么意思
- UOS系统升级到1050后无法正常使用输入法功能问题解决方法
- Plecs电力电子仿真专业教程-第一季 第三节 Plecs界面介绍