nebula stroge 占用内存非常高

–rocksdb_block_cache=4096

老哥,你记得补充下你做了什么操作。

spark数据导入,--enable_partitioned_index_filter=true 设成了true也是很高

所以是,用 Spark 导入数据的时候,发现 nebula- storage 占用内存率非常高对吗?

是的,现在设置参数重启一样高,根据之前论坛上说的默认值我也去掉了,还是很高,这个相关工具检测哪个用到内存最高吗

schema有默认值吗 可以看下这个帖子 nebula-storage内存占用持续上涨的问题

这个我已经修改过了,我用jeprof 分析了下 

jeprof看起来有读数据啊 compaction开着还是关掉了 另外关注下是刚启动就很大 还是导入过程中变大的

谢谢已解决

请问能分享下解决的方法么?

通过jeprof定位到索引和过滤块,调整max_open_files、cache_index_and_filter_blocks 解决,但会产生性能问题,发现默认块block_size为8k太小,准备调整这个来减少索引内存,过滤器换成Ribbon Filter (准备测试中)

2 个赞

太棒了:+1:t2:,期待您的更多成果和分享

期待写个文章分享下具体的分析过程和思路

2 个赞

可以的,这个提交到哪

1 个赞

@steam 小姐姐应该会联系您发布文章哈:blush:

话说你们数据量有多大?开了rocksdb的partition_index_filter之后 应该只有第一层的index/filter在内存诶?

没多大,只有150G左右,一个节点

看到发表的blog了 :+1:
我和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