Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2768810
  • 博文数量: 587
  • 博客积分: 6356
  • 博客等级: 准将
  • 技术积分: 6410
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-23 10:54
个人简介

器量大者,福泽必厚

文章分类

全部博文(587)

文章存档

2019年(3)

2018年(1)

2017年(29)

2016年(39)

2015年(66)

2014年(117)

2013年(136)

2012年(58)

2011年(34)

2010年(50)

2009年(38)

2008年(16)

分类: LINUX

2014-03-31 15:00:17

接通知网站不能访问了,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的问题了,只是我们的监控看不懂,见附件

还是要重视监控报警
算是个教训吧!
阅读(1221) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~