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

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

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

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


当前回答

对于那些使用Docker并最终来到这里的人,

当df -i说100% Inode使用;

只需运行docker rmi $(docker images -q)

它会让你创建的容器(运行或退出),但会删除所有不再引用的图像,释放一大堆索引节点;我从100%回到了18%

值得一提的是,我在这台机器上使用了大量的CI/CD和docker运行程序。

其他回答

我的情况是我没有inodes了,我已经删除了所有我能删除的东西。

$ df -i
Filesystem     Inodes  IUsed  IFree IUse% Mounted on
/dev/sda1      942080 507361     11  100% /

我使用的是ubuntu 12.04LTS,无法删除旧的linux内核,它占用了大约400,000个inodes,因为apt因为缺少一个包而损坏了。我无法安装新包,因为我没有inodes了,所以我被卡住了。

我最终手动删除了一些旧的linux内核,以释放大约10,000个inode

$ sudo rm -rf /usr/src/linux-headers-3.2.0-2*

这足以让我安装丢失的包并修复我的apt

$ sudo apt-get install linux-headers-3.2.0-76-generic-pae

然后使用apt删除剩余的旧Linux内核

$ sudo apt-get autoremove

现在情况好多了

$ df -i
Filesystem     Inodes  IUsed  IFree IUse% Mounted on
/dev/sda1      942080 507361 434719   54% /

这篇文章拯救了我: https://bewilderedoctothorpe.net/2018/12/21/out-of-inodes/

find . -maxdepth 1 -type d | grep -v '^\.$' | xargs -n 1 -i{} find {} -xdev -type f | cut -d "/" -f 2 | uniq -c | sort -n

在上面的一个回答中,有人建议会话是inode耗尽的原因,在我们的例子中正是如此。为了补充这个答案,我建议检查php.ini文件并确保session。Gc_probability = 1也是session。gc_除数= 1000和 会话。Gc_maxlifetime = 1440。在我们的案例会议上。Gc_probability等于0,导致了这个问题。

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

停止所有容器

docker stop $(docker ps -a -q)

删除所有容器

docker rm $(docker ps -a -q)

删除所有图片

docker rmi $(docker images -q)

对我有用

对于那些使用Docker并最终来到这里的人,

当df -i说100% Inode使用;

只需运行docker rmi $(docker images -q)

它会让你创建的容器(运行或退出),但会删除所有不再引用的图像,释放一大堆索引节点;我从100%回到了18%

值得一提的是,我在这台机器上使用了大量的CI/CD和docker运行程序。