我如何确定一个目录使用了多少个 inode?

我如何确定一个目录使用了多少个 inode?

我们的文件服务器遇到了 inode 限制,我正在做一个减少 inode 数量的实验。我如何才能知道一个目录使用了多少个 inode?我读到 Linux 内核不会为软链接创建 inode少于 60 字节,而是将该符号链接存储在目录 inode 本身中。因此,我尝试将符号链接的长度缩短到 60 字节以下,然后看看这是否会减少 inode 数量。

编辑:(不能在注释中添加换行符...)@caliban 我的建议是创建 1 个指向父目录的符号链接,然后让所有其他符号链接指向通过该父目录例如原始链接:

a -> /LONG_PATH/a
b -> /LONG_PATH/b
c -> /LONG_PATH/c

带有目录符号链接

__parent_dir -> /LONG_PATH
a -> parent_dir/a
b -> parent_dir/b
c -> parent_dir/c

答案1

每个文件和目录都有一个 inode,这是规则。至于小于 60 字节的符号链接存储在目录 inode 本身中...我认为这也是错误的。

本质上,当符号链接长度小于 60 字节时,它实际上存储在其自己的 inode 中(与目录 inode 分开),并且不创建数据块。因此,它加快了小于 60 字节的符号链接的读取速度,因为不必读取数据块,从而加快了操作速度。

相关内容