MongoDB 硬盘空间不足,导致问题 , 兼Flunted 问题排除

摘要:MongoDB 硬盘空间不足,导致问题


我们的硬盘空间只有20G

而mongodb由于他是以倍数成长的方式增加。

至多2G方式的增加。

但由于增加速度太快,会导致没有足够硬盘空间,会出现错误。

虽然可以登入,但无法删除或取得collection

会出现

Can't take a write lock while out of disk space" instance=69954892127080 错误问题

,而就算重开,

却出现了,日志档,需要至少3G硬盘空间

ERROR: Insufficient free space for journal files
Please make at least 3379MB available in /var/lib/mongodb/journal or use --smallfiles

简单一点,
就去/etc/init.d/mongodb.conf
修改
nojournal 设为  true 

然后,并将lock档移除
rm /var/lib/mongodb/mongo.lock

及要查什么原因可到
/var/log/mongodb/mongo.log

之后,就要紧急删除不必要的资讯或增加硬盘来做处理。


由于我们会使用Fluentd + MongoDB
MongoDB一挂,很多数据会卡在本机的Fluentd
他会建立数据在buffered中。

然后每分钟retry一次,
导致该主动I/O存取频繁,
而I/O存取频繁时,此时Linode就会寄通知过来。
这时就要马上紧急处理

接着,之后的Fluentd进入,相关的mongodb连线,可能会进入卡死状态。
在这情形下,决定重开log本机的fluentd(会不会之前的数据遗失呢。觉得可能,但因为log不重要,所以才删除,如果你的log很重要,千万不要随便乱试)

重开
sudo /etc/init.d/td-agent restart 

重开后,log就开始新的纪录进来。

Fluentd的错误为
temporarily failed to flush the buffer, next retry will be at 2013-04-13 05:53:13 +0000. error="Operation failed with the following exception: end of file reached" instance=69954891056340

查log到

cat /var/log/td-agent/td-agent.log





原文:大专栏  MongoDB 硬盘空间不足,导致问题 , 兼Flunted 问题排除


上一篇:「Bug」Fluentd 的 Buffer 占用超过 13G 存储,导致 K8s 节点 DiskPressure


下一篇:docker-compose EFK查看docker及容器的日志