(一)一文掌握flink性能优化:资源配置调优
系列文章目錄
第一章 資源配置調優
第二章 狀態及Checkpoint 調優
第三章 反壓處理
第四章 數據傾斜
第五章 job優化
第六章 flinksql調優
第七章 常見故障排查
本文目錄
- 前言
- 一、內存設置
- TaskManager 內存模型及解釋
- 二.案例分析
- 總結
前言
Flink性能調優的第一步,就是為任務分配合適的資源,在一定范圍內,增加資源的分配與性能的提升是成正比的,實現了最優的資源配置后,在此基礎上再考慮進行后面論述的性能調優策略。
一、內存設置
TaskManager 內存模型及解釋
JVM 特定內存:JVM本身使用的內存,包含JVM的metaspace和overhead
總進程內存*fraction,如果小于配置的 min(或大于配置的 max 大小,則使用 min/max大小
框架內存: Flink 框架,即 TaskManager 本身所占用的內存, 不計入 Slot 的資源中。
堆內:
堆外:
taskmanager .memory.framework.off heap.size ,默認 128MBTask 內存:Task 執行用戶代碼時所使用的內存
堆內:
堆外:
taskmanager .memory.task.off heap.size ,默認 0 ,表示不使用堆外內存網絡內存: 網絡數據交換所使用的堆外內存大小,如網絡數據交換緩沖區
堆外:
Flink內存 *fraction ,如果小于 配置的 min (或大于配置的 max 大小,則使用 min/max大小
托管內存: 用于 RocksDB State Backend 的本地內存和批的排序、哈希表、緩存中間結果。
堆外:
如果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性能优化:资源配置调优的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【在线SPSS】数据分析思维培养系列3:
- 下一篇: 【PHP学习】表单验证实现注册功能