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

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.lryc.cn/news/235392.html

相关文章:

  • 代码随想录二刷 | 数组 | 有序数组的平方
  • 基于单片机C51全自动洗衣机仿真设计
  • 「Verilog学习笔记」实现3-8译码器①
  • Centos(Linux)服务器安装Dotnet8 及 常见问题解决
  • 最强人工智能ChatGPT引领AIGC发展
  • 10.Oracle的同义词与序列
  • 【周报2023-11-10】
  • 搜维尔科技:业内普遍选择Varjo头显作为医疗VR/AR/XR解决方案
  • 数据结构02附录01:顺序表考研习题[C++]
  • ClientDateSet:Cannot perform this operation on a closed dataset
  • python中列表的基础解释
  • 『力扣刷题本』:链表分割
  • FISCOBCOS入门(十)Truffle测试helloworld智能合约
  • Unity Text文本首行缩进两个字符的方法
  • TS的函数重载、类型合并、类型断言
  • JVM:字节码文件,类的生命周期,类加载器
  • 【IPC】消息队列
  • 内网穿透工具NPS(保姆级教程)
  • 最长公共子序列问题
  • 服务器数据恢复—热备盘同步中断导致Raid5数据丢失的数据恢复案例
  • 桥接模式-C++实现
  • PHP字符串函数的解析
  • 科研学习|研究方法——使用python强大的Statsmodel 执行假设检验和线性回归
  • 设计模式——责任链模式
  • nginx得if语句内proxy_pass不允许携带url部分,如何处理
  • CentOS7设置 redis 开机自启动
  • C++虚函数(定义,作用,原理,案例)
  • C#中.NET 6.0 控制台应用通过EF访问新建数据库
  • conda创建pytorch环境报错
  • 数据结构-插入排序实现