接通知网站不能访问了,500 internal error ,见附件
开始领导通知我并告诉我php-fpm挂了,我想是因为看到500 internal server error的原因吧, 登录到机器,lsof -i :3306发现没有输出
显然mysqld服务有问题!于是启动mysql,结果有报错:见附件
看提示是没有空间了,我当时没细想,第一感觉是去删除文件!于是到/tmp目录下,删除session文件(我们的php session默认在此目录下)
于是;
cd /tmp
rm -f sess_*
提示文件太多,删除不了,于是修改删除方法:
find . -name "sess_*" | xargs rm -f
并且我将php session的 路径修改该/var/lib/php/session ##/分区比较大,innodb结点比较多!
将session删除,db即可启动,其实没删除session文件之前我运行df -h时还有好多的空间,见附件,
为什么启动mysql提示没有空间,当时没有仔细想,直接就删除/tmp/sess_*文件了!
后来细想,session不应该占用那么多的空间,session文件很小的,理论上讲不应该占据那么多的空间(因为我的/tmp是被机房单独给分出来4G的空间),后来突然想到是inode 被耗尽的问题,尽管sess_**文件很小,但每1个小文件总是占用1个inode结点,将inode结点耗尽,就算是有空间,这个分区也不能使用了!
验证如下:
显然/tmp分区的inode结点总共有256000个,我们的session数目为:
这是运行2天的session数目,已经超过了/tmp的最大inode数,故mysqld服务宕了!直接导致网站打不开!
其实昨天晚上已经有报警,提示inode的问题了,只是我们的监控看不懂,见附件
还是要重视监控报警
算是个教训吧!
阅读(1259) | 评论(0) | 转发(0) |