小编典典

如何释放Inode使用率?

linux

我有一个inode使用率为100%(使用df -i命令)的磁盘驱动器。但是,在实质上删除文件后,使用率仍为100%。

那么正确的方法是什么?

与磁盘空间使用量较高的磁盘驱动器相比,磁盘空间使用量较少的磁盘驱动器如何可能具有更高的Inode使用率?

如果我压缩大量文件,是否有可能减少使用的inode数量?


阅读 765

收藏
2020-06-02

共1个答案

小编典典

即使磁盘不是很满,也很容易使用大量的索引节点。

索引节点已分配给文件,因此,如果您有成千上万个文件(每个都1个字节),则在磁盘用尽之前,节点将用尽。

如果文件具有多个硬链接,则删除文件也可能不会减少inode的数量。正如我所说,inode属于文件, 而不是
目录条目。如果文件有两个链接的目录条目,则删除其中一个不会释放索引节点。

此外,您可以删除目录条目,但是,如果正在运行的进程仍打开文件,则不会释放索引节点。

我最初的建议是删除所有可以删除的文件,然后重新启动该框以确保没有使文件保持打开状态的进程。

如果您这样做仍然有问题,请告诉我们。

顺便说一句,如果您要查找包含许多文件的目录,此脚本可能会有所帮助:

#!/bin/bash
# count_em - count files in all subdirectories under current directory.
echo 'echo $(ls -a "$1" | wc -l) $1' >/tmp/count_em_$$
chmod 700 /tmp/count_em_$$
find . -mount -type d -print0 | xargs -0 -n1 /tmp/count_em_$$ | sort -n
rm -f /tmp/count_em_$$
2020-06-02