ext3_dx_add_entry: Directory index full!
Posted wujf-myblog
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ext3_dx_add_entry: Directory index full!相关的知识,希望对你有一定的参考价值。
今天登陆网站,发现后台登录不进去了,根据以往经验,一般是空间已满导致session文件生成失败。最直接的结果影响就是:有些人可以登录,有些人不能登录。
解决问题:
登录服务器。
我们看到,我们的网站目录还是有存储空间的,但是为什么写不进去呢?
通过报错我们可以知道,确实是空间满了才写不进去文件。我们知道,
每个存储设备(例如硬盘)或存储设备的分区被格式化为文件系统后,应该有两部份,一部份是inode,另一部份是 Block,Block是用来存储数据用的。而inode呢,就是用来存储这些数据的信息,这些信息包括文件大小、属主、归属的用户组、读写权限等。 inode为每个文件进行信息索引,所以就有了inode的数值。
既然存储空间未满,那应该是索引信息满了。
我们再次查看下iNode信息
可以看到,文件索引已经达到恐怖的3千多万。难道会报错no space to left!
再次打开虚拟机,看到下面一连串报错。
既然找到问题了,那么就找到占满磁盘索引的目录,删掉。但是普通的rm -f 肯定是删不动。我们可以mv 掉。这里我采取的是mv ,然后新生成目录。
然后将mv掉的目录慢慢删掉:
find dir -type f -name ‘*‘ | xargs rm
或者
cd dir
ls |xargs rm -f
拓展:如何查找那个目录下文件最多
以上是关于ext3_dx_add_entry: Directory index full!的主要内容,如果未能解决你的问题,请参考以下文章
`O_DIRECT | 有啥区别? O_SYNC` + write() 和 `O_DIRECT` + write() + fsync()