11月17, 2011

这2天的博客访问故障

这篇文章主要是故障排查的记录,没有什么技术含量,主要供后续查找。

这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,把

log-bin=mysql-bin

binlog_format=mixed

注释,之后就不再产生操作日志了。

2、mysql -uroot -pxxx 登陆mysql,通过

> reset master;

命令将已有的操作日志删除。

重启相关的服务,在通过du -sh /查看,系统就有很大的剩余空间了。

如果你也用的是类似的vps服务,提醒你也要查看下对应的mysql操作日志的大小了,别让它引起整个服务宕掉。

本文链接:http://welefen.com/post/blog-502-reason.html

-- EOF --

Comments

评论加载中...

注:如果长时间无法加载,请针对 disq.us | disquscdn.com | disqus.com 启用代理。