nebula-storaged单节点占用内存20多G

问下就是3.0.1版本,storaged很吃内存,数据不多,占了20多G内存,单节点部署


突然服务器被占满内存

kill storaged后释放内存。

是需要改哪里的配置,解决这个内存占用过多问题么

是什么操作都没有,内存就占了 20G 么?还是写入数据之后发现占了 20G?后者的话,大概是 wal 文件造成的,过 4 个小时就没了。

什么操作都没有哦

没有在写入数据?

没有写入数据哦,数据也不多,就200多个图空间,为啥会占用这么多内存呢

单节点数据也不多,不至于这么吃内存把,是不是storaged有内存泄漏哦,有没有什么办法解决呢

需要给些背景来进行定位:

  1. nebula storage 的配置:贴一下 storaged 的配置文件
  2. storage 数据规模:可以看下 data 文件夹多大
  3. 日常读写情况:查询频次,主要查询类型,是否有一直写入的流量






最近都没有读写,查询单节点不是很多,主要查询时match查询

看起来 storaged 的配置文件是没有改过是么?另外配置文件好像没有贴全,最好用文本重新贴一下。

内存占用高应该是 rocksdb cache 的问题,其实论坛中有很多帖子在讲这个问题,以后有问题可以先搜下论坛,比如:nebula 日志报错 - #27,来自 wenhaocs

storaged 的配置文件 没有改过

新文件 7.txt (5.0 KB)

嗯,那你照着那个帖子的建议试着改改把,主要思想就是:

  • 禁操作系统 page cache,使用 block cache 控制 rocksdb 内存占用,给一个你认为合适的值作为 rocksdb 内存使用上限。

因为图空间的物理隔离设计,每一个图空间在每一个 storaged 上都是一个单独的 rocksdb,即使是空的也是有 overhead 的 cache 占用的

cc @spw 图空间好像挺多的哈

1 个赞

意思是图空间的数据很少,也占用了内存对么?

嗯嗯,空的时候也有 overhead,具体 @spw 比较懂哈,可以做的事情就是他的建议哈

此话题已在最后回复的 30 天后被自动关闭。不再允许新回复。