当前位置: 首页 > article >正文

flink中配置Rockdb的重要配置项

背景

由于我们在flink中使用了状态比较大,无法完全把状态数据存放到tm的堆内存中,所以我们选择了把状态存放到rockdb上,也就是使用rockdb作为状态后端存储,本文就是简单记录下使用rockdb状态后端存储的几个重要的配置项

使用rockdb状态后端

1.首先看一下rockdb的设计图
在这里插入图片描述

从中需要注意几点:

1.1 每次状态读取操作不一定会经过磁盘,有可能直接从内存中就可以获取到记录了,也有可能要经过好几次IO操作才能读取到记录

1.2 每次写操作都会把记录先顺序写到WAL日志文件中,然后写入memtable内存表,由于写操作是顺序写,虽然比不上直接操作内存,但是性能也不会很差

2.flink全局维度的重要的配置项:

state.backend.rocksdb.memory.managed 默认值true,开启rockdb作为flink状态后端存储

taskmanager.memory.managed.size 默认不配置,显示给rockdb用的堆外内存的总大小
taskmanager.memory.managed.fraction 默认0.4,当参数taskmanager.memory.managed.size没有配置时,给rockdb用的堆外内存的总大小占堆大小的比例

3.rockdb内部的重要的配置项

我们知道rockdb中内部的内存占用主要包含:memtable表,索引(包括数据索引和布隆过滤器索引),以及BlockCache,以下两个配置是调整rockdb内部的内存占用比例的

state.backend.rocksdb.memory.write-buffer-ratio,默认值 0.5,即 50% 的给定内存会分配给写缓冲区使用,这里也就是memtable使用的内存
state.backend.rocksdb.memory.high-prio-pool-ratio,默认值 0.1,即 10% 的 block cache 内存会优先分配给索引及过滤器。 我们强烈建议不要将此值设置为零,以防止索引和过滤器被频繁踢出缓存而导致性能问题


http://www.kler.cn/a/133519.html

相关文章:

  • 轮转数组
  • CSS:怎么把网站都变成灰色
  • EXCEL延迟退休公式
  • docker:docker: Get https://registry-1.docker.io/v2/: net/http: request canceled
  • SHELL脚本(Linux)
  • 树形dp总结
  • 跟李沐学AI-深度学习课程05线性代数
  • react中设置activeClassName的笔记
  • 4.6每日一题(多元函数的隐函数求导)
  • 简单的用Python实现一下,采集某牙视频,多个视频翻页下载
  • 图像分类(五) 全面解读复现ResNet
  • idea启动tomcat报错404
  • 基于未来搜索算法优化概率神经网络PNN的分类预测 - 附代码
  • 2311rust,到60版本更新
  • 资深测试总结,现在软件测试有未来吗?“你“的底气在哪里?
  • mysql表字段数据类型对应java类型
  • 矩阵的QR分解
  • 向pycdc项目提的一个pr
  • 使用Qt实现多人聊天工作室
  • 聚观早报 |联想集团Q2财季业绩;小鹏汽车Q3营收
  • uniapp自定义组件
  • 线性方程组
  • Django部署时静态文件配置的坑
  • 2023最新最全【Nacos】零基础安装教程
  • 2023年首届天府杯数学建模国际大赛问题A思路详解与参考代码:大地测量数据中异常现象的特征和识别
  • 搜维尔科技:业内普遍选择Varjo头显作为医疗VR/AR/XR解决方案