首页 >> 分享>>一个Nginx 500错误,引发的血案(Mongodb journal 日志太大)
一个Nginx 500错误,引发的血案(Mongodb journal 日志太大)
分享下工作中遇到的问题,记录下来,方便自己或者有需要的人以后翻看。
网站还未正式上线,突然不能访问了,出现500错误。因为nginx只是拿来做反向代理的,看看backend的Node服务log,发现正常没有任何的错误日志记录。再看看nginx的日志记录发现了类似下面的东东:
2013/06/03 08:25:28 [crit] 21109#0: *23885 pwrite() "/var/lib/nginx/body/0000001016" failed (28: No space left on device), client: 118.114.xxx.xxx, server: xxx.com, request: "POST /xxx/xxx/ HTTP/1.1", host: "xxx.com", referrer: "http://xxx.com/xxx/"
基本上可以确定是这个东东(No space left on device)的问题,难道磁盘被占满了?
$ df -m Filesystem 1M-blocks Used Available Use% Mounted on /dev/xvda1 18891 17446 486 100% / udev 489 1 489 1% /dev tmpfs 200 1 199 1% /run none 5 0 5 0% /run/lock none 498 0 498 0% /run/shm /dev/sda1 228 173 44 80% /boot
果然磁盘空间被占满了,o(╯□╰)o。。。初步怀疑是nginx的日志,可是查看nginx的日志文件大小,没有多大啊,那到底是什么这么东西占用了这么大的空间呢?还是继续看看磁盘空间的占用情况吧:
$ sudo du -sh /* 0 /proc 56K /root 184K /run 7.9M /sbin 4.0K /selinux 167M /srv 0 /sys 278M /tmp 1.1G /usr 5.6G /var
一个5GB的东东,格外引人注目,继续看~:
$ sudo du -sh /var/lib/* 2.6M ./mlocate 5.1G ./mongodb 1.4M ./nginx 此处省略几千行……
OK,原来是Mongodb惹的祸,这东西居然这么大,继续看下去就找到了,mongodb的日志文件,3个多GB:
$ sudo du -sh /var/lib/mongodb/* 1.1G ./j._0 4.0K ./lsn 1.1G ./prealloc.1 1.1G ./prealloc.2
找到了问题,痛哭流涕啊,原来没有是莫有摸清楚mongodb这货,让网站500了。但是/var/lib/mongodb/journal/
目录下面的东东,可不可以随便删除呢?
So,google了解决mongodb journal日志文件过大的解决方法,答案是可以删除,原来mongodb提供小日志文件记录的配置--smallfiles
。参考如下方法解决问题:
$ sudo cp -p /etc/mongodb.conf /etc/mongodb.conf.orig $ sudo vi /etc/mongodb.conf $ sudo service mongodb stop $ sudo rm -rf /var/lib/mongodb/journal/* $ sudo service mongodb start
重启后,/var/lib/mongodb/journal/
下面的预设文件会自动重建,所以你尽管删除吧,如果这些日志文件对你来说已经没啥用了。
重启nginx,重启mongodb,问题解决,顿时轻松~
更多请mongodb配置,请参考:
http://docs.mongodb.org/manual/core/journaling/#journaling-internals
http://docs.mongodb.org/manual/reference/program/mongod/#cmdoption-mongod–smallfiles
一个Nginx 500错误,引发的血案 到处结束。:)
最近有种无精打采的感觉,工作没激情,自身成长缓慢,不知道该咋办,哎。╮(╯▽╰)╭
[…] 突然反应过来,从上次《一个Nginx 500错误,引发的血案(Mongodb journal 日志太大)》第一反应怪nginx,这次又第一想到的是架设在前端的nginx“惹得祸”啊,其实是自己太菜,不是很懂nginx,而已,nginx辛勤劳作,默默工作,她是无辜的。囧。 […]
程序就是不断的耗费大量的精力,只是有的成功,但是成功的又有多少呢?
对得起自己~
谢谢博主把这个共享出来,我看到3.1G的journal也是吓尿了。
赞~ Google引来~ 看头像有点眼熟~
哈哈,居然Google还搜得过来