这篇文章主要是故障排查的记录,没有什么技术含量,主要供后续查找。
这2天访问博客的时候会出现502的错误,刚开始以为是linode不稳定的原因,重启后发现可以访问了。由于比较忙就没有看具体的原因。
今天早上访问的时候发现又502错误了,登陆上去后通过ps aux | grep nginx发现nginx进程已经不在了,那么为啥nginx的进程被kill了呢?之前一直没有出现过这种现象。
查了下nginx的错误日志,发现了如下的错误:
2011/11/17 09:21:34 [alert] 2275#0: *32 write() to "/home/wwwlogs/access.log" failed (28: No space left on device) while logging request, client: 61.135.165.180, server: test.welefen.com, request: "POST /phpmyadmin/index.php HTTP/1.1", upstream: "fastcgi://unix:/tmp/php-cgi.sock:", host: "test.welefen.com", referrer: "http://test.welefen.com/phpmyadmin/index.php?token=cc9eb811db39300b7d683677a734d98b"
错误信息表示磁盘已经满了,通过du -sh /查看了下,发现/usr/local/mysql/var这个目录竟然占用了16G的空间(vps总空间只有20G),具体看了下,主要是mysql-bin.000001这种mysql的操作日志过大。
mysql-bin.000001、mysql- bin.000002等文件是数据库的操作日志,例如UPDATE一个表,或者DELETE一些数据,即使该语句没有匹配的数据,这个命令也会存储到日志 文件中,还包括每个语句执行的时间,也会记录进去的。
由于只是个人vps,没必要存放这些mysql的操作日志,可以通过下面的方面删除这些日志:
1、编辑/etc/my.conf,把
注释,之后就不再产生操作日志了。
2、mysql -uroot -pxxx 登陆mysql,通过
reset master;
命令将已有的操作日志删除。
重启相关的服务,在通过du -sh /查看,系统就有很大的剩余空间了。
如果你也用的是类似的vps服务,提醒你也要查看下对应的mysql操作日志的大小了,别让它引起整个服务宕掉。
Copyright© 2013-2020
All Rights Reserved 京ICP备2023019179号-8