–rocksdb_block_cache=4096
老哥,你记得补充下你做了什么操作。
spark数据导入,--enable_partitioned_index_filter=true 设成了true也是很高
所以是,用 Spark 导入数据的时候,发现 nebula- storage 占用内存率非常高对吗?
是的,现在设置参数重启一样高,根据之前论坛上说的默认值我也去掉了,还是很高,这个相关工具检测哪个用到内存最高吗
jeprof看起来有读数据啊 compaction开着还是关掉了 另外关注下是刚启动就很大 还是导入过程中变大的
谢谢已解决
请问能分享下解决的方法么?
通过jeprof定位到索引和过滤块,调整max_open_files、cache_index_and_filter_blocks 解决,但会产生性能问题,发现默认块block_size为8k太小,准备调整这个来减少索引内存,过滤器换成Ribbon Filter (准备测试中)
2 个赞
太棒了,期待您的更多成果和分享
期待写个文章分享下具体的分析过程和思路
2 个赞
可以的,这个提交到哪
1 个赞
话说你们数据量有多大?开了rocksdb的partition_index_filter之后 应该只有第一层的index/filter在内存诶?
没多大,只有150G左右,一个节点
看到发表的blog了
我和critical27有同样的疑问,按说开了partition_index_filter(这个参数同时将cache_index_and_filter_blocks设为true)能更好控制内存才对。你导入的时候是否关闭了auto-compaction呢?能否看下rocksdb中的每层的大小呢?
没有对auto compaction关闭,都是采用官方默认的配置,看Rocksdb官网max_open_files = -1能最大提高性能,但一打开就用了很大内存
1 个赞
开启了这个参数,max_open_files = -1 rocksdb 内
cat /data/nebula/data/storage/nebula/3/data/LOG | grep pin
pin_l0_filter_and_index_blocks_in_cache: 1
pin_top_level_index_and_filter: 1
2022/03/21-10:36:41.466636 2b3ad9856740
一样OOM