摘要: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 问题排除