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 内存会优先分配给索引及过滤器。 我们强烈建议不要将此值设置为零,以防止索引和过滤器被频繁踢出缓存而导致性能问题

相关推荐
Tob管理笔记16 分钟前
建筑业如何精准开拓优质客户?技术驱动下的方法论与实践
大数据·云计算·数据库开发
MM_MS18 分钟前
Halcon控制语句
java·大数据·前端·数据库·人工智能·算法·视觉检测
JZC_xiaozhong1 小时前
主数据同步失效引发的业务风险与集成架构治理
大数据·架构·数据一致性·mdm·主数据管理·数据孤岛解决方案·数据集成与应用集成
T06205141 小时前
【数据集】全国各地区教育139个相关指标数据集(2000-2024年)
大数据
故乡de云2 小时前
Vertex AI 企业账号体系,Google Cloud 才能完整支撑
大数据·人工智能
汽车仪器仪表相关领域2 小时前
AI赋能智能检测,引领灯光检测新高度——NHD-6109智能全自动远近光检测仪项目实战分享
大数据·人工智能·功能测试·机器学习·汽车·可用性测试·安全性测试
木头程序员2 小时前
大模型边缘部署突破:动态推理技术与精度-延迟-能耗帕累托优化
大数据·人工智能·计算机视觉·自然语言处理·智能手机·数据挖掘
DX_水位流量监测2 小时前
无人机测流之雷达流速仪监测技术分析
大数据·网络·人工智能·数据分析·自动化·无人机
鹿衔`2 小时前
Hadoop HDFS 核心机制与设计理念浅析文档
大数据·hadoop·hdfs
萤丰信息2 小时前
开启园区“生命体”时代——智慧园区系统,定义未来的办公与生活
java·大数据·运维·数据库·人工智能·生活·智慧园区