在2017年双十一之前一天,网站突然登录不了
不过,已经有提示,是由于session不能保存引起的。
那么问题来了:session为什么不能保存了呢?
首先查看下session配置的保存路径的权限,没有问题!
一个原因就是硬盘已经满了,不能存放文件了,使用命令
``df -h
``
查看服务器硬盘使用情况,还有30%的未使用。这个排除!
突然想起之前网站无法上传文件时出现问题时发现是 inode惹的祸!
inode是何许人也?在这里做下简单说明:
inodes 译为索引节点,每个文件对应一个inode,里面存放的是文件的元信息,比如创建时间,大小等信息。
每个inode节点的大小,一般是128字节或256字节。inode节点的总数,在格式化时就给定,一般是每1KB或每2KB就设置一个inode。假定在一块1GB的硬盘中,每个inode节点的大小为128字节,每1KB就设置一个inode,那么inode table的大小就会达到128MB,占整块硬盘的12.8%。
由于每个文件都必须有一个inode,因此有可能发生inode已经用光,但是硬盘还未存满的情况。这时,就无法在硬盘上创建新文件。
使用 命令
df -i
查看inode使用情况,果然,已经使用100%了!
inode怎么就满了呢?
肯定是产生了很多垃圾文件,正常情况下不应该啊,什么小文件会大量产生呢,一个是日志文件,查看日志分割设置,是每天生成一个,这样的话,也不应该啊。
这就想到了一个服务叫Crond,对,就是服务器定时任务。它怎么会产生那么多文件呢。
定时任务定时执行,但是,如果执行中有问题呢,就会给root账号发送邮件,可以执行下面命令执行
cat /etc/crontab
获得下面输出
[root@hellworld]# cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO="root"
HOME=/
MAILTO 后面的写的是root,就是向root用户发送邮件。我就把后面的root去掉了。看它还怎么发邮件。
然后就去文件夹
/var/spool/postfix/maildrop
删掉发邮件生成的垃圾文件,再用df -i命令查看,就正常多了
再测试网站登录,可以了。哈哈,这个inode还真是威力大啊!
过了一段时间后,发现服务器多了很多进程,都是postfix 和maildrop 相关的。。。。
这是怎么回事的,稍后咱们接着说!