docker部署, 然后用Flink导入Nebula出现/var/lib/docker/overlay2目录暴增, 并伴随着storage服务的挂掉重启, 报错: Too many open files

看一下/var/lib/docker/overlay2里面什么东西在增加

因为我现在没有导入数据, 没有重现, 反正就是这个目录下的摸一个文件夹, 这个需要怎么看吗? 我现在非常确定是由于这个"Too many open files "原因导致的, 我精确的找到时间日志

这就是因为进程打开了文件句柄,但未能正确关闭,导致文件大量使用,直至最终耗尽。看下文件是不是没有close 吧

1 个赞

这个wal目录下的日志文件不都是自动4个小时后删除的吗? 而且在导入的时候也不是人为的控制它的打开关闭

会不会和容器有关系 这个我其实不太确定

问题, 我算是已经完全理清了, 昨天是导入时候的wal日志文件打开太多报错, (今天凌晨1点是自动清理wal日志文件的时候又打开太多, 也导致其中2台storage节点挂了) 这个还不是自动清理wal时候报错的, 还是 导入数据报错的, 我刚刚看到了我们有凌晨1点的定时任务写入数据

疑问: 我能手动把wal下的日志全部删除吗?

image

我就是简单的用你们官网的例子代码入库的, 其实最核心的和nebula最终交互是你们写的

WAL 的日志很多嘛?如果写完了 可以手动清一下吧

不多了, 因为已经一晚上没有导入数据了, wal下的文件大多都自动clean了, 剩的这些删不删有啥影响吗? 最重要是能不能删除呢???

后续: 我改了wal名字, 启动
image

应该可以删 这些是打开的文件句柄么?

从日志上看是这些wal文件被打开报错的

因为打开的句柄太多了 所以再打开新的文件就报错了

这个机器是 nebula 独享的吗?还是和其他服务混合部署的?

没问题, 从这个帖子的最开始就已经清楚这个问题

是单独享受754G 内存, 88core, 20T磁盘,

你先看下各个进程使用的句柄数量,另外我搜了下/var/lib/docker/overlay2,有很多类似的情况,看起来和docker有关,比如这个

1句柄等下复现了看哈,
2 对你说的没错, 是很多这种类似情况: 比如: docker的/var/lib/docker/overlay文件夹突然占满了硬盘 - wswang - 博客园
但是都不是最后清理容器的事, 最终是要解决为啥容器会挂掉的问题, 说白了只要容器正常不挂,也就不会出现这个overlay2饱满的情况, 还是要解决句柄问题

从我个人判断是从flink到nebula的问题,比如开了过多连接。还是先看句柄吧,看看到底问题在哪

我的核心代码就这点, 连接的问题都是NebulaSinkFunction, NebulaBatchOutputFormat这些sink类封装好的

你好, 我这边复现不了, 导入开始就后其中一台storage就开始报错了, 你知道这个报错啥意思吗?

image

这也是fd不够啊 看句柄吧

现在是storage0 (0004机器)节点呗刚刚导挂了的状态, 其他节点OK,

00005机器的

0006机器