我有一个磁盘驱动器,其中inode使用率为100%(使用df -i命令)。 但是在大量删除文件后,使用率仍然是100%。

那么正确的做法是什么呢?

一个磁盘空间使用较少的磁盘驱动器怎么可能有 更高的Inode使用率比更高的磁盘驱动器磁盘空间使用率?

它是可能的,如果我压缩大量的文件,会减少使用的索引节点数?


当前回答

到目前为止,这个问题有很多答案,上面所有的答案似乎都是具体的。我认为你使用stat是安全的,但根据操作系统的不同,你可能会遇到一些inode错误。因此,使用64位来实现自己的统计调用功能以避免任何溢出问题似乎是相当兼容的。

其他回答

eaccelerator可能会导致这个问题,因为它将PHP编译成块…我在一个负载很重的网站上使用亚马逊AWS服务器时遇到过这个问题。如果您仍然有问题,可以通过删除/var/cache/eaccelerator中的eaccelerator缓存来释放Inodes。

rm -rf /var/cache/eaccelerator/*

(或者你的缓存目录)

如果您非常不幸,您已经使用了大约100%的inode,并且无法创建scipt。 你可以用df -ih来检验。

那么这个bash命令可以帮助您:

sudo find . -xdev -type f | cut -d "/" -f 2 | sort | uniq -c | sort -n

是的,这将花费时间,但您可以找到拥有最多文件的目录。

如果你使用docker,删除所有图像。他们使用了很多空间....

停止所有容器

docker stop $(docker ps -a -q)

删除所有容器

docker rm $(docker ps -a -q)

删除所有图片

docker rmi $(docker images -q)

对我有用

对于大量的文件,可以使用RSYNC删除

rsync -a --delete blanktest/ test/

创建空白测试文件夹,其中包含0个文件,命令将与大量文件同步测试文件夹(我已经使用这种方法删除了近500万个文件)。

感谢http://www.slashroot.in/which-is-the-fastest-method-to-delete-files-in-linux

我有同样的问题,通过删除php的目录会话来修复它

rm -rf /var/lib/php/sessions/

如果您使用的是较旧的php版本,它可能在/var/lib/php5下。

使用以下权限重新创建它

mkdir /var/lib/php/sessions/ && chmod 1733 /var/lib/php/sessions/

Debian默认目录权限显示drwx-wx-wt (1733)